<?php
require_once __DIR__ . '/config/config.php';

$db = Database::getInstance();

echo "🔄 Leyendo archivo de migración...\n";
$sqlFile = __DIR__ . '/database/02_add_template_components.sql';
$sql = file_get_contents($sqlFile);

echo "Tamaño del archivo: " . strlen($sql) . " bytes\n\n";

// Dividir por punto y coma, pero preservando las líneas
$lines = explode("\n", $sql);
$currentStatement = '';
$statements = [];

foreach ($lines as $line) {
    $line = trim($line);
    
    // Saltar comentarios y líneas vacías
    if (empty($line) || strpos($line, '--') === 0) {
        continue;
    }
    
    $currentStatement .= $line . ' ';
    
    // Si termina en punto y coma, es el final de la sentencia
    if (substr(trim($line), -1) === ';') {
        $statements[] = trim($currentStatement);
        $currentStatement = '';
    }
}

echo "📊 Sentencias encontradas: " . count($statements) . "\n\n";

$count = 0;
foreach ($statements as $i => $stmt) {
    echo "Ejecutando sentencia " . ($i + 1) . "...\n";
    echo "Preview: " . substr($stmt, 0, 100) . "...\n";
    
    try {
        $db->execute($stmt);
        $count++;
        echo "  ✓ OK\n\n";
    } catch (Exception $e) {
        echo "  ✗ Error: " . $e->getMessage() . "\n\n";
    }
}

echo "✅ Total ejecutadas exitosamente: $count\n\n";

echo "📋 Columnas actuales de message_templates:\n";
$cols = $db->fetchAll('DESCRIBE message_templates');
foreach($cols as $c) {
    echo "  - {$c['Field']} ({$c['Type']})\n";
}
