<?php
/**
 * Default RTDB payload for a new store — mirrors setup.html wizard finalData (structure + demo catalog).
 * Keep in sync when setup defaults change.
 */

/**
 * @return array<string, mixed>
 */
function sa_normalize_subdomain($raw) {
    $s = strtolower(trim((string) $raw));
    $s = preg_replace('/\s+/', '-', $s);
    $s = preg_replace('/[^a-z0-9-]/', '', $s);
    $s = preg_replace('/-+/', '-', $s);
    $s = trim($s, '-');
    return $s;
}

/** Same as setup.html sanitizeEmailKey — safe RTDB path segment under usersByEmail. */
function sa_sanitize_email_key($email) {
    return preg_replace('/[.#$\[\]\/]/', '_', strtolower(trim((string) $email)));
}

/**
 * @return array<int, string>
 */
function sa_reserved_subdomains_list() {
    return [
        'www', 'api', 'admin', 'app', 'cdn', 'static', 'mail', 'ftp', 'localhost',
        'test', 'dev', 'staging', 'setup', 'dashboard', 'super-admin', 'clients',
        'firebase', 'null', 'undefined',
    ];
}

/**
 * @return array<string, mixed>
 */
function sa_build_new_client_record($siteName, $subdomain, $logoUrl, $bannerUrl, $phone, $adminEmail, $activeDesign = 'ghorerbazar') {
    $siteName = trim((string) $siteName);
    $year = (int) gmdate('Y');
    $phone = trim((string) $phone);
    $logoUrl = trim((string) $logoUrl) ?: 'https://i.postimg.cc/90dcxxJP/logo.avif';
    $bannerUrl = trim((string) $bannerUrl) ?: 'https://i.ibb.co/DPRk1nSj/gb-banner.webp';

    return [
        'creationDate' => gmdate('c'),
        'status' => 'active',
        'subdomain' => $subdomain,
        'siteSettings' => [
            'siteName' => $siteName,
            'logoUrl' => $logoUrl,
            'bannerUrl' => $bannerUrl,
            'textContent' => [
                'topBarText' => 'Cash on delivery available nationwide!',
                'copyright' => '© ' . $year . ' ' . $siteName . '. All Rights Reserved.',
            ],
            'contactInfo' => [
                'phoneNumber' => $phone,
            ],
            'layout' => [
                'activeDesign' => $activeDesign,
            ],
        ],
        'wallet' => [
            'balance' => 0,
            'updatedAt' => time() * 1000,
        ],
        'categories' => [
            'cat1' => [
                'name' => 'মশলার গুঁড়া',
                'imageUrl' => 'https://i.ibb.co/vz1A5p1/placeholder-image.png',
                'subcategories' => [
                    'sub1' => ['name' => 'ঝাল মশলা'],
                    'sub2' => ['name' => 'রান্নার বেসিক'],
                ],
            ],
            'cat2' => [
                'name' => 'ডাল',
                'imageUrl' => 'https://i.ibb.co/vz1A5p1/placeholder-image.png',
                'subcategories' => [
                    'sub1' => ['name' => 'প্রিমিয়াম ডাল'],
                ],
            ],
            'cat3' => [
                'name' => 'কম্বো প্যাক',
                'imageUrl' => 'https://i.ibb.co/vz1A5p1/placeholder-image.png',
                'subcategories' => [
                    'sub1' => ['name' => 'ফ্যামিলি কম্বো'],
                    'sub2' => ['name' => 'সেভার প্যাক'],
                ],
            ],
        ],
        'products' => [
            'prod1' => [
                'name' => 'শাহী মশলা কম্বো',
                'category' => 'কম্বো প্যাক',
                'subcategory' => 'ফ্যামিলি কম্বো',
                'imageUrl' => 'https://i.postimg.cc/G2GGsjG9/Shahi-mosla-combo-01.jpg',
                'regularPrice' => 750,
                'salePrice' => 699,
                'description' => 'আপনার শাহী রান্নার জন্য প্রয়োজনীয় সব মশলার একটি বিশেষ প্যাকেজ।',
                'hasVariants' => false,
            ],
            'prod2' => [
                'name' => 'মরিচের গুঁড়া (৫০০ গ্রাম)',
                'category' => 'মশলার গুঁড়া',
                'subcategory' => 'ঝাল মশলা',
                'imageUrl' => 'https://i.postimg.cc/k4KKtyK8/Morich-Gura-500gm.jpg',
                'regularPrice' => 230,
                'salePrice' => 199,
                'description' => 'বাছাই করা সেরা শুকনো মরিচ থেকে প্রস্তুতকৃত, যা খাবারে আনবে দারুণ ঝাল ও রঙ।',
                'hasVariants' => false,
            ],
            'prod3' => [
                'name' => 'মসুর ডাল (১ কেজি)',
                'category' => 'ডাল',
                'subcategory' => 'প্রিমিয়াম ডাল',
                'imageUrl' => 'https://i.postimg.cc/QCD5gWJH/Masoor-Dal2.jpg',
                'regularPrice' => 160,
                'salePrice' => 145,
                'description' => 'স্বাস্থ্যকর ও সুস্বাদু দেশি মসুর ডাল, যা আপনার প্রতিদিনের খাবারের জন্য অপরিহার্য।',
                'hasVariants' => false,
            ],
            'prod4' => [
                'name' => 'মশলা কম্বো অফার (চাল ফ্রি)',
                'category' => 'কম্বো প্যাক',
                'imageUrl' => 'https://i.postimg.cc/mk4M3Fyc/Masala-combo-rice-free.jpg',
                'regularPrice' => 990,
                'salePrice' => 899,
                'description' => 'রান্নার মশলার দারুণ কম্বো প্যাক, সাথে পাচ্ছেন প্রিমিয়াম মানের পোলাও চাল একদম ফ্রি।',
                'hasVariants' => false,
            ],
            'prod5' => [
                'name' => 'মেথি গুঁড়া (১০০ গ্রাম)',
                'category' => 'মশলার গুঁড়া',
                'imageUrl' => 'https://i.postimg.cc/tJbPdVN7/fenugreek-cc4f5d84-304a-4863-be0f-81228b963dd6.jpg',
                'regularPrice' => 90,
                'salePrice' => 75,
                'description' => 'রান্নার স্বাদ বাড়ানোর পাশাপাশি স্বাস্থ্য সুরক্ষায় অত্যন্ত কার্যকরী খাঁটি মেথি গুঁড়া।',
                'hasVariants' => false,
            ],
            'prod6' => [
                'name' => 'ধনিয়া গুঁড়া (২০০ গ্রাম)',
                'category' => 'মশলার গুঁড়া',
                'imageUrl' => 'https://i.postimg.cc/GtRYPsxT/donia-gura-1-a6e1d690-35a7-4f6b-9885-285ac0843d0a.jpg',
                'regularPrice' => 80,
                'salePrice' => 65,
                'description' => 'টাটকা ধনিয়া থেকে তৈরি, যা আপনার যেকোনো তরকারিতে যোগ করবে এক অসাধারণ সুগন্ধ।',
                'hasVariants' => false,
            ],
        ],
    ];
}

/**
 * @param array<string, mixed> $record from sa_build_new_client_record + admins merged
 */
function sa_merge_admin_into_record(array $record, $uid, $adminEmail) {
    $record['admins'] = [
        (string) $uid => [
            'email' => (string) $adminEmail,
            'role' => 'owner',
        ],
    ];
    return $record;
}
