Compare commits

..

2 Commits

Author SHA1 Message Date
gpt-engineer-app[bot]
87626dd2d8 Fix RPC function for composite submissions 2025-11-04 22:42:14 +00:00
gpt-engineer-app[bot]
c21301cd37 Fix form button inconsistencies 2025-11-04 22:30:21 +00:00
6 changed files with 68 additions and 11 deletions

View File

@@ -290,7 +290,7 @@ export function DesignerForm({ onSubmit, onCancel, initialData }: DesignerFormPr
loadingText="Saving..."
>
<Save className="w-4 h-4 mr-2" />
Save Designer
{initialData?.id ? 'Update Designer' : 'Create Designer'}
</Button>
</div>
</form>

View File

@@ -300,7 +300,7 @@ export function ManufacturerForm({ onSubmit, onCancel, initialData }: Manufactur
loadingText="Saving..."
>
<Save className="w-4 h-4 mr-2" />
Save Manufacturer
{initialData?.id ? 'Update Manufacturer' : 'Create Manufacturer'}
</Button>
</div>
</form>

View File

@@ -290,7 +290,7 @@ export function OperatorForm({ onSubmit, onCancel, initialData }: OperatorFormPr
loadingText="Saving..."
>
<Save className="w-4 h-4 mr-2" />
Save Operator
{initialData?.id ? 'Update Operator' : 'Create Operator'}
</Button>
</div>
</form>

View File

@@ -647,17 +647,11 @@ export function ParkForm({ onSubmit, onCancel, initialData, isEditing = false }:
<Button
type="submit"
className="flex-1"
>
<Save className="w-4 h-4 mr-2" />
{isEditing ? 'Update Park' : 'Create Park'}
</Button>
<Button
type="submit"
loading={isSubmitting}
loadingText="Saving..."
>
<Save className="w-4 h-4 mr-2" />
Save Park
{isEditing ? 'Update Park' : 'Create Park'}
</Button>
{onCancel && (

View File

@@ -290,7 +290,7 @@ export function PropertyOwnerForm({ onSubmit, onCancel, initialData }: PropertyO
loadingText="Saving..."
>
<Save className="w-4 h-4 mr-2" />
Save Property Owner
{initialData?.id ? 'Update Property Owner' : 'Create Property Owner'}
</Button>
</div>
</form>

View File

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