-- Phase 9B: Add Medium-Priority Foreign Key Indexes
-- These support less-frequent operations like historical data lookups and audit trails

-- Historical data foreign keys (4 indexes)
CREATE INDEX IF NOT EXISTS idx_historical_parks_location_id 
  ON historical_parks(location_id);

CREATE INDEX IF NOT EXISTS idx_historical_parks_successor_park_id 
  ON historical_parks(successor_park_id);

CREATE INDEX IF NOT EXISTS idx_historical_rides_relocated_to_park_id 
  ON historical_rides(relocated_to_park_id);

CREATE INDEX IF NOT EXISTS idx_historical_rides_successor_ride_id 
  ON historical_rides(successor_ride_id);

-- Audit trail foreign keys (5 indexes)
CREATE INDEX IF NOT EXISTS idx_admin_settings_updated_by 
  ON admin_settings(updated_by);

CREATE INDEX IF NOT EXISTS idx_profile_audit_log_changed_by 
  ON profile_audit_log(changed_by);

CREATE INDEX IF NOT EXISTS idx_contact_submissions_resolved_by 
  ON contact_submissions(resolved_by);

CREATE INDEX IF NOT EXISTS idx_contact_submissions_archived_by 
  ON contact_submissions(archived_by);

CREATE INDEX IF NOT EXISTS idx_user_roles_granted_by 
  ON user_roles(granted_by);

-- Submission tracking foreign keys (5 indexes)
CREATE INDEX IF NOT EXISTS idx_company_versions_submission_id 
  ON company_versions(submission_id);

CREATE INDEX IF NOT EXISTS idx_ride_model_versions_submission_id 
  ON ride_model_versions(submission_id);

CREATE INDEX IF NOT EXISTS idx_ride_model_versions_manufacturer_id 
  ON ride_model_versions(manufacturer_id);

CREATE INDEX IF NOT EXISTS idx_ride_models_manufacturer_id 
  ON ride_models(manufacturer_id);

CREATE INDEX IF NOT EXISTS idx_park_submissions_location_id 
  ON park_submissions(location_id);

-- Location/timeline foreign keys (8 indexes)
CREATE INDEX IF NOT EXISTS idx_park_location_history_park_id 
  ON park_location_history(park_id);

CREATE INDEX IF NOT EXISTS idx_park_location_history_old_location_id 
  ON park_location_history(old_location_id);

CREATE INDEX IF NOT EXISTS idx_park_location_history_new_location_id 
  ON park_location_history(new_location_id);

CREATE INDEX IF NOT EXISTS idx_park_operating_hours_park_id 
  ON park_operating_hours(park_id);

CREATE INDEX IF NOT EXISTS idx_entity_timeline_events_from_location_id 
  ON entity_timeline_events(from_location_id);

CREATE INDEX IF NOT EXISTS idx_entity_timeline_events_to_location_id 
  ON entity_timeline_events(to_location_id);

CREATE INDEX IF NOT EXISTS idx_timeline_event_submissions_from_location_id 
  ON timeline_event_submissions(from_location_id);

CREATE INDEX IF NOT EXISTS idx_timeline_event_submissions_to_location_id 
  ON timeline_event_submissions(to_location_id);

-- Miscellaneous relationship foreign keys (6 indexes)
CREATE INDEX IF NOT EXISTS idx_contact_email_threads_sent_by 
  ON contact_email_threads(sent_by);

CREATE INDEX IF NOT EXISTS idx_notification_logs_template_id 
  ON notification_logs(template_id);

CREATE INDEX IF NOT EXISTS idx_review_deletions_park_id 
  ON review_deletions(park_id);

CREATE INDEX IF NOT EXISTS idx_review_deletions_ride_id 
  ON review_deletions(ride_id);

CREATE INDEX IF NOT EXISTS idx_user_blocks_blocked_id 
  ON user_blocks(blocked_id);