// aerOS Superadmin — i18n dictionary + mock data
(function () {
  const TR = {
    appName: 'aerOS', appSub: 'Platform Konsolu', role: 'Süperadmin',
    nav_platform: 'Platform', nav_management: 'Yönetim',
    overview: 'Genel Bakış', orgs: 'Organizasyonlar', createOrg: 'Yeni Organizasyon',
    billing: 'Plan & Faturalama', activity: 'Etkinlik Günlüğü',
    // login
    loginTitle: 'Platform Konsolu', loginSub: 'Süperadmin erişimi gerekli',
    email: 'E-posta', password: 'Şifre', signIn: 'Giriş yap', signingIn: 'Doğrulanıyor…',
    loginHint: 'Demo: herhangi bir e-posta/şifre ile giriş yapın',
    loginError: 'Yetkilendirme başarısız. Süperadmin değilsiniz.',
    // overview
    totalOrgs: 'Toplam Otel', active: 'Aktif', suspended: 'Askıda',
    totalOrders: 'Toplam Sipariş', totalRevenue: 'Platform Cirosu', mrr: 'Aylık Gelir (MRR)',
    growthTitle: 'Platform Büyümesi', growthSub: 'Son 12 ay · yeni organizasyon + ciro',
    planDist: 'Plan Dağılımı', verticalDist: 'Dikey Dağılımı', recentOrgs: 'Son Eklenenler',
    ordersTrend: 'Sipariş Hacmi', last12: 'Son 12 ay', last30: 'Son 30 gün', last7: 'Son 7 gün',
    // orgs
    orgsTitle: 'Organizasyonlar', orgsSub: 'Tüm kiracıları tek panelden yönetin',
    searchOrg: 'Ad veya slug ara…', name: 'Ad', slug: 'Slug', vertical: 'Dikey', plan: 'Plan',
    status: 'Durum', created: 'Oluşturma', usage: 'Kullanım', actions: 'İşlemler', rooms: 'Oda', products: 'Ürün',
    all: 'Tümü', hotel: 'Otel', hospital: 'Hastane', restaurant: 'Restoran',
    // create
    createTitle: 'Yeni Organizasyon Oluştur', createSub: 'Otel + ilk yönetici hesabı',
    step_org: 'Organizasyon', step_brand: 'Marka', step_admin: 'Yönetici',
    orgName: 'Organizasyon adı', orgSlug: 'Slug (URL)', planTier: 'Plan kademesi',
    defaultCurrency: 'Varsayılan para birimi', defaultLang: 'Varsayılan dil', primaryColor: 'Kurumsal renk',
    adminLogin: 'Yönetici kullanıcı adı', adminMail: 'Yönetici e-postası', adminPass: 'Geçici şifre',
    create: 'Oluştur', cancel: 'Vazgeç', next: 'İleri', back: 'Geri', slugHint: 'Sadece küçük harf, rakam ve tire',
    orgCreated: 'Organizasyon oluşturuldu', orgCreatedMsg: 'tenant aktif edildi.',
    // actions
    suspend: 'Askıya al', activate: 'Aktifleştir', changePlan: 'Plan değiştir',
    impersonate: 'Panele gir', viewDetail: 'Detay', openMenu: 'Misafir menüsü',
    suspendConfirm: 'Organizasyonu askıya al', suspendMsg: 'askıya alınacak. Misafir menüsü ve panel erişimi durur. Devam edilsin mi?',
    activateConfirm: 'Organizasyonu aktifleştir', activateMsg: 'yeniden aktif edilecek. Devam edilsin mi?',
    planChanged: 'Plan güncellendi', statusChanged: 'Durum güncellendi',
    // impersonate banner
    imperBanner: 'Süperadmin olarak', imperAs: 'oteline giriş yaptınız', imperReturn: 'Süperadmin\'e dön',
    impersonated: 'Otel paneline giriş yapıldı', impersonatedMsg: 'oturumu açıldı. Üstteki banner ile geri dönebilirsiniz.',
    // detail
    orgDetail: 'Organizasyon Detayı', subscription: 'Abonelik', limits: 'Limitler', overview2: 'Özet',
    monthlyOrders: 'Aylık sipariş', monthlyRevenue: 'Aylık ciro', avgBasket: 'Ort. sepet',
    // billing
    billingTitle: 'Plan & Faturalama', billingSub: 'Plan tanımları, limitler ve abonelikler',
    planDefs: 'Plan Tanımları', maxRooms: 'Maks. oda', maxProducts: 'Maks. ürün', price: 'Fiyat', perMonth: '/ay',
    subscribers: 'Abone', editPlan: 'Planı düzenle', activeSubs: 'Aktif abonelik', planName: 'Plan adı', tier: 'Kademe',
    save: 'Kaydet', mostPopular: 'En popüler', features: 'Özellikler',
    // common
    today: 'Bugün', logout: 'Çıkış', loading: 'Yükleniyor…', retry: 'Tekrar dene',
  };

  const EN = {
    appName: 'aerOS', appSub: 'Platform Console', role: 'Superadmin',
    nav_platform: 'Platform', nav_management: 'Management',
    overview: 'Overview', orgs: 'Organizations', createOrg: 'New Organization',
    billing: 'Plans & Billing', activity: 'Activity Log',
    loginTitle: 'Platform Console', loginSub: 'Superadmin access required',
    email: 'Email', password: 'Password', signIn: 'Sign in', signingIn: 'Verifying…',
    loginHint: 'Demo: sign in with any email/password',
    loginError: 'Authorization failed. Not a superadmin.',
    totalOrgs: 'Total Hotels', active: 'Active', suspended: 'Suspended',
    totalOrders: 'Total Orders', totalRevenue: 'Platform Revenue', mrr: 'Monthly Revenue (MRR)',
    growthTitle: 'Platform Growth', growthSub: 'Last 12 months · new orgs + revenue',
    planDist: 'Plan Distribution', verticalDist: 'Vertical Mix', recentOrgs: 'Recently Added',
    ordersTrend: 'Order Volume', last12: 'Last 12 months', last30: 'Last 30 days', last7: 'Last 7 days',
    orgsTitle: 'Organizations', orgsSub: 'Manage every tenant from one console',
    searchOrg: 'Search name or slug…', name: 'Name', slug: 'Slug', vertical: 'Vertical', plan: 'Plan',
    status: 'Status', created: 'Created', usage: 'Usage', actions: 'Actions', rooms: 'Rooms', products: 'Products',
    all: 'All', hotel: 'Hotel', hospital: 'Hospital', restaurant: 'Restaurant',
    createTitle: 'Create Organization', createSub: 'Hotel + first admin account',
    step_org: 'Organization', step_brand: 'Brand', step_admin: 'Admin',
    orgName: 'Organization name', orgSlug: 'Slug (URL)', planTier: 'Plan tier',
    defaultCurrency: 'Default currency', defaultLang: 'Default language', primaryColor: 'Brand color',
    adminLogin: 'Admin username', adminMail: 'Admin email', adminPass: 'Temporary password',
    create: 'Create', cancel: 'Cancel', next: 'Next', back: 'Back', slugHint: 'Lowercase, digits and hyphens only',
    orgCreated: 'Organization created', orgCreatedMsg: 'tenant activated.',
    suspend: 'Suspend', activate: 'Activate', changePlan: 'Change plan',
    impersonate: 'Open panel', viewDetail: 'Details', openMenu: 'Guest menu',
    suspendConfirm: 'Suspend organization', suspendMsg: 'will be suspended. Guest menu and panel access stop. Continue?',
    activateConfirm: 'Activate organization', activateMsg: 'will be reactivated. Continue?',
    planChanged: 'Plan updated', statusChanged: 'Status updated',
    imperBanner: 'Signed in as superadmin into', imperAs: '', imperReturn: 'Return to superadmin',
    impersonated: 'Entered tenant panel', impersonatedMsg: 'session opened. Use the banner to return.',
    orgDetail: 'Organization Detail', subscription: 'Subscription', limits: 'Limits', overview2: 'Summary',
    monthlyOrders: 'Monthly orders', monthlyRevenue: 'Monthly revenue', avgBasket: 'Avg. basket',
    billingTitle: 'Plans & Billing', billingSub: 'Plan definitions, limits and subscriptions',
    planDefs: 'Plan Definitions', maxRooms: 'Max rooms', maxProducts: 'Max products', price: 'Price', perMonth: '/mo',
    subscribers: 'Subscribers', editPlan: 'Edit plan', activeSubs: 'Active subscriptions', planName: 'Plan name', tier: 'Tier',
    save: 'Save', mostPopular: 'Most popular', features: 'Features',
    today: 'Today', logout: 'Sign out', loading: 'Loading…', retry: 'Retry',
  };

  const PLANS = [
    { tier: 'starter', name: 'Starter', maxRooms: 40, maxProducts: 120, price: 49, subs: 38, features: ['1 outlet', 'QR menü', 'Temel raporlar'] },
    { tier: 'growth', name: 'Growth', maxRooms: 150, maxProducts: 500, price: 149, subs: 64, popular: true, features: ['5 outlet', 'Mutfak ekranı', 'Otel modülleri', 'Gelişmiş rapor'] },
    { tier: 'scale', name: 'Scale', maxRooms: 400, maxProducts: 1500, price: 349, subs: 27, features: ['Sınırsız outlet', 'Çoklu otel', 'API erişimi', 'Öncelikli destek'] },
    { tier: 'enterprise', name: 'Enterprise', maxRooms: 9999, maxProducts: 9999, price: 0, subs: 9, features: ['Özel SLA', 'SSO', 'Özel entegrasyon', 'Hesap yöneticisi'] },
  ];

  const cities = ['İstanbul', 'Bodrum', 'Antalya', 'İzmir', 'Ankara', 'Çeşme', 'Kapadokya', 'Bursa', 'Fethiye', 'Trabzon'];
  const names = [
    ['Radisson Collection Vadistanbul', 'radisson-vadistanbul', 'hotel', 'scale', true],
    ['Park Inn Pendik', 'park-inn-pendik', 'hotel', 'growth', true],
    ['Lumière Bodrum Resort', 'lumiere-bodrum', 'hotel', 'scale', true],
    ['Mandarin Cove Çeşme', 'mandarin-cove', 'hotel', 'growth', true],
    ['Anatolia City Hospital', 'anatolia-hospital', 'hospital', 'enterprise', true],
    ['Olea Bistro Group', 'olea-bistro', 'restaurant', 'starter', true],
    ['Marin Bay Antalya', 'marin-bay', 'hotel', 'growth', true],
    ['The Loft İzmir', 'the-loft-izmir', 'restaurant', 'starter', false],
    ['Cappadocia Cave Suites', 'cappadocia-cave', 'hotel', 'growth', true],
    ['Vista Medical Center', 'vista-medical', 'hospital', 'scale', true],
    ['Saffron Restaurant', 'saffron', 'restaurant', 'starter', true],
    ['Aegean Pearl Fethiye', 'aegean-pearl', 'hotel', 'growth', false],
    ['Bosphorus Grand', 'bosphorus-grand', 'hotel', 'scale', true],
    ['Nova Suites Ankara', 'nova-suites', 'hotel', 'starter', true],
    ['Terra Garden Bursa', 'terra-garden', 'hotel', 'growth', true],
    ['Blue Lagoon Resort', 'blue-lagoon', 'hotel', 'growth', true],
    ['Meze & Co.', 'meze-co', 'restaurant', 'starter', true],
    ['Hilltop Spa Hotel', 'hilltop-spa', 'hotel', 'growth', false],
    ['Pera Palas Dining', 'pera-dining', 'restaurant', 'growth', true],
    ['Karadeniz Sahil Otel', 'karadeniz-sahil', 'hotel', 'starter', true],
  ];
  function seed(i) { let x = Math.sin(i * 99.13) * 10000; return x - Math.floor(x); }
  const ORGS = names.map((n, i) => {
    const planMax = PLANS.find(p => p.tier === n[3]);
    const roomsUsed = Math.round(seed(i) * planMax.maxRooms * 0.85) + 3;
    const prodUsed = Math.round(seed(i + 50) * planMax.maxProducts * 0.7) + 10;
    const orders = Math.round(seed(i + 7) * 4200) + 180;
    const rev = Math.round((seed(i + 3) * 480 + 40) * 1000);
    const yr = 2025, mo = Math.floor(seed(i + 11) * 12) + 1, day = Math.floor(seed(i + 13) * 27) + 1;
    return {
      id: 'org_' + (1000 + i), name: n[0], slug: n[1], vertical: n[2], plan_tier: n[3],
      is_active: n[4], created_at: `${yr}-${String(mo).padStart(2, '0')}-${String(day).padStart(2, '0')}`,
      rooms_used: roomsUsed, rooms_max: planMax.maxRooms, products_used: prodUsed, products_max: planMax.maxProducts,
      monthly_orders: orders, monthly_revenue: rev, avg_basket: Math.round(rev / orders),
      currency: '₺', primary_color: ['#6E9F2A', '#2563eb', '#0d9488', '#b45309', '#7c3aed', '#be123c'][i % 6],
      city: cities[i % cities.length],
      spark: Array.from({ length: 12 }, (_, m) => Math.round(seed(i * 3 + m) * 100 + 20)),
    };
  });

  // platform-wide 12-month growth
  const MONTHS = ['Tem', 'Ağu', 'Eyl', 'Eki', 'Kas', 'Ara', 'Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz'];
  const GROWTH_ORGS = [4, 6, 7, 9, 11, 12, 14, 15, 16, 18, 19, 20];
  const GROWTH_REV = [62, 78, 95, 110, 128, 145, 168, 182, 205, 232, 268, 312]; // in thousands
  const ORDERS_30 = Array.from({ length: 30 }, (_, i) => Math.round(Math.abs(Math.sin(i * 0.6)) * 900 + 600 + seed(i) * 400));

  window.SA_DATA = { TR, EN, PLANS, ORGS, MONTHS, GROWTH_ORGS, GROWTH_REV, ORDERS_30 };
})();
