Files
thrilltrack-explorer/supabase/migrations/20251104224155_ec339539-846f-4154-ac33-bda0b4b4cd25.sql
2025-11-04 22:42:14 +00:00

63 lines
1.9 KiB
PL/PgSQL

-- 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;
$$;