export type CategoryId =
  | "hot-drinks"
  | "cold-drinks"
  | "juices"
  | "gelato-shake"
  | "smoothie"
  | "pastry"
  | "dessert"
  | "cake"
  | "bakery"
  | "boxed-sweets";

export type Category = {
  id: CategoryId;
  label: string;
};

export type Product = {
  id: number;
  name: string;
  nameEn: string;
  price: number;
  category: CategoryId;
  images: string[];
  description: string;
};

export const categories: Category[] = [
  { id: "hot-drinks", label: "نوشیدنی گرم" },
  { id: "cold-drinks", label: "نوشیدنی سرد" },
  { id: "juices", label: "آبمیوه‌های طبیعی" },
  { id: "gelato-shake", label: "ژلاتو شیک" },
  { id: "smoothie", label: "اسموتی" },
  { id: "pastry", label: "شیرینی تر" },
  { id: "dessert", label: "دسر" },
  { id: "cake", label: "کیک تولد" },
  { id: "bakery", label: "نان و بیکری" },
  { id: "boxed-sweets", label: "شیرینی جعبه‌ای" },
];

const img1 = "/product-placeholder.svg";
const img2 = "/product-placeholder-2.svg";

function product(
  partial: Omit<Product, "images" | "description"> & {
    images?: string[];
    description?: string;
  },
): Product {
  return {
    images: [img1],
    description: "تازه‌آماده‌شده در اک؛ ترکیبی از طعم اصیل و کیفیت روزانه.",
    ...partial,
  };
}

