/* eslint-disable */
/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 */

export type CollectionType =
  | "long_tail_collection"
  | "campaign"
  | "category"
  | "smart_pick"
  | "style"
  | "brand"
  | "look";
export type ContentPosition = "left" | "right" | "center";
export type Type = "video";
export type Url = string;
export type Link = string | null;

export interface GetListingResponse {
  /**
   * Depict ID of the listing.
   */
  listing_id: string;
  /**
   * ID of the listing in the merchant PIM, CMS or similar.
   */
  external_id?: string;
  listing_type: CollectionType;
  /**
   * Show or hide this listing in navigation breadcrumbs.
   */
  show_in_breadcrumbs: boolean;
  /**
   * Show or hide this listing in quicklinks.
   */
  show_in_quicklinks: boolean;
  /**
   * List of image URLs for the listing.
   */
  image_urls: string[];
  title: string;
  slug?: string;
  /**
   * Ordered list of ancestors of the listing, useful for navigation breadcrumbs. The first element is the root listing.
   */
  ancestors: ProductListing[];
  /**
   * Siblings of the listing, i.e. listings that share the same parent, INCLUDING the listing itself. Sortet by title.
   */
  siblings: ProductListing[];
  /**
   * Children of the listing, i.e. listings that have the listing as their parent. Sorted by title.
   */
  children: ProductListing[];
  /**
   * List of content blocks to be displayed on the listing page. If none no content blocks should be displayed.
   */
  content_blocks: ContentBlock[];
}
/**
 * Represents a product listing, e.g. a category or a collection.
 */
export interface ProductListing {
  /**
   * Depict ID of the listing.
   */
  listing_id: string;
  /**
   * ID of the listing in the merchant PIM, CMS or similar.
   */
  external_id?: string;
  listing_type: CollectionType;
  /**
   * Show or hide this listing in navigation breadcrumbs.
   */
  show_in_breadcrumbs: boolean;
  /**
   * Show or hide this listing in quicklinks.
   */
  show_in_quicklinks: boolean;
  /**
   * List of image URLs for the listing.
   */
  image_urls: string[];
  title: string;
  slug?: string;
}
export interface ContentBlock {
  span_columns: number;
  span_rows: number;
  position: ContentPosition;
  row: number;
  content: ImageContent | VideoContent;
  [k: string]: unknown;
}
export interface ImageContent {
  type?: "image";
  url: string;
  link: string;
  [k: string]: unknown;
}
export interface VideoContent {
  type?: Type;
  url: Url;
  link: Link;
  [k: string]: unknown;
}
