// data.jsx — products, scent families, orders, customers

const SCENT_FAMILIES = [
  { id: 'oud', ar: 'العود', en: 'Oud', desc_ar: 'دخان، خشب أسود، عمق ليلي', desc_en: 'Smoke, blackwood, nocturnal depth', tone: '#3D2A1E', notes_ar: ['عود هندي', 'صندل', 'جلد', 'دخان'], notes_en: ['Indian agarwood', 'Sandalwood', 'Leather', 'Smoke'] },
  { id: 'rose',  ar: 'الورد',  en: 'Rose',  desc_ar: 'وردة طازجة، عسل، شفافية', desc_en: 'Fresh petals, honeyed, luminous', tone: '#B85563', notes_ar: ['ورد طائفي', 'فاوانيا', 'عسل', 'مسك'], notes_en: ['Taif rose', 'Peony', 'Honey', 'Musk'] },
  { id: 'amber', ar: 'العنبر', en: 'Amber', desc_ar: 'راتنج، فانيليا، دفء معدني', desc_en: 'Resin, vanilla, mineral warmth', tone: '#C97B5E', notes_ar: ['عنبر رمادي', 'لبدنوم', 'بنزوين', 'كهرمان'], notes_en: ['Ambergris', 'Labdanum', 'Benzoin', 'Amber'] },
  { id: 'musk',  ar: 'المسك',  en: 'Musk',  desc_ar: 'جلدي، حليبي، حسي', desc_en: 'Skin, milky, sensual', tone: '#D9C7A8', notes_ar: ['مسك أبيض', 'إيريس', 'كشمير', 'حليب لوز'], notes_en: ['White musk', 'Iris', 'Cashmere', 'Almond milk'] },
  { id: 'spice', ar: 'البهارات', en: 'Spice', desc_ar: 'كاردمم، فلفل، زنجبيل هندي', desc_en: 'Cardamom, pepper, Indian ginger', tone: '#8C4A2B', notes_ar: ['هيل', 'قرنفل', 'زعفران', 'فلفل وردي'], notes_en: ['Cardamom', 'Clove', 'Saffron', 'Pink pepper'] },
  { id: 'flora', ar: 'الزهور', en: 'Floral', desc_ar: 'ياسمين، توبروز، فل', desc_en: 'Jasmine, tuberose, mogra', tone: '#9B8FB5', notes_ar: ['ياسمين سامباك', 'فل', 'تشامبا', 'توبروز'], notes_en: ['Jasmine sambac', 'Mogra', 'Champa', 'Tuberose'] },
  { id: 'woody', ar: 'الأخشاب', en: 'Woody', desc_ar: 'صندل، خشب الأرز، فيتيفر', desc_en: 'Sandalwood, cedar, vetiver', tone: '#6B7050', notes_ar: ['صندل ميسوري', 'أرز', 'فيتيفر', 'كاكاو'], notes_en: ['Mysore sandal', 'Cedar', 'Vetiver', 'Cacao'] },
];

