Refactor: Implement Phase 3A technical data migration

This commit is contained in:
gpt-engineer-app[bot]
2025-10-02 01:14:42 +00:00
parent 6c95cd9856
commit f112186ebc
6 changed files with 682 additions and 18 deletions

View File

@@ -52,6 +52,54 @@ export interface Park {
updated_at: string;
}
export interface RideTechnicalSpec {
id: string;
ride_id: string;
spec_name: string;
spec_value: string;
spec_type: 'string' | 'number' | 'boolean' | 'date';
category?: string;
unit?: string;
display_order: number;
created_at: string;
}
export interface RideCoasterStat {
id: string;
ride_id: string;
stat_name: string;
stat_value: number;
unit?: string;
category?: string;
description?: string;
display_order: number;
created_at: string;
}
export interface RideNameHistory {
id: string;
ride_id: string;
former_name: string;
date_changed?: string;
reason?: string;
from_year?: number;
to_year?: number;
order_index: number;
created_at: string;
}
export interface RideModelTechnicalSpec {
id: string;
ride_model_id: string;
spec_name: string;
spec_value: string;
spec_type: 'string' | 'number' | 'boolean' | 'date';
category?: string;
unit?: string;
display_order: number;
created_at: string;
}
export interface RideModel {
id: string;
name: string;
@@ -60,7 +108,8 @@ export interface RideModel {
category: 'roller_coaster' | 'flat_ride' | 'water_ride' | 'dark_ride' | 'kiddie_ride' | 'transportation';
ride_type: string;
description?: string;
technical_specs?: any;
technical_specs?: any; // Legacy JSON field
technical_specifications?: RideModelTechnicalSpec[]; // New relational data
}
export interface Ride {
@@ -85,8 +134,13 @@ export interface Ride {
max_height_meters?: number;
length_meters?: number;
inversions?: number;
coaster_stats?: any;
technical_specs?: any;
coaster_stats?: any; // Legacy JSON field
technical_specs?: any; // Legacy JSON field
former_names?: any; // Legacy JSON field
// New relational data
technical_specifications?: RideTechnicalSpec[];
coaster_statistics?: RideCoasterStat[];
name_history?: RideNameHistory[];
average_rating: number;
review_count: number;
image_url?: string;
@@ -100,7 +154,6 @@ export interface Ride {
intensity_level?: string;
drop_height_meters?: number;
max_g_force?: number;
former_names?: any;
}
export interface Profile {