export interface IProduct {
  productId: number;
  productName: string;
  productSku: string;
  categoryCode: string;
  categoryId: number;
  specification: string;
  details: string;
  features: string;
  overview: string;
  isDisplay: boolean;
  price: number;
  smartPayAmount?: number;
  estimatedDeliveryCost?: number;
  utilityToken?: number;
  featureImage: string;
  isActive: boolean;
  isProductPurchasable: boolean;
  categoryName: string;
  mainProductCategory: number;
  subProducts?: SubProduct[];
  tags: string[];
  images: string[];
  maxCartQuantity: number | null;
  smartPayPercentage?: number;
  quantityStepper?: number | null;
}

export interface SubProduct {
  productId: number;
  productName: string;
  productCategory: number;
  categoryCode: string;
  productMetadata: ProductMetadata[];
}

export interface ProductMetadata {
  key?: string;
  value?: string;
  displayName?: string;
}

export interface IProductPurchaseLimit {
  userPurchaseLimit: number;
  canUserPurchaseTheProduct: boolean;
  totalOrderExistsForProduct: number;
  maximumUserCanPurchase: number;
}

export type BoostPowerProps = {
  boost: number;
  validFrom: string;
  validTo: string;
};