const PRODUCTS = [
  { id: 'p01', name_ar: 'ليل بومباي', name_en: 'Bombay Nights', family: 'oud',   price: 720, sizes: [{ml:30,price:380},{ml:50,price:720},{ml:100,price:1290}], stock: 24, rating: 4.8, top_ar:'هيل، كافور', heart_ar:'عود، ورد', base_ar:'صندل، مسك', tag_ar:'الأكثر مبيعاً', tag_en:'Bestseller', year: 2024, origin: 'Assam', concentration: 'Extrait', tone: '#2E1F18' },
  { id: 'p02', name_ar: 'ورد ميسور',   name_en: 'Mysore Rose',   family: 'rose',  price: 540, sizes: [{ml:30,price:290},{ml:50,price:540},{ml:100,price:980}], stock: 12, rating: 4.7, top_ar:'فلفل وردي', heart_ar:'ورد طائفي', base_ar:'صندل ميسوري', tag_ar:'جديد', tag_en:'New', year: 2025, origin: 'Mysore', concentration: 'EDP', tone: '#B85563' },
  { id: 'p03', name_ar: 'كاردمم',      name_en: 'Cardamom',      family: 'spice', price: 460, sizes: [{ml:30,price:250},{ml:50,price:460},{ml:100,price:820}], stock: 31, rating: 4.6, top_ar:'هيل، زنجبيل', heart_ar:'قرنفل، زعفران', base_ar:'كهرمان', year: 2023, origin: 'Kerala', concentration: 'EDP', tone: '#8C4A2B' },
  { id: 'p04', name_ar: 'ياسمين سامباك', name_en: 'Sambac',       family: 'flora', price: 510, sizes: [{ml:30,price:270},{ml:50,price:510},{ml:100,price:910}], stock: 18, rating: 4.9, top_ar:'برغموت', heart_ar:'ياسمين، فل', base_ar:'مسك أبيض', tag_ar:'إصدار محدود', tag_en:'Limited', year: 2024, origin: 'Tamil Nadu', concentration: 'Parfum', tone: '#9B8FB5' },
  { id: 'p05', name_ar: 'صندل قديم',   name_en: 'Old Sandalwood', family: 'woody', price: 890, sizes: [{ml:30,price:480},{ml:50,price:890},{ml:100,price:1620}], stock: 6, rating: 4.9, top_ar:'فلفل أسود', heart_ar:'صندل، أرز', base_ar:'فيتيفر، كاكاو', tag_ar:'نادر', tag_en:'Rare', year: 2022, origin: 'Mysore', concentration: 'Extrait', tone: '#6B7050' },
  { id: 'p06', name_ar: 'مسك حليبي',   name_en: 'Milk Musk',     family: 'musk',  price: 380, sizes: [{ml:30,price:200},{ml:50,price:380},{ml:100,price:680}], stock: 42, rating: 4.5, top_ar:'لوز', heart_ar:'إيريس، كشمير', base_ar:'مسك أبيض', year: 2024, origin: 'Rajasthan', concentration: 'EDP', tone: '#D9C7A8' },
  { id: 'p07', name_ar: 'عنبر جودبور', name_en: 'Jodhpur Amber', family: 'amber', price: 640, sizes: [{ml:30,price:340},{ml:50,price:640},{ml:100,price:1180}], stock: 15, rating: 4.7, top_ar:'برتقال دموي', heart_ar:'لبدنوم', base_ar:'عنبر، بنزوين', year: 2024, origin: 'Rajasthan', concentration: 'EDP', tone: '#C97B5E' },
  { id: 'p08', name_ar: 'دخان الأرز',  name_en: 'Cedar Smoke',   family: 'woody', price: 470, sizes: [{ml:30,price:250},{ml:50,price:470},{ml:100,price:840}], stock: 22, rating: 4.4, top_ar:'كافور', heart_ar:'أرز، عرعر', base_ar:'فيتيفر، دخان', year: 2023, origin: 'Himalayan', concentration: 'EDP', tone: '#5C5240' },
  { id: 'p09', name_ar: 'زعفران',      name_en: 'Saffron',       family: 'spice', price: 780, sizes: [{ml:30,price:420},{ml:50,price:780},{ml:100,price:1420}], stock: 9, rating: 4.8, top_ar:'زعفران، هيل', heart_ar:'ورد، عود', base_ar:'جلد، عنبر', tag_ar:'فاخر', tag_en:'Premium', year: 2024, origin: 'Kashmir', concentration: 'Extrait', tone: '#A65A2A' },
  { id: 'p10', name_ar: 'فل وموغرا',   name_en: 'Mogra',         family: 'flora', price: 430, sizes: [{ml:30,price:230},{ml:50,price:430},{ml:100,price:770}], stock: 26, rating: 4.6, top_ar:'ليمون هندي', heart_ar:'فل، تشامبا', base_ar:'مسك، صندل', year: 2024, origin: 'Tamil Nadu', concentration: 'EDP', tone: '#B0A4C2' },
  { id: 'p11', name_ar: 'عود كامبودي', name_en: 'Cambodi Oud',   family: 'oud',   price: 1340, sizes: [{ml:30,price:720},{ml:50,price:1340},{ml:100,price:2480}], stock: 4, rating: 5.0, top_ar:'هيل أخضر', heart_ar:'عود معتق', base_ar:'صندل، جلد', tag_ar:'نادر', tag_en:'Rare', year: 2021, origin: 'Assam', concentration: 'Extrait', tone: '#1F140C' },
  { id: 'p12', name_ar: 'وردة دلهي',   name_en: 'Delhi Rose',    family: 'rose',  price: 480, sizes: [{ml:30,price:260},{ml:50,price:480},{ml:100,price:860}], stock: 17, rating: 4.5, top_ar:'فاوانيا', heart_ar:'ورد دمشقي', base_ar:'باتشولي', year: 2024, origin: 'Delhi', concentration: 'EDP', tone: '#C56B7A' },
  { id: 'p13', name_ar: 'فيتيفر مونسون', name_en: 'Monsoon Vetiver', family: 'woody', price: 520, sizes: [{ml:30,price:280},{ml:50,price:520},{ml:100,price:940}], stock: 19, rating: 4.6, top_ar:'بومبلي', heart_ar:'فيتيفر طازج', base_ar:'تربة، خشب', year: 2024, origin: 'Karnataka', concentration: 'EDT', tone: '#566849' },
  { id: 'p14', name_ar: 'عنبر ذهبي',   name_en: 'Gold Amber',    family: 'amber', price: 690, sizes: [{ml:30,price:360},{ml:50,price:690},{ml:100,price:1240}], stock: 11, rating: 4.7, top_ar:'برغموت', heart_ar:'كهرمان، عنبر', base_ar:'فانيليا، بنزوين', year: 2023, origin: 'Rajasthan', concentration: 'Extrait', tone: '#D08A5C' },
  { id: 'p15', name_ar: 'مسك غزال',    name_en: 'Gazelle Musk',  family: 'musk',  price: 590, sizes: [{ml:30,price:310},{ml:50,price:590},{ml:100,price:1060}], stock: 14, rating: 4.8, top_ar:'كزبرة', heart_ar:'مسك، إيريس', base_ar:'صندل، عنبر', year: 2024, origin: 'Lucknow', concentration: 'Extrait', tone: '#C2B79A' },
  { id: 'p16', name_ar: 'توبروز ليلي', name_en: 'Tuberose Noir', family: 'flora', price: 620, sizes: [{ml:30,price:330},{ml:50,price:620},{ml:100,price:1120}], stock: 8, rating: 4.7, top_ar:'فلفل أبيض', heart_ar:'توبروز', base_ar:'عنبر، مسك', year: 2024, origin: 'Tamil Nadu', concentration: 'Parfum', tone: '#7F7595' },
  { id: 'p17', name_ar: 'قرنفل ليلكنو', name_en: 'Lucknow Clove', family: 'spice', price: 410, sizes: [{ml:30,price:220},{ml:50,price:410},{ml:100,price:740}], stock: 25, rating: 4.4, top_ar:'قرنفل، فلفل', heart_ar:'ورد، توبكو', base_ar:'جلد، باتشولي', year: 2023, origin: 'Lucknow', concentration: 'EDP', tone: '#7A3922' },
  { id: 'p18', name_ar: 'باتشولي قديم', name_en: 'Aged Patchouli', family: 'woody', price: 560, sizes: [{ml:30,price:300},{ml:50,price:560},{ml:100,price:1000}], stock: 13, rating: 4.6, top_ar:'برتقال', heart_ar:'باتشولي معتق', base_ar:'كاكاو، فانيليا', year: 2022, origin: 'Kerala', concentration: 'EDP', tone: '#4A3B2A' },
  { id: 'p19', name_ar: 'ورد وعود',    name_en: 'Rose & Oud',    family: 'rose',  price: 870, sizes: [{ml:30,price:470},{ml:50,price:870},{ml:100,price:1580}], stock: 7, rating: 4.9, top_ar:'زعفران', heart_ar:'ورد، عود', base_ar:'عنبر، صندل', tag_ar:'كلاسيكي', tag_en:'Iconic', year: 2024, origin: 'Assam', concentration: 'Extrait', tone: '#8E3F4A' },
  { id: 'p20', name_ar: 'حرير',        name_en: 'Silk',          family: 'musk',  price: 510, sizes: [{ml:30,price:270},{ml:50,price:510},{ml:100,price:910}], stock: 20, rating: 4.6, top_ar:'كمثرى', heart_ar:'إيريس، حرير', base_ar:'مسك، صندل', year: 2025, origin: 'Varanasi', concentration: 'EDP', tone: '#CFC1A8' },
  { id: 'p21', name_ar: 'عود نهاري',   name_en: 'Day Oud',       family: 'oud',   price: 590, sizes: [{ml:30,price:310},{ml:50,price:590},{ml:100,price:1060}], stock: 16, rating: 4.5, top_ar:'حمضيات هندية', heart_ar:'عود خفيف', base_ar:'صندل، مسك', year: 2024, origin: 'Assam', concentration: 'EDP', tone: '#5B4530' },
  { id: 'p22', name_ar: 'بنزوين',       name_en: 'Benzoin',       family: 'amber', price: 440, sizes: [{ml:30,price:230},{ml:50,price:440},{ml:100,price:790}], stock: 28, rating: 4.4, top_ar:'كزبرة، يوسفي', heart_ar:'بنزوين، توليب', base_ar:'فانيليا، عنبر', year: 2024, origin: 'Rajasthan', concentration: 'EDP', tone: '#C28858' },
];

