-- ============================================
-- MIGRATION: Ajout des champs démographiques
-- ============================================

-- Créer le type ENUM pour le genre
DO $$ BEGIN
  CREATE TYPE gender_type AS ENUM ('MALE', 'FEMALE', 'OTHER', 'NOT_SPECIFIED');
EXCEPTION
  WHEN duplicate_object THEN null;
END $$;

-- Ajouter les colonnes gender et date_of_birth à la table users si elles n'existent pas
DO $$
BEGIN
  -- Ajouter la colonne gender si elle n'existe pas
  IF NOT EXISTS (
    SELECT 1 FROM information_schema.columns
    WHERE table_name = 'users' AND column_name = 'gender'
  ) THEN
    ALTER TABLE users ADD COLUMN gender gender_type DEFAULT 'NOT_SPECIFIED';
  END IF;

  -- Ajouter la colonne date_of_birth si elle n'existe pas
  IF NOT EXISTS (
    SELECT 1 FROM information_schema.columns
    WHERE table_name = 'users' AND column_name = 'date_of_birth'
  ) THEN
    ALTER TABLE users ADD COLUMN date_of_birth DATE;
  END IF;
END $$;

-- Créer un index sur gender pour améliorer les performances des requêtes de statistiques
CREATE INDEX IF NOT EXISTS idx_users_gender ON users(gender);
CREATE INDEX IF NOT EXISTS idx_users_date_of_birth ON users(date_of_birth);

-- Commentaires
COMMENT ON COLUMN users.gender IS 'Genre de l''utilisateur: MALE, FEMALE, OTHER, NOT_SPECIFIED';
COMMENT ON COLUMN users.date_of_birth IS 'Date de naissance de l''utilisateur pour les statistiques démographiques';
