-- 002 · Parametrización, presupuesto e imágenes por beneficio
-- Habilita la administración completa desde el panel (CRUD) y el seguimiento
-- de presupuesto en el dashboard. Re-aplicable: scripts/migrate.php tolera
-- "columna/clave ya existe" (errno 1060/1061/1050/1826), así un fallo parcial
-- no deja la migración atascada al reintentar.

CREATE TABLE IF NOT EXISTS configuracion (
    clave VARCHAR(60) NOT NULL PRIMARY KEY,
    valor TEXT NULL,
    actualizado_en TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

ALTER TABLE bonos ADD COLUMN imagen VARCHAR(255) NULL AFTER nombre;
ALTER TABLE bonos ADD COLUMN descripcion VARCHAR(255) NULL AFTER imagen;
ALTER TABLE ciudades ADD COLUMN activo TINYINT(1) NOT NULL DEFAULT 1 AFTER nombre;
ALTER TABLE ediciones ADD COLUMN meses_minimos INT UNSIGNED NOT NULL DEFAULT 12 AFTER estado;
ALTER TABLE ediciones ADD COLUMN requiere_curso TINYINT(1) NOT NULL DEFAULT 1 AFTER meses_minimos;
ALTER TABLE ediciones ADD COLUMN requiere_activo TINYINT(1) NOT NULL DEFAULT 1 AFTER requiere_curso;
ALTER TABLE ediciones ADD COLUMN presupuesto_total DECIMAL(14, 2) NOT NULL DEFAULT 0 AFTER requiere_activo;

CREATE TABLE IF NOT EXISTS presupuestos (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    edicion_id INT UNSIGNED NOT NULL,
    bono_id INT UNSIGNED NOT NULL,
    monto DECIMAL(14, 2) NOT NULL DEFAULT 0,
    unidades_estimadas INT UNSIGNED NULL,
    UNIQUE KEY uq_presupuesto (edicion_id, bono_id),
    CONSTRAINT fk_presupuesto_edicion FOREIGN KEY (edicion_id) REFERENCES ediciones (id) ON DELETE CASCADE,
    CONSTRAINT fk_presupuesto_bono FOREIGN KEY (bono_id) REFERENCES bonos (id) ON DELETE CASCADE
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