const ATTARS = [
  { id: 'a1', name_ar: 'غلام نبي', name_en: 'Ghulam Nabi', city_ar: 'ميسور', city_en: 'Mysore', since: 1971, family: 'woody',
    craft_ar: 'تقطير الصندل النقي', craft_en: 'Pure sandalwood distillation', signature: 'صندل قديم',
    bio_ar: 'الجيل الرابع من بيت صندل في ميسور. يقطّر خشب الصندل على نار هادئة لأربعين يوماً، تماماً كما علّمه جدّه.',
    bio_en: 'Fourth-generation sandal house in Mysore. Distils sandalwood over a slow flame for forty days — exactly as his grandfather taught him.',
    quote_ar: 'الصبر هو النوتة الأولى في كل عطر.', quote_en: 'Patience is the first note in every scent.', tone: '#6B7050' },
  { id: 'a2', name_ar: 'رشيدة بيغوم', name_en: 'Rashida Begum', city_ar: 'لكنو', city_en: 'Lucknow', since: 1988, family: 'flora',
    craft_ar: 'عطور الزهور بطريقة الديغ', craft_en: 'Floral deg-bhapka attars', signature: 'فل وموغرا',
    bio_ar: 'تلتقط رائحة الفل عند الفجر، حين تكون البتلات في ذروتها، وتحبسها في زيت الصندل بطريقة الديغ التقليدية.',
    bio_en: 'Captures mogra at dawn, when the petals peak, sealing it into sandal oil through the traditional deg-bhapka method.',
    quote_ar: 'الزهرة تعطيك سرّها مرّة واحدة في اليوم.', quote_en: 'A flower gives its secret once a day.', tone: '#9B8FB5' },
  { id: 'a3', name_ar: 'إقبال أحمد', name_en: 'Iqbal Ahmed', city_ar: 'آسام', city_en: 'Assam', since: 1979, family: 'oud',
    craft_ar: 'عود معتّق', craft_en: 'Aged agarwood', signature: 'عود كامبودي',
    bio_ar: 'يختار أشجار العود من غابات آسام ويترك الخشب يعتّق سنوات قبل التقطير، حتى يصل العمق المطلوب.',
    bio_en: 'Selects agarwood from the forests of Assam and ages the wood for years before distilling, until the required depth arrives.',
    quote_ar: 'العود لا يُستعجل — يُنتظر.', quote_en: 'Oud is not rushed — it is awaited.', tone: '#2E1F18' },
  { id: 'a4', name_ar: 'مهتاب كور', name_en: 'Mehtab Kaur', city_ar: 'كشمير', city_en: 'Kashmir', since: 1994, family: 'spice',
    craft_ar: 'الزعفران والورد', craft_en: 'Saffron & rose', signature: 'زعفران',
    bio_ar: 'من حقول الزعفران في بامبور، تجمع الخيوط يدوياً وتزاوجها مع ورد كشمير لتخلق دفئاً نادراً.',
    bio_en: 'From the saffron fields of Pampore, she hand-gathers the threads and weds them to Kashmiri rose for a rare warmth.',
    quote_ar: 'كل خيط زعفران هو غروب مُجمّع.', quote_en: 'Each saffron thread is a gathered sunset.', tone: '#A65A2A' },
];

