<?php
/**
 * Runner de migración: 20260527_add_menu_type_advisor_mode
 * Agrega la columna menu_type a la tabla menus y el config advisor_available.
 */

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

header('Content-Type: text/plain; charset=utf-8');

$db = Database::getInstance();
$conn = $db->getConnection();

$steps = [];

// 1. Agregar columna menu_type a menus (si no existe)
try {
    $cols = $db->fetchAll("SHOW COLUMNS FROM menus LIKE 'menu_type'");
    if (empty($cols)) {
        $conn->exec("ALTER TABLE menus ADD COLUMN menu_type ENUM('main','no_advisor') NOT NULL DEFAULT 'main' COMMENT 'Tipo de menú: main=principal, no_advisor=aparece cuando no hay asesor'");
        $steps[] = "✅ Columna menu_type agregada a menus";
    } else {
        $steps[] = "⚠️  Columna menu_type ya existe en menus (omitida)";
    }
} catch (Exception $e) {
    $steps[] = "❌ Error agregando menu_type: " . $e->getMessage();
}

// 2. Insertar/actualizar system_config advisor_available
try {
    $existing = $db->fetch("SELECT id FROM system_config WHERE config_key = 'advisor_available' LIMIT 1");
    if ($existing) {
        $steps[] = "⚠️  Config advisor_available ya existe (omitida)";
    } else {
        $db->insert('system_config', [
            'config_key'   => 'advisor_available',
            'config_value' => '1',
            'description'  => 'Indica si hay asesores disponibles (1=sí, 0=no). Cuando es 0, el bot muestra el menú secundario no_advisor.',
            'created_at'   => date('Y-m-d H:i:s'),
        ]);
        $steps[] = "✅ Config advisor_available insertada (valor inicial: 1)";
    }
} catch (Exception $e) {
    $steps[] = "❌ Error insertando config advisor_available: " . $e->getMessage();
}

foreach ($steps as $s) {
    echo $s . "\n";
}
echo "\n✔ Migración 20260527 completada.\n";
