Refactor submission items

This commit is contained in:
gpt-engineer-app[bot]
2025-11-03 03:55:38 +00:00
parent f034ece3a2
commit db8029f573
4 changed files with 147 additions and 16 deletions

View File

@@ -465,20 +465,48 @@ export async function submitParkCreation(
if (submissionError) throw submissionError;
// Create the submission item with actual park data
// Extract images for assignment
const changedFields = extractChangedFields(data, {});
// Insert into relational park_submissions table
const { data: parkSubmission, error: parkSubmissionError } = await supabase
.from('park_submissions' as any)
.insert({
submission_id: submissionData.id,
name: data.name,
slug: data.slug,
description: data.description || null,
park_type: data.park_type,
status: data.status,
opening_date: data.opening_date ? new Date(data.opening_date).toISOString().split('T')[0] : null,
closing_date: data.closing_date ? new Date(data.closing_date).toISOString().split('T')[0] : null,
website_url: data.website_url || null,
phone: data.phone || null,
email: data.email || null,
operator_id: data.operator_id || null,
property_owner_id: data.property_owner_id || null,
location_id: data.location_id || null,
banner_image_url: changedFields.banner_image_url as string || null,
banner_image_id: changedFields.banner_image_id as string || null,
card_image_url: changedFields.card_image_url as string || null,
card_image_id: changedFields.card_image_id as string || null
} as any)
.select('id')
.single();
if (parkSubmissionError) throw parkSubmissionError;
// Create submission_items record linking to park_submissions
const { error: itemError } = await supabase
.from('submission_items')
.insert({
submission_id: submissionData.id,
item_type: 'park',
action_type: 'create',
item_data: {
...extractChangedFields(data, {}),
images: processedImages as unknown as Json
},
item_data_id: (parkSubmission as any).id,
status: 'pending' as const,
order_index: 0
});
} as any);
if (itemError) throw itemError;
@@ -748,20 +776,61 @@ export async function submitRideCreation(
if (submissionError) throw submissionError;
// Create the submission item with actual ride data
// Extract images for assignment
const changedFields = extractChangedFields(data, {});
// Insert into relational ride_submissions table
const { data: rideSubmission, error: rideSubmissionError } = await supabase
.from('ride_submissions' as any)
.insert({
submission_id: submissionData.id,
park_id: data.park_id || null,
name: data.name,
slug: data.slug,
description: data.description || null,
category: data.category,
ride_sub_type: data.ride_sub_type || null,
status: data.status,
opening_date: data.opening_date ? new Date(data.opening_date).toISOString().split('T')[0] : null,
closing_date: data.closing_date ? new Date(data.closing_date).toISOString().split('T')[0] : null,
manufacturer_id: data.manufacturer_id || null,
designer_id: data.designer_id || null,
ride_model_id: data.ride_model_id || null,
height_requirement: data.height_requirement || null,
age_requirement: data.age_requirement || null,
capacity_per_hour: data.capacity_per_hour || null,
duration_seconds: data.duration_seconds || null,
max_speed_kmh: data.max_speed_kmh || null,
max_height_meters: data.max_height_meters || null,
length_meters: data.length_meters || null,
drop_height_meters: data.drop_height_meters || null,
inversions: data.inversions || 0,
max_g_force: data.max_g_force || null,
coaster_type: data.coaster_type || null,
seating_type: data.seating_type || null,
intensity_level: data.intensity_level || null,
banner_image_url: changedFields.banner_image_url as string || null,
banner_image_id: changedFields.banner_image_id as string || null,
card_image_url: changedFields.card_image_url as string || null,
card_image_id: changedFields.card_image_id as string || null,
image_url: null
} as any)
.select('id')
.single();
if (rideSubmissionError) throw rideSubmissionError;
// Create submission_items record linking to ride_submissions
const { error: itemError } = await supabase
.from('submission_items')
.insert({
submission_id: submissionData.id,
item_type: 'ride',
action_type: 'create',
item_data: {
...extractChangedFields(data, {}),
images: processedImages as unknown as Json
},
item_data_id: (rideSubmission as any).id,
status: 'pending' as const,
order_index: 0
});
} as any);
if (itemError) throw itemError;