const ORDERS = [
  { id: 'IST-2826', customer: 'فاطمة العامري', email: 'fatma@…', total: 1430, items: 2, date: '2026-05-18', status: 'pending',   city: 'دبي'    },
  { id: 'IST-2825', customer: 'محمد القحطاني', email: 'm.qaht@…', total: 720,  items: 1, date: '2026-05-18', status: 'shipped',   city: 'أبوظبي' },
  { id: 'IST-2824', customer: 'سارة المنصوري', email: 'sara@…',  total: 2110, items: 3, date: '2026-05-17', status: 'delivered', city: 'الشارقة'},
  { id: 'IST-2823', customer: 'أحمد الزعابي',  email: 'a.ze@…',  total: 540,  items: 1, date: '2026-05-17', status: 'shipped',   city: 'دبي'    },
  { id: 'IST-2822', customer: 'نورة الكعبي',   email: 'noura@…', total: 1820, items: 2, date: '2026-05-16', status: 'delivered', city: 'العين'  },
  { id: 'IST-2821', customer: 'خالد الشحي',    email: 'k.sh@…',  total: 460,  items: 1, date: '2026-05-16', status: 'cancelled', city: 'دبي'    },
  { id: 'IST-2820', customer: 'مريم الفلاسي',  email: 'maryam@…',total: 1340, items: 1, date: '2026-05-15', status: 'delivered', city: 'دبي'    },
  { id: 'IST-2819', customer: 'عبدالله الرئيسي', email: 'a.ra@…', total: 980,  items: 2, date: '2026-05-15', status: 'delivered', city: 'الفجيرة'},
  { id: 'IST-2818', customer: 'هند البلوشي',   email: 'hind@…',  total: 380,  items: 1, date: '2026-05-14', status: 'delivered', city: 'دبي'    },
  { id: 'IST-2817', customer: 'سيف النعيمي',   email: 'saif@…',  total: 1690, items: 3, date: '2026-05-14', status: 'delivered', city: 'عجمان'  },
];

