ef15fd6247
Full backend implementation: - Multi-tenant cafe/restaurant management (menus, orders, tables, staff) - POS order flow with ZarinPal and Snappfood payment integration - OTP authentication via Kavenegar SMS - QR digital menu with public discover/finder endpoints - Customer loyalty, coupons, CRM - PostgreSQL via EF Core, Redis for caching/sessions - Background jobs, webhook handlers - Full migration history Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
79 lines
4.4 KiB
C#
79 lines
4.4 KiB
C#
namespace Meezi.Infrastructure.Data;
|
|
|
|
/// <summary>Rotating menu templates for discover showcase cafés.</summary>
|
|
public static class DiscoverShowcaseMenus
|
|
{
|
|
public sealed record MenuTemplate(
|
|
IReadOnlyList<DemoMenuCatalog.CategorySeed> Categories,
|
|
IReadOnlyList<DemoMenuCatalog.ItemSeed> Items);
|
|
|
|
public static IReadOnlyList<MenuTemplate> Templates { get; } =
|
|
[
|
|
CoffeeShopTemplate(),
|
|
BrunchTemplate(),
|
|
RestaurantTemplate(),
|
|
DessertTemplate(),
|
|
TraditionalTemplate(),
|
|
];
|
|
|
|
private static MenuTemplate CoffeeShopTemplate() => new(
|
|
[
|
|
new("cat_sc_hot", "قهوه تخصصی", "Specialty coffee", null, 1, IconPresetId: "drinks-hot", IconStyle: "gradient"),
|
|
new("cat_sc_cold", "نوشیدنی سرد", "Cold drinks", null, 2, IconPresetId: "drinks-cold", IconStyle: "modern"),
|
|
new("cat_sc_snack", "میانوعده", "Snacks", null, 3, IconPresetId: "food-mains", IconStyle: "flat"),
|
|
],
|
|
[
|
|
new("item_sc_espresso", "cat_sc_hot", "اسپرسو", "Espresso", null, "دوبل سینگل", 70_000, 0, "espresso"),
|
|
new("item_sc_latte", "cat_sc_hot", "لاته", "Latte", null, "شیر بخار", 125_000, 0, "latte"),
|
|
new("item_sc_mocha", "cat_sc_hot", "موکا", "Mocha", null, null, 140_000, 0, "mocha"),
|
|
new("item_sc_iced", "cat_sc_cold", "آیس آمریکانو", "Iced americano", null, null, 115_000, 0, "iced_coffee"),
|
|
new("item_sc_cake", "cat_sc_snack", "چیزکیک", "Cheesecake", null, null, 165_000, 10, "cheesecake"),
|
|
]);
|
|
|
|
private static MenuTemplate BrunchTemplate() => new(
|
|
[
|
|
new("cat_sc_br", "صبحانه", "Breakfast", null, 1, IconPresetId: "breakfast", IconStyle: "pastel"),
|
|
new("cat_sc_br_d", "نوشیدنی", "Drinks", null, 2, IconPresetId: "drinks-hot"),
|
|
],
|
|
[
|
|
new("item_sc_omelette", "cat_sc_br", "املت", "Omelette", null, "نان سنگک", 155_000, 0, "omelette"),
|
|
new("item_sc_avocado", "cat_sc_br", "توست آووکادو", "Avocado toast", null, null, 195_000, 0, "avocado_toast"),
|
|
new("item_sc_tea", "cat_sc_br_d", "چای", "Tea", null, null, 65_000, 0, "miso_soup"),
|
|
]);
|
|
|
|
private static MenuTemplate RestaurantTemplate() => new(
|
|
[
|
|
new("cat_sc_main", "غذای اصلی", "Mains", null, 1, IconPresetId: "food-mains", IconStyle: "bold"),
|
|
new("cat_sc_salad", "سالاد", "Salads", null, 2, IconPresetId: "food-mains"),
|
|
new("cat_sc_drink", "نوشیدنی", "Drinks", null, 3, IconPresetId: "drinks-cold"),
|
|
],
|
|
[
|
|
new("item_sc_burger", "cat_sc_main", "همبرگر", "Burger", null, null, 265_000, 0, "hamburger"),
|
|
new("item_sc_pasta", "cat_sc_main", "پاستا", "Pasta", null, null, 245_000, 0, "spaghetti_bolognese"),
|
|
new("item_sc_salad", "cat_sc_salad", "سالاد سزار", "Caesar salad", null, null, 185_000, 0, "caesar_salad"),
|
|
new("item_sc_lemon", "cat_sc_drink", "لیموناد", "Lemonade", null, null, 95_000, 0, "lemonade"),
|
|
]);
|
|
|
|
private static MenuTemplate DessertTemplate() => new(
|
|
[
|
|
new("cat_sc_des", "دسر", "Desserts", null, 1, IconPresetId: "dessert", IconStyle: "soft"),
|
|
new("cat_sc_des_d", "قهوه", "Coffee", null, 2, IconPresetId: "drinks-hot"),
|
|
],
|
|
[
|
|
new("item_sc_tiramisu", "cat_sc_des", "تیرامیسو", "Tiramisu", null, null, 175_000, 0, "tiramisu"),
|
|
new("item_sc_macaron", "cat_sc_des", "ماکارون", "Macaron", null, null, 95_000, 0, "macarons"),
|
|
new("item_sc_capp", "cat_sc_des_d", "کاپوچینو", "Cappuccino", null, null, 110_000, 0, "cappuccino"),
|
|
]);
|
|
|
|
private static MenuTemplate TraditionalTemplate() => new(
|
|
[
|
|
new("cat_sc_tr", "نوشیدنی سنتی", "Traditional drinks", null, 1, IconPresetId: "drinks-hot", IconStyle: "duotone"),
|
|
new("cat_sc_tr_f", "غذا", "Food", null, 2, IconPresetId: "food-mains"),
|
|
],
|
|
[
|
|
new("item_sc_tea_tr", "cat_sc_tr", "چای ایرانی", "Persian tea", null, null, 55_000, 0, "miso_soup"),
|
|
new("item_sc_kebab", "cat_sc_tr_f", "چلوکباب", "Kebab plate", null, null, 320_000, 0, "steak"),
|
|
new("item_sc_soup", "cat_sc_tr_f", "سوپ", "Soup", null, null, 120_000, 0, "miso_soup"),
|
|
]);
|
|
}
|