ALTER TABLE avisos_cobro_suscripcion
    MODIFY COLUMN canal ENUM('email', 'whatsapp', 'log') NOT NULL DEFAULT 'email',
    ADD COLUMN intentos TINYINT UNSIGNED NOT NULL DEFAULT 0 AFTER estado,
    ADD COLUMN max_intentos TINYINT UNSIGNED NOT NULL DEFAULT 3 AFTER intentos,
    ADD COLUMN ultimo_intento_at DATETIME NULL AFTER max_intentos,
    ADD COLUMN proximo_intento_at DATETIME NULL AFTER ultimo_intento_at,
    ADD COLUMN enviado_at DATETIME NULL AFTER proximo_intento_at,
    ADD COLUMN metadata_json TEXT NULL AFTER error_detalle;

ALTER TABLE avisos_cobro_suscripcion
    DROP INDEX uk_aviso_cobro_dia,
    ADD UNIQUE KEY uk_aviso_cobro_dia_canal (suscripcion_id, tipo, fecha_referencia, canal),
    ADD INDEX idx_aviso_cobro_estado_retry (estado, proximo_intento_at),
    ADD INDEX idx_aviso_cobro_intentos (intentos, max_intentos);