export const products: Product[] = [
  product({
    id: 21760,
    name: "اسپرسو",
    nameEn: "Espresso",
    price: 120000,
    category: "hot-drinks",
    images: [img1, img2],
    description:
      "شات غلیظ اسپرسو با عطر قوی و کرمای طلایی؛ انتخاب کلاسیک دوستداران قهوه.",
  }),
  product({
    id: 21761,
    name: "لاته",
    nameEn: "Latte",
    price: 180000,
    category: "hot-drinks",
    images: [img1, img2],
    description: "اسپرسو با شیر مخملی و بافت نرم؛ متعادل، گرم و دلپذیر.",
  }),
  product({
    id: 21762,
    name: "کاپوچینو",
    nameEn: "Cappuccino",
    price: 170000,
    category: "hot-drinks",
    description: "ترکیب یک‌سوم اسپرسو، شیر و فوم؛ کلاسیک ایتالیایی اک.",
  }),
  product({
    id: 21774,
    name: "نسکافه",
    nameEn: "Nescafe",
    price: 260000,
    category: "hot-drinks",
    description: "نسکافه خامه‌ای با طعم ملایم و سرو گرم.",
  }),
  product({
    id: 21763,
    name: "آیس لاته",
    nameEn: "Iced Latte",
    price: 190000,
    category: "cold-drinks",
    images: [img2, img1],
    description: "لاته سرد روی یخ؛ سبک، خنک و مناسب روزهای گرم.",
  }),
  product({
    id: 21764,
    name: "آیس آمریکانو",
    nameEn: "Iced Americano",
    price: 160000,
    category: "cold-drinks",
    description: "اسپرسو رقیق‌شده با آب و یخ؛ تلخ و تازه.",
  }),
  product({
    id: 21765,
    name: "آب پرتقال",
    nameEn: "Orange Juice",
    price: 140000,
    category: "juices",
    images: [img1, img2],
    description: "آب پرتقال تازه؛ سرشار از طعم طبیعی و ویتامین.",
  }),
  product({
    id: 21766,
    name: "آب سیب",
    nameEn: "Apple Juice",
    price: 130000,
    category: "juices",
    description: "آب سیب طبیعی با شیرینی متعادل.",
  }),
  product({
    id: 21767,
    name: "آب هویج",
    nameEn: "Carrot Juice",
    price: 130000,
    category: "juices",
    description: "آب هویج تازه و مغذی.",
  }),
  product({
    id: 21773,
    name: "موز",
    nameEn: "Banana",
    price: 270000,
    category: "gelato-shake",
    images: [img2, img1],
    description: "ژلاتو شیک موزی؛ خامه‌ای، خنک و سیرکننده.",
  }),
  product({
    id: 21772,
    name: "وانیل",
    nameEn: "Vanilla",
    price: 250000,
    category: "gelato-shake",
    description: "ژلاتو شیک وانیلی کلاسیک با بافت نرم.",
  }),
  product({
    id: 21771,
    name: "شکلات",
    nameEn: "Chocolate",
    price: 260000,
    category: "gelato-shake",
    images: [img1, img2],
    description: "ژلاتو شیک شکلاتی غنی برای عاشقان کاکائو.",
  }),
  product({
    id: 21770,
    name: "توت فرنگی",
    nameEn: "Strawberry",
    price: 270000,
    category: "gelato-shake",
    description: "ژلاتو شیک توت‌فرنگی با طعم میوه‌ای تازه.",
  }),
  product({
    id: 21769,
    name: "اورئو",
    nameEn: "Oreo",
    price: 300000,
    category: "gelato-shake",
    images: [img2, img1],
    description: "ژلاتو شیک اورئو با تکه‌های بیسکوییت ترد.",
  }),
  product({
    id: 21784,
    name: "شیرموز انبه",
    nameEn: "Mango Banana Milk",
    price: 250000,
    category: "smoothie",
    description: "اسموتی موز و انبه؛ گرمسیری و انرژی‌بخش.",
  }),
  product({
    id: 21783,
    name: "شیرموز پسته",
    nameEn: "Pistachio Banana Milk",
    price: 230000,
    category: "smoothie",
    description: "شیرموز با پسته؛ طعمی ایرانی و خاص.",
  }),
  product({
    id: 21782,
    name: "شیرموز خرما",
    nameEn: "Date Banana Milk",
    price: 190000,
    category: "smoothie",
    description: "شیرموز با خرما؛ شیرین طبیعی و مغذی.",
  }),
  product({
    id: 21781,
    name: "شیرموز",
    nameEn: "Banana Milk",
    price: 170000,
    category: "smoothie",
    description: "شیرموز ساده و کلاسیک اک.",
  }),
  product({
    id: 21780,
    name: "معجون میکس",
    nameEn: "Mixed Elixir",
    price: 300000,
    category: "smoothie",
    images: [img1, img2],
    description: "معجون میکس با ترکیب میوه و مغز؛ مقوی و کامل.",
  }),
  product({
    id: 21776,
    name: "شیر انبه",
    nameEn: "Mango Milk",
    price: 260000,
    category: "smoothie",
    description: "شیر انبه خنک با طعم تابستانی.",
  }),
  product({
    id: 21785,
    name: "شیرینی تر مخلوط",
    nameEn: "Assorted Soft Pastry",
    price: 645000,
    category: "pastry",
    images: [img1, img2],
    description: "باکس مخلوط شیرینی تر روز؛ تازه و متنوع.",
  }),
  product({
    id: 21786,
    name: "انواع دسر",
    nameEn: "Assorted Desserts",
    price: 150000,
    category: "dessert",
    description: "انتخابی از دسرهای روز اک.",
  }),
  product({
    id: 21791,
    name: "کیک شکلاتی",
    nameEn: "Chocolate Cake",
    price: 800000,
    category: "cake",
    images: [img2, img1],
    description: "کیک تولد شکلاتی مرطوب با کاور شکلاتی.",
  }),
  product({
    id: 21790,
    name: "کیک وانیلی",
    nameEn: "Vanilla Cake",
    price: 600000,
    category: "cake",
    images: [img1, img2],
    description: "کیک تولد وانیلی نرم با تزئین کلاسیک.",
  }),
  product({
    id: 21792,
    name: "انواع بیکری",
    nameEn: "Assorted Bakery",
    price: 645000,
    category: "bakery",
    images: [img1, img2],
    description: "مجموعه‌ای از نان و بیکری تازه روز.",
  }),
  product({
    id: 21788,
    name: "استریپس",
    nameEn: "Strips",
    price: 150000,
    category: "bakery",
    description: "استریپس ترد و طلایی از فر اک.",
  }),
  product({
    id: 21787,
    name: "اشترودل",
    nameEn: "Strudel",
    price: 150000,
    category: "bakery",
    description: "اشترودل لایه‌لایه با مغز میوه‌ای.",
  }),
  product({
    id: 21789,
    name: "انواع کوکی",
    nameEn: "Assorted Cookies",
    price: 150000,
    category: "boxed-sweets",
    images: [img2, img1],
    description: "کوکی‌های جعبه‌ای با طعم‌های متنوع.",
  }),
];

export const menuSections = categories
  .map((category) => ({
    ...category,
    products: products.filter((item) => item.category === category.id),
  }))
  .filter((section) => section.products.length > 0);

export function formatPrice(price: number): string {
  return new Intl.NumberFormat("fa-IR").format(price);
}
