From a6c687b3674ec4d626210bbd8af9ce2cad7d91bb Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Thu, 6 Nov 2025 04:07:11 +0000 Subject: [PATCH] Fix validation and RPC function --- src/lib/entityValidationSchemas.ts | 58 +++++++++++++++++------------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/src/lib/entityValidationSchemas.ts b/src/lib/entityValidationSchemas.ts index be1ee0a5..a0431f12 100644 --- a/src/lib/entityValidationSchemas.ts +++ b/src/lib/entityValidationSchemas.ts @@ -599,32 +599,42 @@ export async function validateEntityData( // Use switch to avoid TypeScript type instantiation issues let originalSlug: string | null = null; - switch (tableName) { - case 'parks': { - const { data } = await supabase.from('parks').select('slug').eq('id', entityId).single(); - originalSlug = data?.slug || null; - break; + try { + switch (tableName) { + case 'parks': { + const { data } = await supabase.from('parks').select('slug').eq('id', entityId).single(); + originalSlug = data?.slug || null; + break; + } + case 'rides': { + const { data } = await supabase.from('rides').select('slug').eq('id', entityId).single(); + originalSlug = data?.slug || null; + break; + } + case 'companies': { + const { data } = await supabase.from('companies').select('slug').eq('id', entityId).single(); + originalSlug = data?.slug || null; + break; + } + case 'ride_models': { + const { data } = await supabase.from('ride_models').select('slug').eq('id', entityId).single(); + originalSlug = data?.slug || null; + break; + } } - case 'rides': { - const { data } = await supabase.from('rides').select('slug').eq('id', entityId).single(); - originalSlug = data?.slug || null; - break; + + // If slug hasn't changed, skip uniqueness check + if (originalSlug && originalSlug === validData.slug) { + shouldCheckUniqueness = false; } - case 'companies': { - const { data } = await supabase.from('companies').select('slug').eq('id', entityId).single(); - originalSlug = data?.slug || null; - break; - } - case 'ride_models': { - const { data } = await supabase.from('ride_models').select('slug').eq('id', entityId).single(); - originalSlug = data?.slug || null; - break; - } - } - - // If slug hasn't changed, skip uniqueness check - if (originalSlug && originalSlug === validData.slug) { - shouldCheckUniqueness = false; + } catch (error) { + // Entity doesn't exist yet (CREATE action) - proceed with uniqueness check + // This is expected for new submissions where entityId is a submission_id + console.log('Entity not found in live table (likely a new submission)', { + entityType, + entityId, + tableName + }); } }