const CUSTOMERS = [
  { id: 'u1',  name: 'فاطمة العامري', email: 'fatma@example.ae',  orders: 12, spent: 8420, tier: 'VIP'     },
  { id: 'u2',  name: 'محمد القحطاني', email: 'm.qaht@example.ae', orders: 6,  spent: 3210, tier: 'Member'  },
  { id: 'u3',  name: 'سارة المنصوري', email: 'sara@example.ae',   orders: 9,  spent: 5870, tier: 'VIP'     },
  { id: 'u4',  name: 'أحمد الزعابي',  email: 'a.ze@example.ae',   orders: 3,  spent: 1240, tier: 'Member'  },
  { id: 'u5',  name: 'نورة الكعبي',   email: 'noura@example.ae',  orders: 14, spent: 9810, tier: 'VIP'     },
  { id: 'u6',  name: 'خالد الشحي',    email: 'k.sh@example.ae',   orders: 2,  spent: 720,  tier: 'New'     },
  { id: 'u7',  name: 'مريم الفلاسي',  email: 'maryam@example.ae', orders: 5,  spent: 2840, tier: 'Member'  },
  { id: 'u8',  name: 'عبدالله الرئيسي', email: 'a.ra@example.ae', orders: 4,  spent: 1980, tier: 'Member'  },
];

