-- ============================================
-- Migration 0024: Ajout annee comme cle dans Option_paie
-- Date: 2026-02-02
-- ============================================

IF OBJECT_ID('Option_paie', 'U') IS NOT NULL
BEGIN
    -- Supprimer la cle primaire existante (nom dynamique)
    DECLARE @pkName NVARCHAR(128);
    SELECT @pkName = tc.CONSTRAINT_NAME
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
    WHERE tc.TABLE_NAME = 'Option_paie' AND tc.CONSTRAINT_TYPE = 'PRIMARY KEY';

    IF @pkName IS NOT NULL
    BEGIN
        EXEC('ALTER TABLE Option_paie DROP CONSTRAINT ' + @pkName);
        PRINT 'Ancienne cle primaire supprimee: ' + @pkName;
    END

    -- Supprimer la colonne Id si elle existe
    IF EXISTS (
        SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
        WHERE TABLE_NAME = 'Option_paie' AND COLUMN_NAME = 'Id'
    )
    BEGIN
        ALTER TABLE Option_paie DROP COLUMN Id;
        PRINT 'Colonne Id supprimee';
    END

    -- Ajouter la colonne annee si elle n'existe pas
    IF NOT EXISTS (
        SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
        WHERE TABLE_NAME = 'Option_paie' AND COLUMN_NAME = 'annee'
    )
    BEGIN
        ALTER TABLE Option_paie ADD annee INT NOT NULL DEFAULT (YEAR(GETDATE()));
        PRINT 'Colonne annee ajoutee a la table Option_paie';
    END

    -- Creer la nouvelle cle primaire sur annee
    IF NOT EXISTS (
        SELECT 1 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
        WHERE TABLE_NAME = 'Option_paie' AND CONSTRAINT_TYPE = 'PRIMARY KEY'
    )
    BEGIN
        ALTER TABLE Option_paie ADD CONSTRAINT PK_Option_paie PRIMARY KEY (annee);
        PRINT 'Nouvelle cle primaire creee sur annee';
    END
END
