diff --git a/apps/web/app/(admin)/settings/page.tsx b/apps/web/app/(admin)/settings/page.tsx index 807b6da..14bd7c8 100644 --- a/apps/web/app/(admin)/settings/page.tsx +++ b/apps/web/app/(admin)/settings/page.tsx @@ -103,7 +103,12 @@ export default function SettingsPage() { const res = await fetch("/api/courts"); if (res.ok) { const data = await res.json(); - setCourts(data.data || []); + // Courts API returns array directly, map pricePerHour to hourlyRate for frontend + const courtsArray = Array.isArray(data) ? data : data.data || []; + setCourts(courtsArray.map((c: Record) => ({ + ...c, + hourlyRate: c.pricePerHour ?? c.hourlyRate, + }))); } } catch (error) { console.error("Error fetching courts:", error); @@ -494,14 +499,14 @@ export default function SettingsPage() { - {court.status === "active" ? "Active" : court.status === "maintenance" ? "Maintenance" : "Inactive"} + {["active", "AVAILABLE"].includes(court.status) ? "Active" : ["maintenance", "MAINTENANCE"].includes(court.status) ? "Maintenance" : "Inactive"} @@ -726,10 +731,11 @@ function CourtFormModal({ siteId, type, hourlyRate: parseFloat(hourlyRate), + pricePerHour: parseFloat(hourlyRate), peakHourlyRate: peakHourlyRate ? parseFloat(peakHourlyRate) : null, status, isOpenPlay, - }); + } as Partial & { pricePerHour?: number }); }; return (