const BASE = 'http://127.0.0.1:8000'; // ---------------- USER ---------------- export const getItems = () => fetch(`${BASE}/user/items`).then(r => r.json()); export const spinWheel = () => fetch(`${BASE}/user/spin`, { method: 'POST' }).then(async (r) => { if (!r.ok) throw new Error('Spin failed'); return r.json(); }); // ---------------- ADMIN ---------------- export const adminGetItems = () => fetch(`${BASE}/admin/items`).then(r => r.json()); export const createItem = (data) => fetch(`${BASE}/admin/items`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ title: data.title, prize: data.prize, prize_type: data.prize_type, description: data.description, probability: data.probability }) }).then(r => r.json()); export const updateItem = (id, data) => fetch(`${BASE}/admin/items/${id}`, { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ title: data.title, prize: data.prize, prize_type: data.prize_type, description: data.description, probability: data.probability }) }).then(r => r.json()); export const deleteItem = (id) => fetch(`${BASE}/admin/items/${id}`, { method: 'DELETE' }).then(async (r) => { if (!r.ok && r.status !== 204) throw new Error('Delete failed'); return {}; }); // ---------------- رنگ پس‌زمینه ---------------- export const getBgColor = () => localStorage.getItem('wheelBgColor') || '#7B241C'; export const saveBgColor = (color) => { localStorage.setItem('wheelBgColor', color); window.dispatchEvent(new StorageEvent('storage', { key: 'wheelBgColor', newValue: color })); }; // ---------------- عنوان صفحه گردونه ---------------- export const getTitleSettings = () => { const saved = localStorage.getItem('wheelTitleSettings'); return saved ? JSON.parse(saved) : { text: 'گردونه شانس', color: '#FFD700' }; }; export const saveTitleSettings = (text, color) => { const settings = { text, color }; localStorage.setItem('wheelTitleSettings', JSON.stringify(settings)); window.dispatchEvent(new StorageEvent('storage', { key: 'wheelTitleSettings', newValue: JSON.stringify(settings) })); };