-- ============================================
-- Migration 0041: Changer Heure_sauvegarde en INT
-- Date: 2024-02-23
-- ============================================
-- Description:
-- Convertit la colonne Heure_sauvegarde de TIME en INT
-- pour stocker l'intervalle en heures (ex: 24 = toutes les 24h)
-- Note: Table omag existe uniquement dans commun6
-- ============================================

-- Vérifier d'abord si la table omag existe
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'omag')
BEGIN
    PRINT 'Table omag non trouvée (base de prod) - Migration ignorée';
END
ELSE
BEGIN
    -- Vérifier si la colonne existe et son type
    DECLARE @type_actuel VARCHAR(50) = NULL;

    SELECT @type_actuel = DATA_TYPE
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_NAME = 'omag' AND COLUMN_NAME = 'Heure_sauvegarde';

    IF @type_actuel IS NULL
    BEGIN
        -- La colonne n'existe pas, la créer directement en INT
        ALTER TABLE omag ADD Heure_sauvegarde INT NOT NULL DEFAULT 0;
        PRINT 'Colonne Heure_sauvegarde créée en INT';
    END
    ELSE IF @type_actuel = 'time'
    BEGIN
        -- La colonne existe en TIME, la convertir en INT
        ALTER TABLE omag DROP COLUMN Heure_sauvegarde;
        ALTER TABLE omag ADD Heure_sauvegarde INT NOT NULL DEFAULT 0;
        PRINT 'Colonne Heure_sauvegarde convertie de TIME en INT';
    END
    ELSE IF @type_actuel = 'int'
    BEGIN
        -- Déjà en INT, rien à faire
        PRINT 'Colonne Heure_sauvegarde déjà en INT';
    END
    ELSE
    BEGIN
        -- Type inattendu, recréer proprement
        ALTER TABLE omag DROP COLUMN Heure_sauvegarde;
        ALTER TABLE omag ADD Heure_sauvegarde INT NOT NULL DEFAULT 0;
        PRINT 'Colonne Heure_sauvegarde recréée en INT (type précédent: ' + @type_actuel + ')';
    END
END