// 14-day revenue series for the admin stats chart
const REVENUE_SERIES = [4200, 3850, 5120, 4790, 6230, 5840, 7120, 6580, 5910, 7480, 8120, 7240, 9180, 8640];
const FAMILY_SPLIT = [
  { id: 'oud',   pct: 28 },
  { id: 'rose',  pct: 18 },
  { id: 'amber', pct: 14 },
  { id: 'woody', pct: 13 },
  { id: 'spice', pct: 11 },
  { id: 'flora', pct: 9  },
  { id: 'musk',  pct: 7  },
];

// ── Financial data ────────────────────────────────────────

// 30-day series
const FINANCE_30D = {
  revenue:  [4200, 3850, 5120, 4790, 6230, 5840, 7120, 6580, 5910, 7480, 8120, 7240, 9180, 8640, 7320, 6890, 8410, 9120, 7840, 8260, 9610, 10240, 8820, 9340, 11120, 10560, 9840, 11430, 12180, 11520],
  expenses: [1840, 1620, 2210, 1980, 2640, 2120, 3140, 2730, 2410, 3180, 3520, 2940, 3820, 3280, 2810, 2640, 3120, 3680, 2940, 3210, 3720, 4120, 3380, 3540, 4280, 4020, 3760, 4310, 4640, 4380],
};

// expense categories (current month)
const EXPENSE_CATEGORIES = [
  { id: 'inventory', ar: 'مخزون وعطور خام',  en: 'Inventory & raw materials', pct: 42, color: '#C97B5E' },
  { id: 'shipping',  ar: 'شحن وتوصيل',       en: 'Shipping & logistics',      pct: 18, color: '#6B7050' },
  { id: 'salaries',  ar: 'رواتب',              en: 'Salaries',                  pct: 16, color: '#8C4A2B' },
  { id: 'rent',      ar: 'إيجار وفواتير',     en: 'Rent & utilities',          pct: 10, color: '#9B8FB5' },
  { id: 'marketing', ar: 'تسويق',              en: 'Marketing',                 pct: 8,  color: '#B59060' },
  { id: 'misc',      ar: 'متفرقات',            en: 'Other',                     pct: 6,  color: '#5C5240' },
];

