-- Migration 024: Agregar meta_message_id a messages para deduplicación
-- Evita que un webhook reintentado procese el mismo mensaje dos veces.
-- Idempotente: usa CONTINUE HANDLER.

DROP PROCEDURE IF EXISTS migrate_024;
DELIMITER //
CREATE PROCEDURE migrate_024()
BEGIN
    DECLARE CONTINUE HANDLER FOR 1060 BEGIN END; -- Duplicate column
    DECLARE CONTINUE HANDLER FOR 1061 BEGIN END; -- Duplicate key

    ALTER TABLE messages
        ADD COLUMN meta_message_id VARCHAR(64) NULL DEFAULT NULL
            COMMENT 'ID del mensaje de Meta Cloud API — evita doble procesamiento';

    -- Index parcial solo en filas no-NULL (el resto de canales es NULL y no colisiona)
    ALTER TABLE messages
        ADD UNIQUE KEY idx_meta_message_id (meta_message_id);
END //
DELIMITER ;
CALL migrate_024();
DROP PROCEDURE IF EXISTS migrate_024;
