mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-24 03:11:13 -05:00
Refactor profile stats calculation
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
-- Add roller coaster specific columns to the rides table
|
||||
ALTER TABLE public.rides
|
||||
ADD COLUMN coaster_type TEXT CHECK (coaster_type IN ('steel', 'wood', 'hybrid')),
|
||||
ADD COLUMN seating_type TEXT,
|
||||
ADD COLUMN intensity_level TEXT CHECK (intensity_level IN ('family', 'thrill', 'extreme')),
|
||||
ADD COLUMN former_names JSONB DEFAULT '[]'::jsonb,
|
||||
ADD COLUMN drop_height_meters NUMERIC(6,2),
|
||||
ADD COLUMN max_g_force NUMERIC(4,2);
|
||||
|
||||
-- Add indexes for better query performance on commonly filtered fields
|
||||
CREATE INDEX idx_rides_coaster_type ON public.rides(coaster_type) WHERE coaster_type IS NOT NULL;
|
||||
CREATE INDEX idx_rides_seating_type ON public.rides(seating_type) WHERE seating_type IS NOT NULL;
|
||||
CREATE INDEX idx_rides_intensity_level ON public.rides(intensity_level) WHERE intensity_level IS NOT NULL;
|
||||
|
||||
-- Add comments for documentation
|
||||
COMMENT ON COLUMN public.rides.coaster_type IS 'Type of roller coaster construction: steel, wood, or hybrid';
|
||||
COMMENT ON COLUMN public.rides.seating_type IS 'How riders are seated: sit_down, stand_up, flying, inverted, etc.';
|
||||
COMMENT ON COLUMN public.rides.intensity_level IS 'Target audience intensity: family, thrill, or extreme';
|
||||
COMMENT ON COLUMN public.rides.former_names IS 'Array of previous names this ride has had';
|
||||
COMMENT ON COLUMN public.rides.drop_height_meters IS 'Maximum drop height in meters';
|
||||
COMMENT ON COLUMN public.rides.max_g_force IS 'Maximum G-force experienced on the ride';
|
||||
Reference in New Issue
Block a user