-- ============================================================================
-- V34 — Rendre membre_id nullable dans les tables où l'entité Hibernate
--        utilise désormais une autre colonne (utilisateur_id, membre_organisation_id).
--
-- Contexte : V1 crée ces tables avec membre_id UUID NOT NULL. Les entités ont
-- évolué pour utiliser utilisateur_id (MembreOrganisation, DemandeAdhesion,
-- IntentionPaiement) ou membre_organisation_id (MembreRole). Hibernate update
-- a ajouté les nouvelles colonnes mais n'a pas supprimé membre_id.
-- Résultat : chaque insert lève une violation NOT NULL sur membre_id.
-- Fix : rendre membre_id nullable (colonne legacy, plus utilisée par le code).
-- ============================================================================

-- membres_organisations : entité utilise utilisateur_id
ALTER TABLE membres_organisations ALTER COLUMN membre_id DROP NOT NULL;

-- membres_roles : entité utilise membre_organisation_id
ALTER TABLE membres_roles ALTER COLUMN membre_id DROP NOT NULL;

-- demandes_adhesion : entité utilise utilisateur_id
DO $$
BEGIN
    IF EXISTS (
        SELECT 1 FROM information_schema.columns
        WHERE table_name = 'demandes_adhesion' AND column_name = 'membre_id'
    ) THEN
        ALTER TABLE demandes_adhesion ALTER COLUMN membre_id DROP NOT NULL;
    END IF;
END $$;

-- intentions_paiement : entité utilise utilisateur_id
DO $$
BEGIN
    IF EXISTS (
        SELECT 1 FROM information_schema.columns
        WHERE table_name = 'intentions_paiement' AND column_name = 'membre_id'
    ) THEN
        ALTER TABLE intentions_paiement ALTER COLUMN membre_id DROP NOT NULL;
    END IF;
END $$;
