// ProMTK — Enterprise app data (multi-apartment, subscriptions, notifications)
// Centralized mock store driven by hooks so screens stay in sync.

const pmAppData = {
  user: {
    name: 'Elvin Məmmədov', email: 'elvin.m@example.com', phone: '+994 55 ••• 42 17',
    fin: '6A••••••', verified: true, memberSince: '2021',
  },
  apartments: [
    {
      id: 'apt-1', name: 'Park Residence', block: 'B', unit: '47', floor: 12, area: 94,
      address: 'Nərimanov r., Atatürk pr. 68', role: 'Mülkiyyətçi',
      komendant: { name: 'Eldar Həsənov', phone: '+994 55 123 42 17', avatar: null, online: true },
      manager: { name: 'Nəriman Əliyev', phone: '+994 50 555 11 08' },
      balance: 287.50, dueAt: '30 Apr', status: 'current',
      color: '#7C5CFF',
    },
    {
      id: 'apt-2', name: 'Sea Breeze', block: 'A', unit: '128', floor: 8, area: 72,
      address: 'Xətai r., Nobel pr. 15', role: 'Kirayədar',
      komendant: { name: 'Ramil Əliyev', phone: '+994 55 777 12 03', avatar: null, online: false },
      manager: { name: 'Tural Məmmədov', phone: '+994 50 999 42 10' },
      balance: 142.00, dueAt: '25 Apr', status: 'overdue',
      color: '#06B6D4',
    },
    {
      id: 'apt-3', name: 'White Villas', block: '—', unit: 'V-12', floor: 2, area: 180,
      address: 'Abşeron, Mərdəkan qəs.', role: 'Mülkiyyətçi',
      komendant: { name: 'Anar Hüseynov', phone: '+994 50 222 00 11', avatar: null, online: true },
      manager: { name: 'Kənan Quliyev', phone: '+994 12 888 00 00' },
      balance: 0, dueAt: '—', status: 'paid',
      color: '#10B981',
    },
  ],
  // Utility subscriptions per apartment — Azərbaycan real provider formats
  subscriptions: {
    'apt-1': [
      { id: 's1', type: 'water',    code: '7654321',     provider: 'Azərsu ASC',         balance: 24.80, last: '18 Apr', state: 'due', meter: { prev: 142, curr: 167, unit: 'm³' } },
      { id: 's2', type: 'gas',      code: '8852 1208',   provider: '"Azəriqaz" MMC',     balance: 18.20, last: '17 Apr', state: 'due', meter: { prev: 822, curr: 871, unit: 'm³' } },
      { id: 's3', type: 'power',    code: '224 030 1881',provider: '"Azərişıq" ASC',     balance: 42.00, last: '17 Apr', state: 'due', meter: { prev: 3214, curr: 3380, unit: 'kWh' } },
      { id: 's4', type: 'internet', code: '442 100 408', provider: 'Baktelecom',         balance: 22.00, last: '10 Apr', state: 'paid' },
      { id: 's5', type: 'mtk',      code: 'B-47-0120',   provider: 'Park Residence MTK', balance: 85.00, last: '30 Mar', state: 'due' },
      { id: 's6', type: 'parking',  code: 'B2-P-047',    provider: 'Park Residence',     balance: 30.00, last: '30 Mar', state: 'due' },
    ],
    'apt-2': [
      { id: 's7', type: 'water',    code: '1203 9954',   provider: 'Azərsu ASC',         balance: 38.50, last: '10 Apr', state: 'overdue' },
      { id: 's8', type: 'power',    code: '339 088 1054',provider: '"Azərişıq" ASC',     balance: 54.00, last: '12 Apr', state: 'overdue' },
      { id: 's9', type: 'mtk',      code: 'A-128-0224',  provider: 'Sea Breeze MTK',     balance: 50.00, last: '01 Apr', state: 'due' },
    ],
    'apt-3': [
      { id: 's10', type: 'water',   code: '0812 3344',   provider: 'Azərsu ASC',         balance: 0, last: '20 Apr', state: 'paid' },
      { id: 's11', type: 'power',   code: '012 844 2010',provider: '"Azərişıq" ASC',     balance: 0, last: '20 Apr', state: 'paid' },
    ],
  },
  notifications: [
    { id: 'n1', apt: 'apt-2', kind: 'debt', sev: 'critical', title: 'Gecikmiş borc — Azərişıq', desc: '3 gün gecikir. Avtomatik faiz başlayacaq.', amount: 54.00, date: '21 Apr', unread: true, action: 'pay' },
    { id: 'n2', apt: 'apt-1', kind: 'debt', sev: 'high', title: 'Yaxınlaşan MTK ödənişi', desc: 'Son tarix: 30 Apr · 8 gün qaldı.', amount: 85.00, date: '20 Apr', unread: true, action: 'pay' },
    { id: 'n3', apt: 'apt-1', kind: 'info', sev: 'info', title: 'Yeni qonşu qeydiyyatdan keçdi', desc: 'Aynur Quliyeva 14-cü mərtəbəyə köçdü.', date: '19 Apr', unread: false },
    { id: 'n4', apt: 'apt-1', kind: 'maintenance', sev: 'warn', title: 'Sabah suyun verilməsi dayanacaq', desc: '09:00–15:00 planlı təmir işləri.', date: '19 Apr', unread: true },
    { id: 'n5', apt: 'apt-1', kind: 'komendant', sev: 'info', title: 'Komendant cavab verdi', desc: 'Eldar bəy: “Bu gün özüm 1204-cü ilə danışaram”', date: '18 Apr', unread: false },
    { id: 'n6', apt: 'apt-1', kind: 'guest', sev: 'info', title: 'Qonaq daxil oldu', desc: 'Anar Məmmədov — 18:24 · Əsas giriş', date: '18 Apr', unread: false },
    { id: 'n7', apt: 'apt-3', kind: 'vote', sev: 'info', title: 'Yeni səsvermə başladı', desc: 'Həyət landşaftı üçün səs verin.', date: '17 Apr', unread: false },
    { id: 'n8', apt: 'apt-1', kind: 'debt', sev: 'low', title: 'Qaz sayğac göstəricisi gözlənilir', desc: '5 gün ərzində göstərici daxil edin.', date: '16 Apr', unread: false, amount: 18.20 },
  ],
};

