mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-23 21:51:17 -05:00
Fix submission_items foreign keys
This commit is contained in:
@@ -90,9 +90,9 @@ export const EntityEditPreview = ({ submissionId, entityType, entityName }: Enti
|
||||
.from('submission_items')
|
||||
.select(`
|
||||
*,
|
||||
park_submission:park_submissions!item_data_id(*),
|
||||
ride_submission:ride_submissions!item_data_id(*),
|
||||
photo_submission:photo_submissions!item_data_id(
|
||||
park_submission:park_submissions!park_submission_id(*),
|
||||
ride_submission:ride_submissions!ride_submission_id(*),
|
||||
photo_submission:photo_submissions!photo_submission_id(
|
||||
*,
|
||||
photo_items:photo_submission_items(*)
|
||||
)
|
||||
|
||||
@@ -59,10 +59,39 @@ export const SubmissionItemsList = memo(function SubmissionItemsList({
|
||||
|
||||
if (itemsError) throw itemsError;
|
||||
|
||||
// Fetch entity data for each item based on item_type
|
||||
// Fetch entity data for each item based on item_type and typed FK columns
|
||||
const transformedItems = await Promise.all(
|
||||
(itemsData || []).map(async (item) => {
|
||||
if (!item.item_data_id) {
|
||||
// Determine which FK column to use based on item_type
|
||||
let itemDataId: string | null = null;
|
||||
switch (item.item_type) {
|
||||
case 'park':
|
||||
itemDataId = item.park_submission_id;
|
||||
break;
|
||||
case 'ride':
|
||||
itemDataId = item.ride_submission_id;
|
||||
break;
|
||||
case 'photo':
|
||||
case 'photo_edit':
|
||||
case 'photo_delete':
|
||||
itemDataId = item.photo_submission_id;
|
||||
break;
|
||||
case 'manufacturer':
|
||||
case 'operator':
|
||||
case 'designer':
|
||||
case 'property_owner':
|
||||
itemDataId = item.company_submission_id;
|
||||
break;
|
||||
case 'ride_model':
|
||||
itemDataId = item.ride_model_submission_id;
|
||||
break;
|
||||
case 'milestone':
|
||||
case 'timeline_event':
|
||||
itemDataId = item.timeline_event_submission_id;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!itemDataId) {
|
||||
return { ...item, item_data: {}, entity_data: null };
|
||||
}
|
||||
|
||||
@@ -75,7 +104,7 @@ export const SubmissionItemsList = memo(function SubmissionItemsList({
|
||||
const { data } = await supabase
|
||||
.from('park_submissions')
|
||||
.select('*')
|
||||
.eq('id', item.item_data_id)
|
||||
.eq('id', itemDataId)
|
||||
.maybeSingle();
|
||||
entityData = data as any;
|
||||
break;
|
||||
@@ -84,7 +113,7 @@ export const SubmissionItemsList = memo(function SubmissionItemsList({
|
||||
const { data } = await supabase
|
||||
.from('ride_submissions')
|
||||
.select('*')
|
||||
.eq('id', item.item_data_id)
|
||||
.eq('id', itemDataId)
|
||||
.maybeSingle();
|
||||
entityData = data as any;
|
||||
break;
|
||||
@@ -96,7 +125,7 @@ export const SubmissionItemsList = memo(function SubmissionItemsList({
|
||||
const { data } = await supabase
|
||||
.from('company_submissions')
|
||||
.select('*')
|
||||
.eq('id', item.item_data_id)
|
||||
.eq('id', itemDataId)
|
||||
.maybeSingle();
|
||||
entityData = data as any;
|
||||
break;
|
||||
@@ -105,7 +134,7 @@ export const SubmissionItemsList = memo(function SubmissionItemsList({
|
||||
const { data } = await supabase
|
||||
.from('photo_submissions')
|
||||
.select('*')
|
||||
.eq('id', item.item_data_id)
|
||||
.eq('id', itemDataId)
|
||||
.maybeSingle();
|
||||
entityData = data as any;
|
||||
break;
|
||||
@@ -114,7 +143,7 @@ export const SubmissionItemsList = memo(function SubmissionItemsList({
|
||||
const { data } = await supabase
|
||||
.from('ride_model_submissions')
|
||||
.select('*')
|
||||
.eq('id', item.item_data_id)
|
||||
.eq('id', itemDataId)
|
||||
.maybeSingle();
|
||||
entityData = data as any;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user