Files
thrilltrack-explorer/supabase/migrations/20250928211232_3c3b516b-2302-4610-8d3d-65aa161d969b.sql
2025-09-28 21:15:23 +00:00

21 lines
1.4 KiB
SQL

-- 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';