// Config for category visuals
const pmCategoryCfg = {
  water:    { name: 'Su', icon: 'drop', color: '#06B6D4' },
  gas:      { name: 'Qaz', icon: 'flame', color: '#F97316' },
  power:    { name: 'İşıq', icon: 'bolt', color: '#EAB308' },
  internet: { name: 'İnternet', icon: 'wifi', color: '#A855F7' },
  mtk:      { name: 'MTK haqqı', icon: 'building', color: '#7C5CFF' },
  parking:  { name: 'Parkinq', icon: 'car', color: '#10B981' },
  heat:     { name: 'İstilik', icon: 'temperature', color: '#EF4444' },
};

// React context — lets screens read shared state (current apt, theme)
const PMContext = React.createContext(null);
const PMProvider = ({ children }) => {
  const [currentAptId, setCurrentAptId] = React.useState('apt-1');
  const [theme, setTheme] = React.useState(document.documentElement.dataset.theme || 'dark');
  const [notifications, setNotifications] = React.useState(pmAppData.notifications);
  const currentApt = pmAppData.apartments.find(a => a.id === currentAptId);
  const subs = pmAppData.subscriptions[currentAptId] || [];

  const setThemeMode = (m) => {
    pmSetTheme(m);
    setTheme(m);
  };

  const markNotifRead = (id) => setNotifications(n => n.map(x => x.id === id ? {...x, unread: false} : x));

  return (
    <PMContext.Provider value={{
      user: pmAppData.user,
      apartments: pmAppData.apartments,
      currentApt, currentAptId, setCurrentAptId,
      subs, allNotifications: notifications, markNotifRead,
      categoryCfg: pmCategoryCfg,
      theme, setThemeMode,
    }}>{children}</PMContext.Provider>
  );
};
const usePM = () => React.useContext(PMContext);

window.pmAppData = pmAppData;
window.pmCategoryCfg = pmCategoryCfg;
window.PMContext = PMContext;
window.PMProvider = PMProvider;
window.usePM = usePM;