// recent transactions (mix of sales income + expense entries)
const TRANSACTIONS = [
  { id: 'TX-9821', date: '2026-05-18', type: 'sale',    desc_ar: 'طلب IST-2826 · فاطمة العامري', desc_en: 'Order IST-2826 · F. Alameri',  amount: 1430, method: 'card',   ref: 'IST-2826', status: 'completed' },
  { id: 'TX-9820', date: '2026-05-18', type: 'expense', desc_ar: 'فاتورة شحن أرامكس · مايو',     desc_en: 'Aramex shipping · May',         amount: -840,  method: 'bank',   ref: 'INV-S-051', status: 'completed', cat: 'shipping' },
  { id: 'TX-9819', date: '2026-05-18', type: 'sale',    desc_ar: 'طلب IST-2825 · محمد القحطاني', desc_en: 'Order IST-2825 · M. Qahtani',   amount: 720,  method: 'apple',  ref: 'IST-2825', status: 'completed' },
  { id: 'TX-9818', date: '2026-05-17', type: 'sale',    desc_ar: 'طلب IST-2824 · سارة المنصوري', desc_en: 'Order IST-2824 · S. Mansoori',  amount: 2110, method: 'card',   ref: 'IST-2824', status: 'completed' },
  { id: 'TX-9817', date: '2026-05-17', type: 'expense', desc_ar: 'استيراد عود من آسام',         desc_en: 'Oud import from Assam',         amount: -8420, method: 'bank',   ref: 'PO-2026-118', status: 'completed', cat: 'inventory' },
  { id: 'TX-9816', date: '2026-05-17', type: 'sale',    desc_ar: 'طلب IST-2823 · أحمد الزعابي',  desc_en: 'Order IST-2823 · A. Zaabi',     amount: 540,  method: 'mada',   ref: 'IST-2823', status: 'completed' },
  { id: 'TX-9815', date: '2026-05-16', type: 'sale',    desc_ar: 'طلب IST-2822 · نورة الكعبي',   desc_en: 'Order IST-2822 · N. Kaabi',     amount: 1820, method: 'card',   ref: 'IST-2822', status: 'completed' },
  { id: 'TX-9814', date: '2026-05-16', type: 'expense', desc_ar: 'حملة إعلانية · إنستغرام',     desc_en: 'Ad campaign · Instagram',       amount: -1200, method: 'card',   ref: 'AD-IG-0516', status: 'completed', cat: 'marketing' },
  { id: 'TX-9813', date: '2026-05-16', type: 'refund',  desc_ar: 'استرداد · طلب IST-2821',       desc_en: 'Refund · IST-2821',             amount: -460,  method: 'card',   ref: 'RF-2821', status: 'completed' },
  { id: 'TX-9812', date: '2026-05-15', type: 'sale',    desc_ar: 'طلب IST-2820 · مريم الفلاسي',  desc_en: 'Order IST-2820 · M. Falasi',    amount: 1340, method: 'card',   ref: 'IST-2820', status: 'completed' },
  { id: 'TX-9811', date: '2026-05-15', type: 'expense', desc_ar: 'إيجار محل · مايو',             desc_en: 'Boutique rent · May',           amount: -4800, method: 'bank',   ref: 'RENT-05',  status: 'completed', cat: 'rent' },
  { id: 'TX-9810', date: '2026-05-15', type: 'sale',    desc_ar: 'طلب IST-2819 · عبدالله الرئيسي', desc_en: 'Order IST-2819 · A. Raeesi',  amount: 980,  method: 'apple',  ref: 'IST-2819', status: 'completed' },
  { id: 'TX-9809', date: '2026-05-14', type: 'expense', desc_ar: 'رواتب فريق المتجر · مايو',     desc_en: 'Staff salaries · May',          amount: -7200, method: 'bank',   ref: 'PAY-05',   status: 'completed', cat: 'salaries' },
  { id: 'TX-9808', date: '2026-05-14', type: 'sale',    desc_ar: 'طلب IST-2818 · هند البلوشي',   desc_en: 'Order IST-2818 · H. Balushi',   amount: 380,  method: 'mada',   ref: 'IST-2818', status: 'completed' },
  { id: 'TX-9807', date: '2026-05-14', type: 'sale',    desc_ar: 'طلب IST-2817 · سيف النعيمي',   desc_en: 'Order IST-2817 · S. Naimi',     amount: 1690, method: 'card',   ref: 'IST-2817', status: 'completed' },
  { id: 'TX-9806', date: '2026-05-13', type: 'expense', desc_ar: 'زجاجات وعلب · مورد دبي',      desc_en: 'Bottles & boxes · Dubai',       amount: -1640, method: 'bank',   ref: 'PO-118',   status: 'pending',   cat: 'inventory' },
  { id: 'TX-9805', date: '2026-05-13', type: 'sale',    desc_ar: 'طلب IST-2816 · ميساء الحوسني', desc_en: 'Order IST-2816 · M. Hosani',    amount: 870,  method: 'card',   ref: 'IST-2816', status: 'completed' },
  { id: 'TX-9804', date: '2026-05-12', type: 'expense', desc_ar: 'كهرباء وإنترنت · مايو',        desc_en: 'Utilities · May',               amount: -620,  method: 'bank',   ref: 'UTIL-05',  status: 'completed', cat: 'rent' },
];

