Refactor submission item handling

This commit is contained in:
gpt-engineer-app[bot]
2025-11-03 14:28:58 +00:00
parent 8d6cf9ceb5
commit c3f30b8417
5 changed files with 340 additions and 22 deletions

View File

@@ -359,16 +359,35 @@ export async function fetchSystemActivities(
const submissionIds = submissions.map(s => s.id);
const { data: submissionItems } = await supabase
.from('submission_items')
.select('submission_id, item_type, item_data')
.select(`
submission_id,
item_type,
photo_submission:photo_submissions!item_data_id(
*,
photo_items:photo_submission_items(*)
)
`)
.in('submission_id', submissionIds)
.in('item_type', ['photo', 'photo_delete', 'photo_edit']);
const itemsMap = new Map(submissionItems?.map(item => [item.submission_id, item]) || []);
const itemsMap = new Map(
submissionItems?.map(item => {
// Transform photo data
const itemData = item.item_type === 'photo'
? {
...(item as any).photo_submission,
photos: (item as any).photo_submission?.photo_items || []
}
: (item as any).photo_submission;
return [item.submission_id, { ...item, item_data: itemData }];
}) || []
);
for (const submission of submissions) {
const contentData = submission.content as SubmissionContent;
const submissionItem = itemsMap.get(submission.id);
const itemData = submissionItem?.item_data as SubmissionItemData;
const itemData = submissionItem?.item_data as any;
// Build base details
const details: SubmissionReviewDetails = {