import type { Listing } from '@/lib/types' const BASE = 'http://localhost:8000/api' type RawListing = Omit & { images: string | null closing_alerts_sent: string | null } export function parseListingResponse(raw: RawListing): Listing { return { ...raw, images: raw.images ? JSON.parse(raw.images) : [], closing_alerts_sent: raw.closing_alerts_sent ? JSON.parse(raw.closing_alerts_sent) : [], } } export async function fetchListings(limit = 100): Promise { const res = await fetch(`${BASE}/listings?limit=${limit}`) if (!res.ok) throw new Error('Failed to fetch listings') const data: RawListing[] = await res.json() return data.map(parseListingResponse) } export async function deleteListing(id: number): Promise { const res = await fetch(`${BASE}/listings/${id}`, { method: 'DELETE' }) if (!res.ok) throw new Error('Failed to delete listing') } export async function deleteAllListings(): Promise { const res = await fetch(`${BASE}/listings`, { method: 'DELETE' }) if (!res.ok) throw new Error('Failed to clear listings') } export async function fetchCountdownSync(): Promise> { const res = await fetch(`${BASE}/listings/countdown-sync`) if (!res.ok) throw new Error('Failed to sync countdown') return res.json() } // Export endpoints — trigger as browser download, not fetch export const getExportUrl = (format: 'csv' | 'json' | 'html') => `${BASE}/export/${format}`