-- Add person_type field to companies table to distinguish between companies, individuals, and firms
ALTER TABLE public.companies 
ADD COLUMN IF NOT EXISTS person_type TEXT DEFAULT 'company' CHECK (person_type IN ('company', 'individual', 'firm', 'organization'));

-- Add index for better performance on company person_type queries  
CREATE INDEX IF NOT EXISTS idx_companies_person_type ON public.companies(person_type);

-- Add index for ride sub-type if it doesn't exist
CREATE INDEX IF NOT EXISTS idx_rides_ride_sub_type ON public.rides(ride_sub_type);

-- Add comments for documentation
COMMENT ON COLUMN public.rides.ride_sub_type IS 'Sub-category of ride type, e.g., "Flying Coaster", "Inverted Coaster", "Log Flume", "Shoot the Chutes"';
COMMENT ON COLUMN public.companies.person_type IS 'Type of entity: company, individual, firm, or organization';

-- Update existing companies to have proper person_type (defaulting to company)
UPDATE public.companies SET person_type = 'company' WHERE person_type IS NULL;