export interface ProductBenefit {
  title: string;
  description: string;
}

export interface ProductSpec {
  label: string;
  value: string;
}

export interface RelatedProduct {
  productId: string;
  name: string;
  description: string;
  category: string;
  imageUrl: string;
}

export interface Product {
  productId: string;
  name: string;
  /** Kategória-útvonal a fejléc fölötti "morzsamenühöz", pl. "Klímatechnika / Oldalfali split klímák". */
  breadcrumb?: string;
  category: string;
  brand?: string;
  /** EAN vonalkód. */
  ean?: string;
  price: number;
  currency: string;
  stock: number;
  /** Szállítási idő szöveges formában, pl. "1-3 munkanap". */
  deliveryEstimate?: string;
  description: string;
  imageUrl: string;
  /** "Miért jó választás?" kártyák (cím + rövid indoklás). */
  benefits?: ProductBenefit[];
  /** Termékjellemzők táblázat (label/value párok). */
  specs?: ProductSpec[];
  /** Kiegészítő / hozzá illő termékek. */
  relatedProducts?: RelatedProduct[];
}

export interface ProductDataSource {
  /**
   * Visszaadja a terméket azonosító alapján, vagy null-t, ha nincs ilyen.
   *
   * @param language A kívánt nyelv ("hu" vagy "ro", lásd lib/i18n.ts). Ha nincs
   *   megadva, az implementáció dönt az alapértelmezett nyelvről. Jelenleg
   *   csak az `AxProductDataSource` használja (továbbadja az AX API-nak);
   *   a mock adatforrás egynyelvű, ezért figyelmen kívül hagyja.
   */
  getProductById(
    productId: string,
    language?: string
  ): Promise<Product | null>;
}
