diff --git a/supabase/functions/process-selective-approval/index.ts b/supabase/functions/process-selective-approval/index.ts index ae0d7790..c08d59c0 100644 --- a/supabase/functions/process-selective-approval/index.ts +++ b/supabase/functions/process-selective-approval/index.ts @@ -197,6 +197,28 @@ function resolveDependencies(data: any, dependencyMap: Map): any } async function createPark(supabase: any, data: any): Promise { + // Transform images object if present + if (data.images) { + const { uploaded, banner_assignment, card_assignment } = data.images; + + if (uploaded && Array.isArray(uploaded)) { + // Assign banner image + if (banner_assignment !== undefined && uploaded[banner_assignment]) { + data.banner_image_id = uploaded[banner_assignment].cloudflare_id; + data.banner_image_url = uploaded[banner_assignment].url; + } + + // Assign card image + if (card_assignment !== undefined && uploaded[card_assignment]) { + data.card_image_id = uploaded[card_assignment].cloudflare_id; + data.card_image_url = uploaded[card_assignment].url; + } + } + + // Remove images object + delete data.images; + } + // Check if this is an edit (has park_id) or a new creation if (data.park_id) { console.log(`Updating existing park ${data.park_id}`); @@ -224,6 +246,28 @@ async function createPark(supabase: any, data: any): Promise { } async function createRide(supabase: any, data: any): Promise { + // Transform images object if present + if (data.images) { + const { uploaded, banner_assignment, card_assignment } = data.images; + + if (uploaded && Array.isArray(uploaded)) { + // Assign banner image + if (banner_assignment !== undefined && uploaded[banner_assignment]) { + data.banner_image_id = uploaded[banner_assignment].cloudflare_id; + data.banner_image_url = uploaded[banner_assignment].url; + } + + // Assign card image + if (card_assignment !== undefined && uploaded[card_assignment]) { + data.card_image_id = uploaded[card_assignment].cloudflare_id; + data.card_image_url = uploaded[card_assignment].url; + } + } + + // Remove images object + delete data.images; + } + // Check if this is an edit (has ride_id) or a new creation if (data.ride_id) { console.log(`Updating existing ride ${data.ride_id}`); @@ -251,6 +295,28 @@ async function createRide(supabase: any, data: any): Promise { } async function createCompany(supabase: any, data: any, companyType: string): Promise { + // Transform images object if present + if (data.images) { + const { uploaded, banner_assignment, card_assignment } = data.images; + + if (uploaded && Array.isArray(uploaded)) { + // Assign banner image + if (banner_assignment !== undefined && uploaded[banner_assignment]) { + data.banner_image_id = uploaded[banner_assignment].cloudflare_id; + data.banner_image_url = uploaded[banner_assignment].url; + } + + // Assign card image + if (card_assignment !== undefined && uploaded[card_assignment]) { + data.card_image_id = uploaded[card_assignment].cloudflare_id; + data.card_image_url = uploaded[card_assignment].url; + } + } + + // Remove images object + delete data.images; + } + // Check if this is an edit (has company_id or id) or a new creation const companyId = data.company_id || data.id;