import { Customer } from './customerApi'; export interface Favorite { item_id: number; name: string; status: 'available' | 'reserved' | 'sold'; created_at: string; } async function expectOk(res: Response, action: string): Promise { if (res.ok) return res; const detail = await res.json().catch(() => ({})); throw new Error(detail.error || action); } export async function fetchFavorites(): Promise { const res = await fetch('/api/customers/me/favorites'); // A signed-out visitor legitimately has none; anything else is a real error. if (res.status === 401) return []; await expectOk(res, 'failed to load favorites'); return res.json(); } export async function addFavorite(itemId: number): Promise { await expectOk( await fetch(`/api/customers/me/favorites/${itemId}`, { method: 'POST' }), 'failed to save favorite' ); } export async function removeFavorite(itemId: number): Promise { await expectOk( await fetch(`/api/customers/me/favorites/${itemId}`, { method: 'DELETE' }), 'failed to remove favorite' ); } export async function setFavoriteAlerts(enabled: boolean): Promise { const res = await expectOk( await fetch('/api/customers/me/favorite-alerts', { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ enabled }) }), 'failed to update notification preference' ); return res.json(); }