import type { ProductGroup, ProductParams, RecommendationListPage, RecommendationListPageBody } from './common/mod.ts';


export interface ProductPageParams extends ProductParams {
  /** Required parameter for product page, the product to return and show recommendations for */
  productKey: string;
}

export interface ProductPageBody extends RecommendationListPageBody {
  /** Settings for product group */
  productGroup?: {
    /** Include product group in result, defaults to `false` */
    include: boolean;
  };
}

export interface ProductPage extends RecommendationListPage {
  /** ProductGroup for page, if enabled */
  productGroup?: ProductGroup;
  /**
   * Tickets for each variant within the product group.
   *
   * Returned only if product details were NOT requested (otherwise, they are found on the product group).
   * Use the corresponding ticket(s) for variants added in add-to-cart notifications from this page.
   */
  tickets: Record<string, string>;
}
