import { IkasBrand } from "../brand"; import { IkasCategory } from "../category"; import { IkasCustomerReviewList } from "../customer-review-list"; import { IkasHTMLMetaData } from "../html-meta-data"; import { IkasImage } from "../image"; import { IkasVariantType } from "../variant-type"; import { IkasVariantValue } from "../variant-type/variant-value"; import { IkasProductAttributeValue } from "./attribute-value"; import { IkasProductBaseUnit } from "./base-unit"; import { IkasProductCampaign } from "./campaign"; import { IkasProductCampaignOffer, IkasProductOffer } from "./campaign-offer"; import { IkasProductGroup } from "./group"; import { IkasProductGroupOrder } from "./group/order"; import { IkasProductGroupValue } from "./group/value"; import { IkasProductOptionSet } from "./option-set"; import { IkasProductSalesChannel } from "./sales-channel"; import { IkasProductStar } from "./star"; import { IkasProductTag } from "./tag"; import { IkasProductVariant } from "./variant"; import { IkasProductVariantType } from "./variant-type"; export type IkasProduct = { id: string; name: string; type: IkasProductType; description: string; metaData: IkasHTMLMetaData | null; brand: IkasBrand | null; categories: IkasCategory[]; deleted: boolean | null; tags: IkasProductTag[] | null; variants: IkasProductVariant[]; attributes: IkasProductAttributeValue[]; variantTypes: IkasProductVariantType[]; productOptionSetId: string | null; baseUnit: IkasProductBaseUnit | null; averageRating: number | null; reviewCount: number | null; stars: IkasProductStar[] | null; groupVariantsByVariantTypeId: string | null; dynamicPriceListIds: string[] | null; campaignOffers: IkasProductCampaignOffer[] | null; productGroup: IkasProductGroup | null; salesChannels: IkasProductSalesChannel[] | null; selectedVariantValues: IkasVariantValue[]; productOptionSet: IkasProductOptionSet | null; offers: IkasProductOffer[]; campaigns?: IkasProductCampaign[] | null; isFiltered?: boolean; isStatic?: boolean; bundleProductCache: Record; appliedCampaignOffer?: IkasAppliedCampaignOffer; productGroupItems?: IkasProductGroupItem[]; showVariantsInGroup: boolean; customerReviews?: IkasCustomerReviewList | null; }; export type IkasProductType = "PHYSICAL" | "DIGITAL" | "MEMBERSHIP"; export type IkasDisplayedVariantValue = { variant: IkasProductVariant; variantValue: IkasVariantValue; hasStock: boolean; isSelected: boolean; }; export type IkasDisplayedVariantType = { variantType: IkasVariantType; displayedVariantValues: IkasDisplayedVariantValue[]; }; export type IkasAppliedCampaignOffer = { campaignOfferId: string; title: string | null; description: string | null; }; export type IkasProductGroupItem = { productId: string; image?: IkasImage | null; href: string; groupValues: IkasProductGroupValue[]; order?: IkasProductGroupOrder | null; }; export type IkasDisplayedProductGroup = { name: string; items: IkasDisplayedProductGroupItem[]; }; export type IkasDisplayedProductGroupItem = { image: IkasImage | null; href: string; value: string; isSelected: boolean; };