// invoices issued (B2B / wholesale clients)
const INVOICES = [
  { id: 'INV-2026-041', date: '2026-05-15', due: '2026-06-14', client: 'بوتيك ريم · أبوظبي',    client_en: 'Boutique Reem · AD',  items: 18, subtotal: 12400, vat: 620, total: 13020, status: 'paid'    },
  { id: 'INV-2026-040', date: '2026-05-12', due: '2026-06-11', client: 'فندق برج العرب · سبا',  client_en: 'Burj Al Arab Spa',    items: 12, subtotal: 9800,  vat: 490, total: 10290, status: 'sent'    },
  { id: 'INV-2026-039', date: '2026-05-10', due: '2026-06-09', client: 'أمازون السعودية',       client_en: 'Amazon KSA',          items: 64, subtotal: 38400, vat: 1920,total: 40320, status: 'paid'    },
  { id: 'INV-2026-038', date: '2026-05-08', due: '2026-06-07', client: 'متجر النيكاب · الرياض', client_en: 'Niqab Store · Riyadh',items: 22, subtotal: 14600, vat: 730, total: 15330, status: 'overdue' },
  { id: 'INV-2026-037', date: '2026-05-04', due: '2026-06-03', client: 'بوتيك بلومينغديلز',     client_en: 'Bloomingdale\'s ME',  items: 30, subtotal: 19800, vat: 990, total: 20790, status: 'paid'    },
  { id: 'INV-2026-036', date: '2026-05-02', due: '2026-06-01', client: 'دفتر هدايا · الكويت',   client_en: 'Gift Studio · KW',    items: 14, subtotal: 8420,  vat: 421, total: 8841,  status: 'sent'    },
];

// month-by-month P&L for last 6 months
const PNL_MONTHLY = [
  { m_ar: 'ديسمبر', m_en: 'Dec',  rev: 162400, exp: 89200,  net: 73200 },
  { m_ar: 'يناير',  m_en: 'Jan',  rev: 174800, exp: 94600,  net: 80200 },
  { m_ar: 'فبراير', m_en: 'Feb',  rev: 158200, exp: 86400,  net: 71800 },
  { m_ar: 'مارس',   m_en: 'Mar',  rev: 198400, exp: 102800, net: 95600 },
  { m_ar: 'أبريل',  m_en: 'Apr',  rev: 224600, exp: 118200, net: 106400 },
  { m_ar: 'مايو',   m_en: 'May',  rev: 248200, exp: 124800, net: 123400 },
];

// payment methods breakdown (current month)
const PAYMENT_SPLIT = [
  { id: 'card',   ar: 'بطاقة ائتمان', en: 'Credit card', pct: 48, color: '#2A1F18' },
  { id: 'apple',  ar: 'Apple Pay',     en: 'Apple Pay',   pct: 22, color: '#6B7050' },
  { id: 'mada',   ar: 'مدى',           en: 'Mada',        pct: 16, color: '#C97B5E' },
  { id: 'bank',   ar: 'حوالة بنكية',   en: 'Bank',        pct: 9,  color: '#8C4A2B' },
  { id: 'cash',   ar: 'نقداً',          en: 'Cash',        pct: 5,  color: '#9B8FB5' },
];

Object.assign(window, {
  SCENT_FAMILIES, PRODUCTS, ATTARS, ORDERS, CUSTOMERS,
  REVENUE_SERIES, FAMILY_SPLIT,
  FINANCE_30D, EXPENSE_CATEGORIES, TRANSACTIONS, INVOICES, PNL_MONTHLY, PAYMENT_SPLIT
});
