mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 13:31:12 -05:00
feat: Implement composite submission system
This commit is contained in:
@@ -227,7 +227,7 @@ export async function approveSubmissionItems(
|
||||
);
|
||||
}
|
||||
|
||||
// Add to dependency map for child items
|
||||
// Add to dependency map using item.id as key
|
||||
dependencyMap.set(item.id, entityId);
|
||||
|
||||
} catch (error: unknown) {
|
||||
@@ -898,8 +898,8 @@ async function updateEntityFeaturedImage(
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve dependency references in submission data
|
||||
* Replaces submission item IDs with actual database entity IDs
|
||||
* Resolve dependency references in item_data by looking up approved entity IDs
|
||||
* Replaces temporary references (_temp_*_ref) with actual database entity IDs
|
||||
*/
|
||||
function resolveDependencies(data: any, dependencyMap: Map<string, string>): any {
|
||||
const resolved = { ...data };
|
||||
@@ -915,6 +915,43 @@ function resolveDependencies(data: any, dependencyMap: Map<string, string>): any
|
||||
'location_id',
|
||||
];
|
||||
|
||||
// Resolve temporary references first
|
||||
if (resolved._temp_manufacturer_ref !== undefined) {
|
||||
const refIndex = resolved._temp_manufacturer_ref;
|
||||
const refItemId = Array.from(dependencyMap.keys())[refIndex];
|
||||
if (refItemId && dependencyMap.has(refItemId)) {
|
||||
resolved.manufacturer_id = dependencyMap.get(refItemId);
|
||||
}
|
||||
delete resolved._temp_manufacturer_ref;
|
||||
}
|
||||
|
||||
if (resolved._temp_operator_ref !== undefined) {
|
||||
const refIndex = resolved._temp_operator_ref;
|
||||
const refItemId = Array.from(dependencyMap.keys())[refIndex];
|
||||
if (refItemId && dependencyMap.has(refItemId)) {
|
||||
resolved.operator_id = dependencyMap.get(refItemId);
|
||||
}
|
||||
delete resolved._temp_operator_ref;
|
||||
}
|
||||
|
||||
if (resolved._temp_property_owner_ref !== undefined) {
|
||||
const refIndex = resolved._temp_property_owner_ref;
|
||||
const refItemId = Array.from(dependencyMap.keys())[refIndex];
|
||||
if (refItemId && dependencyMap.has(refItemId)) {
|
||||
resolved.property_owner_id = dependencyMap.get(refItemId);
|
||||
}
|
||||
delete resolved._temp_property_owner_ref;
|
||||
}
|
||||
|
||||
if (resolved._temp_ride_model_ref !== undefined) {
|
||||
const refIndex = resolved._temp_ride_model_ref;
|
||||
const refItemId = Array.from(dependencyMap.keys())[refIndex];
|
||||
if (refItemId && dependencyMap.has(refItemId)) {
|
||||
resolved.ride_model_id = dependencyMap.get(refItemId);
|
||||
}
|
||||
delete resolved._temp_ride_model_ref;
|
||||
}
|
||||
|
||||
// Resolve each foreign key if it's a submission item ID
|
||||
for (const key of foreignKeys) {
|
||||
if (resolved[key] && dependencyMap.has(resolved[key])) {
|
||||
|
||||
Reference in New Issue
Block a user