// Simple frontend API helper with graceful fallbacks when the backend is unavailable (useful during frontend-only development) const DEFAULT_BIKES = [1000,2000,3000,4000,5000] export async function getBikes() { try { const res = await fetch('/api/bikes') if (!res.ok) throw new Error('Failed to fetch bikes') return res.json() } catch (err) { // Fallback to defaults when backend is not reachable console.warn('getBikes: using fallback bikes because backend is unavailable', err) return { bikes: DEFAULT_BIKES } } } export async function createBooking(payload) { try { const res = await fetch('/api/bookings', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload), }) const data = await res.json() if (!res.ok) throw new Error(data?.error || 'Failed to create booking') return data } catch (err) { // Fallback: simulate a successful booking locally for frontend development console.warn('createBooking: backend unavailable, creating a local mock booking', err) const mock = { booking: { id: Math.floor(Math.random() * 100000) + 100, bike_type: payload.bike_type, start_date: payload.start_date, end_date: payload.end_date, name: payload.name, email: payload.email, created_at: new Date().toISOString(), } } return mock } } export async function listBookings() { try { const res = await fetch('/api/bookings') if (!res.ok) throw new Error('Failed to list bookings') return res.json() } catch (err) { // Fallback: return an empty list or a small mock so Admin page can render console.warn('listBookings: using fallback empty list because backend is unavailable', err) return { bookings: [] } } }