<?php
/**
 * Script para corregir específicamente el error de la columna 'role_id'.
 */
require_once 'includes/db.php';

echo "<h1>Corrigiendo Tabla 'users'</h1>";

try {
    // 1. Obtener columnas actuales
    $stmt = $pdo->query("DESCRIBE users");
    $columns = $stmt->fetchAll(PDO::FETCH_COLUMN);
    echo "<p>Columnas actuales en 'users': " . implode(', ', $columns) . "</p>";

    // 2. Si no tiene 'role_id', ver si tiene 'role' para renombrarla o agregar 'role_id'
    if (!in_array('role_id', $columns)) {
        if (in_array('role', $columns)) {
            echo "<p>Renombrando columna 'role' a 'role_id'...</p>";
            // Primero aseguramos que sea INT (si era VARCHAR puede haber problemas)
            $pdo->exec("ALTER TABLE users CHANGE COLUMN role role_id INT NOT NULL");
            echo "<p style='color:green'>✅ Columna 'role' renombrada a 'role_id'.</p>";
        } else {
            echo "<p>Añadiendo columna 'role_id'...</p>";
            $pdo->exec("ALTER TABLE users ADD COLUMN role_id INT NOT NULL AFTER email");
            echo "<p style='color:green'>✅ Columna 'role_id' añadida.</p>";
        }
    } else {
        echo "<p style='color:blue'>✔ La columna 'role_id' ya existe.</p>";
    }

    // 3. Asegurar que los roles tengan IDs correctos
    $pdo->exec("INSERT IGNORE INTO roles (id, name) VALUES (1, 'administrador'), (2, 'profesor'), (3, 'alumno'), (4, 'empresa'), (5, 'egresado')");
    
    // 4. Si el admin no tiene role_id, asignarlo
    $pdo->exec("UPDATE users SET role_id = 1 WHERE username = 'admin'");
    echo "<p style='color:green'>✅ Rol de administrador actualizado.</p>";

    echo "<h2>Finalizado. Prueba entrar al Dashboard ahora.</h2>";

} catch (Exception $e) {
    echo "<p style='color:red'>Error: " . $e->getMessage() . "</p>";
}
?>
