-- Migration V1.5: Ajout des champs de liaison avec Keycloak dans la table membres
-- Date: 2025-12-24
-- Description: Permet de lier un Membre (business) à un User Keycloak (authentification)

-- Ajouter la colonne keycloak_user_id pour stocker l'UUID du user Keycloak
ALTER TABLE membres
ADD COLUMN IF NOT EXISTS keycloak_user_id VARCHAR(36);

-- Ajouter la colonne keycloak_realm pour stocker le nom du realm (généralement "unionflow")
ALTER TABLE membres
ADD COLUMN IF NOT EXISTS keycloak_realm VARCHAR(50);

-- Créer un index unique sur keycloak_user_id pour garantir l'unicité et optimiser les recherches
-- Un user Keycloak ne peut être lié qu'à un seul Membre
CREATE UNIQUE INDEX IF NOT EXISTS idx_membre_keycloak_user
ON membres(keycloak_user_id)
WHERE keycloak_user_id IS NOT NULL;

-- Ajouter un commentaire pour la documentation
COMMENT ON COLUMN membres.keycloak_user_id IS 'UUID du user Keycloak lié à ce membre. NULL si le membre n''a pas de compte de connexion.';
COMMENT ON COLUMN membres.keycloak_realm IS 'Nom du realm Keycloak où le user est enregistré (ex: "unionflow", "btpxpress"). NULL si pas de compte Keycloak.';

-- Note: Le champ mot_de_passe existant devrait être déprécié car Keycloak est la source de vérité pour l'authentification
-- Cependant, on le conserve pour compatibilité avec les données existantes et migration progressive
