using Meezi.Core.Discover;
using Meezi.Core.Enums;

namespace Meezi.Infrastructure.Data;

public static class DiscoverShowcaseCatalog
{
    public sealed record ShowcaseCafe(
        string Id,
        string Slug,
        string Name,
        string City,
        string Address,
        string Description,
        CafeDiscoverProfile Profile,
        PlanTier PlanTier,
        int MenuTemplateIndex,
        string OwnerPhone,
        IReadOnlyList<string>? Badges = null);

    public static IReadOnlyList<ShowcaseCafe> Cafes { get; } =
    [
        Cafe("cafe_sc_01", "cafe-mokhteh-tehran", "کافه مخته", "تهران", "تهران، ولیعصر، نرسیده به پارک ساعی",
            "رستری تخصصی قهوه و دسر؛ فضای آرام برای کار و قرار دو نفره. اسپرسو، لاته، چیزکیک.",
            Profile(["roastery", "modern"], "cozy", ["quiet", "cozy"], ["study_work", "date"], ["indoor", "wifi"], "quiet", "mid"), 0, "09131000001"),
        Cafe("cafe_sc_02", "cafe-sibo-karaj", "کافه سیب", "کرج", "کرج، گوهردشت، بلوار موذن‌نیا",
            "کافه دنج کرج با قهوه دمی و بیکری؛ مناسب خانواده و صبحانه آخر هفته.",
            Profile(["brunch", "plants_heavy"], "medium", ["casual", "cozy"], ["family", "friends"], ["indoor", "kids_friendly"], "moderate", "budget"), 1, "09131000002"),
        Cafe("cafe_sc_03", "cafe-ava-valiasr", "کافه آوا", "تهران", "تهران، ولیعصر، بالاتر از میدان ونک",
            "کافه مدرن با نور طبیعی؛ لاته آرت و نوشیدنی‌های فصل. جستجو: قهوه تخصصی ولیعصر.",
            Profile(["modern", "instagrammable"], "medium", ["trendy", "lively"], ["friends", "quick_coffee"], ["indoor", "terrace"], "moderate", "mid"), 0, "09131000003"),
        Cafe("cafe_sc_04", "restaurant-sang-tehran", "رستوران سنگ", "تهران", "تهران، جردن، خیابان ناهید شرقی",
            "غذای ایرانی و بین‌المللی؛ فضای لوکس برای شام و جشن. استیک، پاستا، سالاد.",
            Profile(["luxury", "heritage"], "large", ["luxury", "romantic"], ["celebration", "business_meeting"], ["indoor", "private_room"], "quiet", "premium"), 2, "09131000004", PlanTier.Business),
        Cafe("cafe_sc_05", "cafe-ketab-niavaran", "کافه کتاب نیاوران", "تهران", "تهران، نیاوران، خیابان باهنر",
            "بوفه کتاب با قهوه و چای؛ فضای ساکت برای درس و کار. دمنوش، کیک، ساندویچ.",
            Profile(["book_cafe", "quiet"], "cozy", ["quiet", "study_friendly"], ["study_work", "solo"], ["indoor", "wifi"], "quiet", "mid"), 0, "09131000005"),
        Cafe("cafe_sc_06", "cafe-rooz-karaj", "کافه روز", "کرج", "کرج، عظیمیه، میدان جهاد",
            "کافه روز کرج؛ اسموتی، قهوه سرد، صبحانه کامل. مناسب جوانان و دورهمی.",
            Profile(["modern", "brunch"], "medium", ["lively", "casual"], ["friends", "breakfast"], ["outdoor", "wifi"], "moderate", "budget"), 1, "09131000006"),
        Cafe("cafe_sc_07", "cafe-gol-reza", "کافه گل رضا", "تهران", "تهران، سعادت‌آباد، میدان کاج",
            "کافه گل‌دار و دکور سنتی مدرن؛ عالی برای عکاسی و قرار عاشقانه.",
            Profile(["persian_traditional", "instagrammable"], "cozy", ["romantic", "cozy"], ["date"], ["indoor", "plants"], "quiet", "mid"), 4, "09131000007"),
        Cafe("cafe_sc_08", "cafe-shab-enghelab", "کافه شب", "تهران", "تهران، انقلاب، خیابان ۱۲ فروردین",
            "کافه دیروقت؛ قهوه و دسر تا نیمه‌شب. موسیقی ملایم، فضای شب‌گاه.",
            Profile(["late_night", "industrial"], "medium", ["lively", "trendy"], ["friends", "finding_someone"], ["indoor", "live_music"], "lively", "mid"), 0, "09131000008"),
        Cafe("cafe_sc_09", "cafe-darya-karaj", "کافه دریا", "کرج", "کرج، مارلیک، بلوار ارم",
            "تراس باز با نوشیدنی سرد؛ مناسب تابستان و دورهمی دوستانه در کرج.",
            Profile(["modern"], "spacious", ["casual", "lively"], ["friends", "family"], ["outdoor", "terrace"], "moderate", "mid"), 0, "09131000009"),
        Cafe("cafe_sc_10", "cafe-nan-o-nam", "نان و نمک", "تهران", "تهران، پاسداران، خیابان گلستان هفتم",
            "بیکری-کافه با نان تازه و صبحانه؛ کره محلی، مربا، قهوه فیلتر.",
            Profile(["brunch", "heritage"], "cozy", ["cozy", "traditional"], ["breakfast", "family"], ["indoor"], "moderate", "budget"), 1, "09131000010"),
        Cafe("cafe_sc_11", "cafe-terrace-farmanieh", "تراس فرمانیه", "تهران", "تهران، فرمانیه، خیابان کلاهدوز",
            "کافه تراس با ویوی شهر؛ قهوه ویژه و دسر فصل. مناسب قرار و عکاسی.",
            Profile(["luxury", "instagrammable"], "large", ["romantic", "luxury"], ["date", "celebration"], ["terrace", "outdoor"], "quiet", "premium"), 3, "09131000011", PlanTier.Enterprise, ["award_winner", "roastery"]),
        Cafe("cafe_sc_12", "cafe-minimal-karaj", "مینیمال کرج", "کرج", "کرج، گلشهر، بلوار امیرکبیر",
            "کافه مینیمال کرج؛ اسپرسو دقیق و فضای سفید آرام.",
            Profile(["minimal", "scandi"], "tiny", ["quiet", "study_friendly"], ["solo", "study_work"], ["indoor", "wifi"], "quiet", "mid"), 0, "09131000012"),
        Cafe("cafe_sc_13", "cafe-chocolate-tehran", "خانه شکلات", "تهران", "تهران، زعفرانیه، خیابان مقدس اردبیلی",
            "دسرخانه شکلات و قهوه؛ تارت، شکلات دست‌ساز، هات چاکلت.",
            Profile(["dessert_focus", "luxury"], "cozy", ["romantic", "cozy"], ["date"], ["indoor"], "quiet", "premium"), 3, "09131000013"),
        Cafe("cafe_sc_14", "cafe-vintage-tajrish", "کافه وینتیج تجریش", "تهران", "تهران، تجریش، میدان قدس",
            "دکور قدیمی تهران؛ قهوه ترک و کیک خانگی. فضای نوستالژیک.",
            Profile(["vintage", "heritage"], "cozy", ["traditional", "cozy"], ["friends", "solo"], ["indoor"], "moderate", "mid"), 0, "09131000014"),
        Cafe("cafe_sc_15", "cafe-work-hub-karaj", "هاب کار کرج", "کرج", "کرج، جهانشهر، بلوار شهید مطهری",
            "فضای کار اشتراکی با کافه؛ وای‌فای قوی، قهوه نامحدود، ساندویچ.",
            Profile(["modern", "book_cafe"], "medium", ["study_friendly", "quiet"], ["study_work", "business_meeting"], ["indoor", "wifi"], "quiet", "budget"), 0, "09131000015"),
        Cafe("cafe_sc_16", "cafe-pet-pardis", "کافه پت پاردیس", "تهران", "تهران، پردیس، فاز ۱",
            "کافه پت‌فرندلی؛ نوشیدنی گیاهی و فضای باز برای صاحبان سگ.",
            Profile(["plants_heavy", "modern"], "spacious", ["casual", "lively"], ["friends", "family"], ["outdoor", "pet_friendly"], "moderate", "mid"), 0, "09131000016", badges: ["pet_friendly"]),
        Cafe("cafe_sc_17", "restaurant-sabz-karaj", "رستوران سبز", "کرج", "کرج، مشکین‌دشت، بلوار آزادی",
            "رستوران گیاهی و سالم کرج؛ بول، سالاد، آبمیوه تازه.",
            Profile(["modern", "plants_heavy"], "medium", ["casual"], ["family", "friends"], ["indoor", "outdoor"], "moderate", "mid"), 2, "09131000017"),
        Cafe("cafe_sc_18", "cafe-roastery-darabad", "رستری دارآباد", "تهران", "تهران، دارآباد، خیابان اصلی",
            "رستری قهوه تخصصی با دم‌آوری دستی؛ تست پروفایل‌های مختلف.",
            Profile(["roastery", "industrial"], "medium", ["trendy"], ["quick_coffee", "friends"], ["indoor"], "moderate", "mid"), 0, "09131000018"),
        Cafe("cafe_sc_19", "cafe-family-mehri", "کافه مهری", "تهران", "تهران، تهرانپارس، فلکه اول",
            "کافه خانوادگی با فضای بازی کودک؛ صبحانه و ناهار سبک.",
            Profile(["brunch"], "large", ["casual", "cozy"], ["family"], ["indoor", "kids_friendly"], "moderate", "budget"), 1, "09131000019"),
        Cafe("cafe_sc_20", "cafe-laleh-karaj", "کافه لاله", "کرج", "کرج، باغستان، خیابان شهید بهشتی",
            "کافه گل لاله کرج؛ دمنوش گل و قهوه ترک. فضای زنانه دوستانه.",
            Profile(["plants_heavy", "persian_traditional"], "cozy", ["cozy", "quiet"], ["friends", "solo"], ["indoor", "plants"], "quiet", "budget"), 4, "09131000020"),
        Cafe("cafe_sc_21", "cafe-business-iran", "کافه ایران‌زمین", "تهران", "تهران، آفریقا، برج میلاد نزدیک",
            "مناسب جلسه کاری؛ قهوه سریع، صبحانه executive، سالاد.",
            Profile(["modern", "luxury"], "medium", ["luxury", "quiet"], ["business_meeting"], ["indoor", "wifi", "private_room"], "quiet", "premium"), 2, "09131000021"),
        Cafe("cafe_sc_22", "cafe-sunset-karaj", "غروب کرج", "کرج", "کرج، حصارک، جاده چالوس",
            "ویوی کوه و غروب؛ قهوه دمی و کیک هویج. مناسب آخر هفته.",
            Profile(["instagrammable"], "cozy", ["romantic", "casual"], ["date", "friends"], ["outdoor", "terrace"], "quiet", "mid"), 0, "09131000022"),
        Cafe("cafe_sc_23", "cafe-gaming-tehran", "کافه گیم", "تهران", "تهران، یوسف‌آباد، خیابان جهان‌آرا",
            "کافه گیمینگ؛ نوشیدنی انرژی‌زا و اسنک؛ فضای پرانرژی جوانان.",
            Profile(["modern", "late_night"], "medium", ["lively", "trendy"], ["friends"], ["indoor"], "lively", "budget"), 0, "09131000023"),
        Cafe("cafe_sc_24", "cafe-honey-karaj", "عسل کرج", "کرج", "کرج، طالقانی، میدان شهدا",
            "کافه با عسل محلی و چای؛ کیک عسل، دمنوش گیاهی کرج.",
            Profile(["heritage", "persian_traditional"], "cozy", ["traditional", "cozy"], ["family"], ["indoor"], "quiet", "budget"), 4, "09131000024"),
        Cafe("cafe_sc_25", "cafe-art-tehran", "کافه هنر", "تهران", "تهران، ایرانشهر، خیابان نواب",
            "گالری-کافه؛ قهوه و نمایشگاه موقت. فضای هنری و خلاق.",
            Profile(["artistic", "vintage"], "medium", ["artistic", "quiet"], ["solo", "friends"], ["indoor"], "quiet", "mid"), 0, "09131000025"),
        Cafe("cafe_sc_26", "cafe-quick-karaj", "ایستگاه قهوه کرج", "کرج", "کرج، کرج مرکزی، میدان آزادگان",
            "قهوه سریع کرج؛ مناسب مسیر کار و دانشجو. ساندویچ و اسپرسو.",
            Profile(["modern"], "tiny", ["casual"], ["quick_coffee", "study_work"], ["indoor"], "moderate", "budget"), 0, "09131000026"),
        Cafe("cafe_sc_27", "restaurant-caspian", "رستوران کاسپین", "تهران", "تهران، الهیه، خیابان فرشته",
            "غذای دریایی و فیش؛ پاستا دریایی، سالاد، mocktail.",
            Profile(["luxury", "modern"], "large", ["luxury", "romantic"], ["celebration", "date"], ["indoor"], "quiet", "premium"), 2, "09131000027", PlanTier.Enterprise, ["verified_partner"]),
        Cafe("cafe_sc_28", "cafe-mountain-karaj", "کافه کوهستان", "کرج", "کرج، محمدشهر، انتهای بلوار ارم",
            "فضای کوهستانی کرج؛ چای کوهی و سوخاری. هوای خنک تراس.",
            Profile(["modern"], "spacious", ["casual", "cozy"], ["family", "friends"], ["outdoor", "terrace"], "moderate", "mid"), 2, "09131000028"),
        Cafe("cafe_sc_29", "cafe-vegan-tehran", "کافه وگان", "تهران", "تهران، جمالزاده، خیابان مخبر",
            "منوی وگان و گیاهی؛ لاته جو، شیر بادام، دسر وگان.",
            Profile(["modern", "plants_heavy"], "cozy", ["trendy", "casual"], ["friends", "solo"], ["indoor", "wifi"], "quiet", "mid"), 0, "09131000029", badges: ["eco_friendly"]),
        Cafe("cafe_sc_30", "cafe-royal-karaj", "کافه رویال کرج", "کرج", "کرج، عظیمیه، برج بلور",
            "کافه لوکس کرج؛ دسر فرانسوی و قهوه اسپشیالتی. مناسب جشن.",
            Profile(["luxury", "dessert_focus"], "large", ["luxury", "romantic"], ["celebration", "date"], ["indoor", "private_room"], "quiet", "premium"), 3, "09131000030", PlanTier.Enterprise, ["award_winner", "verified_partner"]),
    ];

    private static ShowcaseCafe Cafe(
        string id,
        string slug,
        string name,
        string city,
        string address,
        string description,
        CafeDiscoverProfile profile,
        int menuTemplate,
        string phone,
        PlanTier plan = PlanTier.Pro,
        IReadOnlyList<string>? badges = null) =>
        new(id, slug, name, city, address, description, profile, plan, menuTemplate, phone, badges);

    private static CafeDiscoverProfile Profile(
        string[] themes,
        string size,
        string[] vibes,
        string[] occasions,
        string[] space,
        string noise,
        string price) => new()
    {
        Themes = themes.ToList(),
        Size = size,
        Vibes = vibes.ToList(),
        Occasions = occasions.ToList(),
        SpaceFeatures = space.ToList(),
        NoiseLevel = noise,
        PriceTier = price,
    };
}
