From 0793793d89103affe622e74af68865028689f2ea Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Thu, 2 Oct 2025 17:24:50 +0000 Subject: [PATCH] Fix: Normalize status in edge function --- .../process-selective-approval/index.ts | 36 ++++++++++++++++--- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/supabase/functions/process-selective-approval/index.ts b/supabase/functions/process-selective-approval/index.ts index 63902224..08ad7b1b 100644 --- a/supabase/functions/process-selective-approval/index.ts +++ b/supabase/functions/process-selective-approval/index.ts @@ -250,6 +250,30 @@ function filterDatabaseFields(data: any, allowedFields: string[]): any { return filtered; } +function normalizeStatusValue(data: any): any { + if (data.status) { + // Map display values to database values + const statusMap: Record = { + 'Operating': 'operating', + 'Seasonal': 'operating', + 'Closed Temporarily': 'maintenance', + 'Closed Permanently': 'closed', + 'Under Construction': 'under_construction', + 'Planned': 'under_construction', + 'SBNO': 'sbno', + // Also handle already-lowercase values + 'operating': 'operating', + 'closed': 'closed', + 'under_construction': 'under_construction', + 'maintenance': 'maintenance', + 'sbno': 'sbno' + }; + + data.status = statusMap[data.status] || 'operating'; + } + return data; +} + async function createPark(supabase: any, data: any): Promise { // Transform images object if present if (data.images) { @@ -279,7 +303,8 @@ async function createPark(supabase: any, data: any): Promise { const parkId = data.park_id; delete data.park_id; // Remove ID from update data - const sanitizedData = sanitizeDateFields(data); + const normalizedData = normalizeStatusValue(data); + const sanitizedData = sanitizeDateFields(normalizedData); const filteredData = filterDatabaseFields(sanitizedData, PARK_FIELDS); const { error } = await supabase .from('parks') @@ -290,7 +315,8 @@ async function createPark(supabase: any, data: any): Promise { return parkId; } else { console.log('Creating new park'); - const sanitizedData = sanitizeDateFields(data); + const normalizedData = normalizeStatusValue(data); + const sanitizedData = sanitizeDateFields(normalizedData); const filteredData = filterDatabaseFields(sanitizedData, PARK_FIELDS); const { data: park, error } = await supabase .from('parks') @@ -332,7 +358,8 @@ async function createRide(supabase: any, data: any): Promise { const rideId = data.ride_id; delete data.ride_id; // Remove ID from update data - const sanitizedData = sanitizeDateFields(data); + const normalizedData = normalizeStatusValue(data); + const sanitizedData = sanitizeDateFields(normalizedData); const filteredData = filterDatabaseFields(sanitizedData, RIDE_FIELDS); const { error } = await supabase .from('rides') @@ -356,7 +383,8 @@ async function createRide(supabase: any, data: any): Promise { return rideId; } else { console.log('Creating new ride'); - const sanitizedData = sanitizeDateFields(data); + const normalizedData = normalizeStatusValue(data); + const sanitizedData = sanitizeDateFields(normalizedData); const filteredData = filterDatabaseFields(sanitizedData, RIDE_FIELDS); const { data: ride, error } = await supabase .from('rides')