mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 13:31:12 -05:00
feat: Complete Ride Model Image Support
This commit is contained in:
@@ -667,10 +667,43 @@ async function createRideModel(data: any, dependencyMap: Map<string, string>): P
|
||||
const { transformRideModelData, validateSubmissionData } = await import('./entityTransformers');
|
||||
const { ensureUniqueSlug } = await import('./slugUtils');
|
||||
|
||||
// Validate input data
|
||||
validateSubmissionData(data, 'Ride Model');
|
||||
// Check if this is an edit (has ride_model_id)
|
||||
const isEdit = !!data.ride_model_id;
|
||||
|
||||
// Resolve dependencies
|
||||
if (isEdit) {
|
||||
// Handle ride model edit
|
||||
const resolvedData = resolveDependencies(data, dependencyMap);
|
||||
|
||||
// Extract image assignments from ImageAssignments structure
|
||||
const imageData = extractImageAssignments(resolvedData.images);
|
||||
|
||||
// Update the ride model
|
||||
const updateData: any = {
|
||||
name: resolvedData.name,
|
||||
slug: resolvedData.slug,
|
||||
category: resolvedData.category,
|
||||
ride_type: resolvedData.ride_type || null,
|
||||
description: resolvedData.description || null,
|
||||
manufacturer_id: resolvedData.manufacturer_id,
|
||||
...imageData,
|
||||
updated_at: new Date().toISOString()
|
||||
};
|
||||
|
||||
const { error } = await supabase
|
||||
.from('ride_models')
|
||||
.update(updateData)
|
||||
.eq('id', data.ride_model_id);
|
||||
|
||||
if (error) {
|
||||
console.error('Error updating ride model:', error);
|
||||
throw new Error(`Database error: ${error.message}`);
|
||||
}
|
||||
|
||||
return data.ride_model_id;
|
||||
}
|
||||
|
||||
// Handle ride model creation
|
||||
validateSubmissionData(data, 'Ride Model');
|
||||
const resolvedData = resolveDependencies(data, dependencyMap);
|
||||
|
||||
// Validate manufacturer_id is present (required for ride models)
|
||||
@@ -682,8 +715,14 @@ async function createRideModel(data: any, dependencyMap: Map<string, string>): P
|
||||
const uniqueSlug = await ensureUniqueSlug(resolvedData.slug, 'ride_models');
|
||||
resolvedData.slug = uniqueSlug;
|
||||
|
||||
// Extract image assignments
|
||||
const imageData = extractImageAssignments(resolvedData.images);
|
||||
|
||||
// Transform to database format
|
||||
const modelData = transformRideModelData(resolvedData);
|
||||
const modelData = {
|
||||
...transformRideModelData(resolvedData),
|
||||
...imageData
|
||||
};
|
||||
|
||||
// Insert into database
|
||||
const { data: model, error } = await supabase
|
||||
|
||||
Reference in New Issue
Block a user