-- Migration: vanillaAvailable (boolean) → availableIn (VARCHAR enum)
--
-- BDSM_AND_VANILLA = ehemals vanilla_available = TRUE
-- BDSM_ONLY        = ehemals vanilla_available = FALSE  (Default)
-- CHASTITY_ONLY    = neuer Wert
--
-- Die Prozedur prüft zuerst, ob vanilla_available noch existiert, bevor
-- sie etwas tut – dadurch ist die Migration auf leeren Datenbanken ein No-op.

DROP PROCEDURE IF EXISTS proc_migrate_available_in;

CREATE PROCEDURE proc_migrate_available_in()
BEGIN
    DECLARE col_exists INT DEFAULT 0;
    SELECT COUNT(*) INTO col_exists
    FROM information_schema.COLUMNS
    WHERE TABLE_SCHEMA = DATABASE()
      AND TABLE_NAME   = 'aufgaben_gruppe'
      AND COLUMN_NAME  = 'vanilla_available';

    IF col_exists > 0 THEN
        ALTER TABLE aufgaben_gruppe
            ADD COLUMN available_in VARCHAR(50) NOT NULL DEFAULT 'BDSM_ONLY';
        UPDATE aufgaben_gruppe
            SET available_in = 'BDSM_AND_VANILLA'
            WHERE vanilla_available = 1;
        ALTER TABLE aufgaben_gruppe
            DROP COLUMN vanilla_available;
    END IF;
END;

CALL proc_migrate_available_in();

DROP PROCEDURE IF EXISTS proc_migrate_available_in;
