لوحة تحكم برجرز وبايت

محمية بالإيميل + Supabase Auth + RLS
`); w.document.close();} function notifyNewOrders(orders){const incoming=orders.filter(o=>!knownOrderIds.has(o.id)); orders.forEach(o=>knownOrderIds.add(o.id)); if(Notification.permission==='granted') incoming.forEach(o=>new Notification('طلب جديد',{body:`${o.customer_name||'عميل'} - ${o.total_price||0} ريال`}));} function requestBrowserNotifications(){if(!('Notification' in window)){alert('المتصفح لا يدعم الإشعارات'); return;} Notification.requestPermission().then(p=>alert(p==='granted'?'تم تفعيل الإشعارات':'لم يتم تفعيل الإشعارات'));} async function loadOrders(){ordersList.innerHTML='جاري تحميل الطلبات...'; const {data,error}=await sb.from('orders').select('*').order('created_at',{ascending:false}); if(error){ordersList.innerHTML='جدول orders غير موجود بعد'; statOrders.textContent=0; statNew.textContent=0; statSales.textContent=0; return;} const orders=data||[]; statOrders.textContent=orders.length; statNew.textContent=orders.filter(x=>(x.status||'new')==='new').length; statSales.textContent=orders.reduce((s,x)=>s+Number(x.total_price||0),0); notifyNewOrders(orders); if(!orders.length){ordersList.innerHTML='لا توجد طلبات'; return;} ordersList.innerHTML=orders.map(order=>`
${order.customer_name||'عميل بدون اسم'}
${order.customer_phone||''}
${money(order.total_price)}
الحالة: ${order.status||'new'}
النوع: ${order.order_type||'-'}
العنوان: ${order.address||'-'}
`).join('');} async function loadSettings(){const {data,error}=await sb.from('site_settings').select('*').eq('id',1).maybeSingle(); if(error||!data){socialWhatsapp.value='https://wa.me/966556968943'; socialInstagram.value='https://instagram.com/Bubite11'; socialSnapchat.value='https://snapchat.com/t/UtKj5ojI'; socialTiktok.value='https://tiktok.com/@Bubite11'; socialMap.value='https://maps.app.goo.gl/6NZJ672pm19gGfPBA?g_st=iw'; return;} socialWhatsapp.value=data.whatsapp||''; socialInstagram.value=data.instagram||''; socialSnapchat.value=data.snapchat||''; socialTiktok.value=data.tiktok||''; socialMap.value=data.map||''; paymentUrl.value=data.payment_url||'';} async function saveSettings(){const payload={id:1,whatsapp:socialWhatsapp.value.trim()||null,instagram:socialInstagram.value.trim()||null,snapchat:socialSnapchat.value.trim()||null,tiktok:socialTiktok.value.trim()||null,map:socialMap.value.trim()||null,payment_url:paymentUrl.value.trim()||null}; const {error}=await sb.from('site_settings').upsert(payload); if(error){showNotice('settingsNotice','شغّل setup.sql أولاً','error'); console.error(error); return;} showNotice('settingsNotice','تم حفظ الإعدادات بنجاح','info');} async function init(){const ok=await requireAdmin(); if(!ok) return; await loadSettings(); await loadProducts(); await loadOrders(); setInterval(loadOrders,20000);} init();