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')