(async () => { const base = 'https://xnbpklxsihmimfcvyoqp.supabase.co/rest/v1'; const key = 'sb_publishable_BEkV8W7J37srrg1oTF9TgA_94vBAQBW'; const headers = { apikey: key, Authorization: `Bearer ${key}` }; const get = table => fetch(`${base}/${table}?select=*`, { headers }).then(r => { if (!r.ok) throw new Error(`${table}: ${r.status}`); return r.json(); }); if (sessionStorage.getItem('supabase-sync-done') === '1') return; if (sessionStorage.getItem('supabase-sync-running') === '1') return; sessionStorage.setItem('supabase-sync-running', '1'); try { const [products, categories, settingsRows, vitrineRows] = await Promise.all([ get('products'), get('categories'), get('store_settings'), get('store_vitrine') ]); const settings = settingsRows[0] || {}; const remote = { products: products.map(p => ({ ...p, images: p.images || [], colors: p.colors || [] })), categories: categories.map(c => ({ name: c.name, active: c.active })), vitrine: (vitrineRows[0] && vitrineRows[0].product_ids) || [], settings: { name: settings.name || '', phone: settings.phone || '', email: settings.email || '', instagram: settings.instagram || '', location: settings.location || '', hours: settings.hours || '', heroTitle: settings.hero_title || '', heroText: settings.hero_text || '', about: settings.about || '', message: settings.message || '', aboutImage: settings.about_image || '' } }; localStorage.setItem('lar-modelo-v1', JSON.stringify(remote)); sessionStorage.removeItem('supabase-sync-running'); sessionStorage.setItem('supabase-sync-done', '1'); if (location.search.includes('supabase=1')) { history.replaceState(null, '', location.pathname + location.hash); location.reload(); } } catch (error) { console.warn('Supabase indisponível; usando cache local.', error); sessionStorage.removeItem('supabase-sync-running'); } })();