<?php
session_start();
require_once 'config/conexion.php';

$error = '';

// Si fue expulsado por el validar_sesion.php, mostramos el mensaje
if (isset($_GET['motivo']) && $_GET['motivo'] == 'sesion_duplicada') {
    $error = "Tu sesión fue cerrada porque iniciaste sesión en otro dispositivo.";
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $username = trim($_POST['username']);
    $password = $_POST['password'];

    $stmt = $pdo->prepare("SELECT id, password_hash FROM usuarios WHERE username = ?");
    $stmt->execute([$username]);
    $user = $stmt->fetch();

    if ($user && password_verify($password, $user['password_hash'])) {
        // Regenerar ID por seguridad contra ataques de fijación de sesión
        session_regenerate_id(true);
        $nuevo_session_id = session_id();

        // Actualizamos el session_id en la base de datos
        $stmtUpdate = $pdo->prepare("UPDATE usuarios SET session_id = ? WHERE id = ?");
        $stmtUpdate->execute([$nuevo_session_id, $user['id']]);

        // Guardamos el id del usuario en la sesión del navegador
        $_SESSION['user_id'] = $user['id'];
        
        // Redirigimos a la pantalla principal del examen
        header("Location: dashboard.php");
        exit;
    } else {
        $error = "Usuario o contraseña incorrectos.";
    }
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Acceso al Sistema</title>

    <!-- Bootstrap -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body class="bg-light d-flex flex-column min-vh-100">

    <div class="container d-flex justify-content-center align-items-center flex-grow-1">
        <div class="card shadow-lg border-0 rounded-4" style="max-width: 420px; width: 100%;">
            <div class="card-body p-4">

                <div class="text-center mb-4">
                    <h3 class="fw-bold">Login de Repaso</h3>
                    <p class="text-muted mb-0">Ingrese sus credenciales</p>
                </div>

                <?php if(!empty($error)): ?> 
                    <div class="alert alert-danger fw-semibold" role="alert">
                        <?= htmlspecialchars($error) ?>
                    </div>
                <?php endif; ?>

                <form method="POST" action="">
                    <div class="mb-3">
                        <label class="form-label">Usuario:</label>
                        <input 
                            type="text" 
                            name="username" 
                            required 
                            class="form-control form-control-lg"
                            placeholder="Ingrese su usuario">
                    </div>

                    <div class="mb-4">
                        <label class="form-label">Contraseña:</label>
                        <input 
                            type="password" 
                            name="password" 
                            required 
                            class="form-control form-control-lg"
                            placeholder="Ingrese su contraseña">
                    </div>

                    <button type="submit" class="btn btn-primary btn-lg w-100">
                        Ingresar
                    </button>
                </form>

            </div>
        </div>
    </div>

    <!-- Footer -->
    <footer class="text-center py-3 mt-auto bg-white border-top">
        <small class="text-muted">Desarrollado por <strong>MVCODE</strong></small>
    </footer>

    <!-- Bootstrap JS -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>