-- Migration: Ajouter type à programmes_pdr
-- Date: 2025-01-XX
-- Description: Ajoute le champ type pour distinguer entre 'programme' et 'projet_structurant'

SET @dbname = DATABASE();
SET @tablename = 'programmes_pdr';
SET @column = 'type';

-- Vérifier si la colonne existe déjà
SET @preparedStatement = (SELECT IF(
  (
    SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
    WHERE
      (TABLE_SCHEMA = @dbname)
      AND (TABLE_NAME = @tablename)
      AND (COLUMN_NAME = @column)
  ) > 0,
  'SELECT "La colonne type existe déjà." AS message;',
  CONCAT('ALTER TABLE `', @tablename, '` ADD COLUMN `', @column, '` enum(\'programme\',\'projet_structurant\') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT \'programme\' AFTER `domaine_competence_id`;')
));

PREPARE stmt FROM @preparedStatement;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

-- Ajouter l'index
SET @indexName = 'idx_type';
SET @preparedStatement = (SELECT IF(
  (
    SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS
    WHERE
      (TABLE_SCHEMA = @dbname)
      AND (TABLE_NAME = @tablename)
      AND (INDEX_NAME = @indexName)
  ) > 0,
  'SELECT "L\'index idx_type existe déjà." AS message;',
  CONCAT('ALTER TABLE `', @tablename, '` ADD INDEX `', @indexName, '` (`', @column, '`);')
));

PREPARE stmt FROM @preparedStatement;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

SELECT "Migration 050: La colonne type a été ajoutée à programmes_pdr." AS message;

