<?php
/**
 * Migración: estados de entrega ("vistos") y eliminación de mensajes de
 * WhatsApp, paridad con el OPS (22-07-2026).
 *
 * - whatsapp_mensajes.estado_entrega: sent|delivered|read|played|error
 *   (lo actualiza el webhook messages.update de Evolution, mapa 1..5 del OPS).
 * - whatsapp_mensajes.eliminado: 1 = retractado con "eliminar para todos".
 * - Índice por message_id para que el update del webhook sea directo.
 *
 * Uso: C:\wamp\bin\php\php5.5.12\php.exe database\migracion_whatsapp_estado_mensajes.php
 */
$env = include __DIR__ . '/../.env.php';
$pdo = new PDO(
    'mysql:host=' . $env['DB_HOST'] . ';dbname=' . $env['DB_NAME'] . ';charset=utf8mb4',
    $env['DB_USER'], $env['DB_PASS'],
    array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)
);

$columnas = array(
    'estado_entrega' => "ALTER TABLE whatsapp_mensajes ADD COLUMN estado_entrega VARCHAR(20) NOT NULL DEFAULT 'sent' AFTER leido",
    'eliminado'      => "ALTER TABLE whatsapp_mensajes ADD COLUMN eliminado TINYINT(1) NOT NULL DEFAULT 0 AFTER estado_entrega",
);
foreach ($columnas as $col => $sql) {
    if ($pdo->query("SHOW COLUMNS FROM whatsapp_mensajes LIKE '$col'")->fetch()) {
        echo "Columna whatsapp_mensajes.$col ya existe.\n";
    } else {
        $pdo->exec($sql);
        echo "Columna whatsapp_mensajes.$col agregada.\n";
    }
}

if ($pdo->query("SHOW INDEX FROM whatsapp_mensajes WHERE Key_name = 'idx_message_id'")->fetch()) {
    echo "Índice idx_message_id ya existe.\n";
} else {
    $pdo->exec("ALTER TABLE whatsapp_mensajes ADD INDEX idx_message_id (message_id)");
    echo "Índice idx_message_id creado.\n";
}
echo "Migración completada.\n";
