From 87626dd2d8402360233517264057a1519fdd65f5 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Tue, 4 Nov 2025 22:42:14 +0000 Subject: [PATCH] Fix RPC function for composite submissions --- ...5_ec339539-846f-4154-ac33-bda0b4b4cd25.sql | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 supabase/migrations/20251104224155_ec339539-846f-4154-ac33-bda0b4b4cd25.sql diff --git a/supabase/migrations/20251104224155_ec339539-846f-4154-ac33-bda0b4b4cd25.sql b/supabase/migrations/20251104224155_ec339539-846f-4154-ac33-bda0b4b4cd25.sql new file mode 100644 index 00000000..5115be92 --- /dev/null +++ b/supabase/migrations/20251104224155_ec339539-846f-4154-ac33-bda0b4b4cd25.sql @@ -0,0 +1,63 @@ +-- Fix create_submission_with_items to remove non-existent 'content' column +-- The content column was removed during architectural cleanup but the RPC wasn't updated + +CREATE OR REPLACE FUNCTION public.create_submission_with_items( + p_user_id uuid, + p_submission_type text, + p_content jsonb, -- Keep parameter for backward compatibility, but don't use it + p_items jsonb[] +) +RETURNS uuid +LANGUAGE plpgsql +SECURITY DEFINER +SET search_path TO 'public' +AS $$ +DECLARE + v_submission_id UUID; + v_item JSONB; +BEGIN + -- Insert submission WITHOUT content column (column no longer exists) + INSERT INTO content_submissions (user_id, submission_type, status, approval_mode) + VALUES (p_user_id, p_submission_type, 'pending', 'full') + RETURNING id INTO v_submission_id; + + -- Validate we have at least one item + IF array_length(p_items, 1) IS NULL OR array_length(p_items, 1) = 0 THEN + RAISE EXCEPTION 'Cannot create submission without items'; + END IF; + + -- Insert all items atomically (fails entire transaction if any fail) + FOREACH v_item IN ARRAY p_items + LOOP + INSERT INTO submission_items ( + submission_id, + item_type, + action_type, + park_submission_id, + ride_submission_id, + company_submission_id, + photo_submission_id, + ride_model_submission_id, + timeline_event_submission_id, + status, + order_index, + depends_on + ) VALUES ( + v_submission_id, + (v_item->>'item_type')::TEXT, + (v_item->>'action_type')::TEXT, + (v_item->>'park_submission_id')::UUID, + (v_item->>'ride_submission_id')::UUID, + (v_item->>'company_submission_id')::UUID, + (v_item->>'photo_submission_id')::UUID, + (v_item->>'ride_model_submission_id')::UUID, + (v_item->>'timeline_event_submission_id')::UUID, + 'pending', + COALESCE((v_item->>'order_index')::INTEGER, 0), + (v_item->>'depends_on')::UUID + ); + END LOOP; + + RETURN v_submission_id; +END; +$$; \ No newline at end of file