diff --git a/src/components/admin/RideForm.tsx b/src/components/admin/RideForm.tsx index 897fd95b..d7d2cfea 100644 --- a/src/components/admin/RideForm.tsx +++ b/src/components/admin/RideForm.tsx @@ -21,6 +21,9 @@ import { useManufacturers, useRideModels } from '@/hooks/useAutocompleteData'; import { useUserRole } from '@/hooks/useUserRole'; import { ManufacturerForm } from './ManufacturerForm'; import { RideModelForm } from './RideModelForm'; +import { TechnicalSpecsEditor } from './editors/TechnicalSpecsEditor'; +import { CoasterStatsEditor } from './editors/CoasterStatsEditor'; +import { FormerNamesEditor } from './editors/FormerNamesEditor'; import { convertSpeed, convertDistance, @@ -144,6 +147,11 @@ export function RideForm({ onSubmit, onCancel, initialData, isEditing = false }: const [isManufacturerModalOpen, setIsManufacturerModalOpen] = useState(false); const [isModelModalOpen, setIsModelModalOpen] = useState(false); + // Advanced editor state + const [technicalSpecs, setTechnicalSpecs] = useState([]); + const [coasterStats, setCoasterStats] = useState([]); + const [formerNames, setFormerNames] = useState([]); + // Fetch data const { manufacturers, loading: manufacturersLoading } = useManufacturers(); const { rideModels, loading: modelsLoading } = useRideModels(selectedManufacturerId); @@ -221,12 +229,20 @@ export function RideForm({ onSubmit, onCancel, initialData, isEditing = false }: : undefined, drop_height_meters: data.drop_height_meters ? convertDistanceToMetric(data.drop_height_meters, measurementSystem) - : undefined + : undefined, + // Add structured data from advanced editors + technical_specs: JSON.stringify(technicalSpecs), + coaster_stats: JSON.stringify(coasterStats), + former_names: JSON.stringify(formerNames) }; // Build composite submission if new entities were created const submissionContent: any = { ride: metricData, + // Include structured data for relational tables + technical_specifications: technicalSpecs, + coaster_statistics: coasterStats, + name_history: formerNames }; // Add new manufacturer if created @@ -706,6 +722,30 @@ export function RideForm({ onSubmit, onCancel, initialData, isEditing = false }: + {/* Advanced Editors */} +
+ + + {selectedCategory === 'roller_coaster' && ( + <> + + + + + )} +
+ {/* Images */} ([]); const { register, @@ -166,15 +169,20 @@ export function RideModelForm({ {/* Technical Specs */} -
- -