-- ============================================================================
-- V31 — Corrige les colonnes legacy NOT NULL de la table notifications
--
-- V1 a créé les colonnes suivantes avec NOT NULL :
--   - destinataire_id UUID
--   - titre VARCHAR(255)
--
-- L'entité Java Notification utilise désormais membre_id et sujet/corps, mais
-- les anciennes colonnes sont restées NOT NULL → les INSERTs depuis l'entité
-- échouent avec 23502 (violation NOT NULL).
--
-- Fix : rendre ces colonnes nullables (on ne les utilise plus depuis l'entité).
-- ============================================================================

-- 1. destinataire_id : rendre nullable
DO $$
BEGIN
    IF EXISTS (
        SELECT 1 FROM information_schema.columns
        WHERE table_name = 'notifications'
          AND column_name = 'destinataire_id'
          AND is_nullable = 'NO'
    ) THEN
        ALTER TABLE notifications ALTER COLUMN destinataire_id DROP NOT NULL;
    END IF;
END $$;

-- 2. titre : rendre nullable (remplacé par sujet)
DO $$
BEGIN
    IF EXISTS (
        SELECT 1 FROM information_schema.columns
        WHERE table_name = 'notifications'
          AND column_name = 'titre'
          AND is_nullable = 'NO'
    ) THEN
        ALTER TABLE notifications ALTER COLUMN titre DROP NOT NULL;
    END IF;
END $$;

-- 3. nombre_tentatives : rendre nullable (défaut 0 déjà présent, mais NOT NULL bloque si l'entité ne le met pas)
DO $$
BEGIN
    IF EXISTS (
        SELECT 1 FROM information_schema.columns
        WHERE table_name = 'notifications'
          AND column_name = 'nombre_tentatives'
          AND is_nullable = 'NO'
    ) THEN
        -- Garder le default mais enlever NOT NULL pour éviter les crashes si l'entité ne définit pas la valeur
        ALTER TABLE notifications ALTER COLUMN nombre_tentatives DROP NOT NULL;
        ALTER TABLE notifications ALTER COLUMN nombre_tentatives SET DEFAULT 0;
    END IF;
END $$;
