<?php
require_once 'includes/config.php';
require_once 'includes/db.php';
require_once 'includes/funciones_registro.php';

// Inicializar la base de datos
$db = new Database();

// Activar reporte de errores para depuración
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Obtener configuración del sitio
$config = $db->query("SELECT favicon, logo, color_principal, color_secundario FROM configuracion WHERE id = 1")->fetch();
$favicon = $config['favicon'] ? 'uploads/config/' . $config['favicon'] : '';
$logo = $config['logo'] ? 'uploads/config/' . $config['logo'] : '';
$colorPrincipal = $config['color_principal'] ?? '#ff2b1c';
$colorSecundario = $config['color_secundario'] ?? '#666666';

// Inicializar variable de error
$error = '';

session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $username = $_POST['username'];
    $password = $_POST['password'];
    
    $query = "SELECT * FROM usuarios WHERE username = ?";
    $usuario = $db->query($query, [$username])->fetch();
    
    if ($usuario && $password === $usuario['password']) {
        // Verificar si ya tiene una sesión activa
        if ($usuario['estado'] == 1) {
            // Almacenar datos temporalmente
            $_SESSION['temp_usuario'] = $usuario;
            $error = "session_active";
        } else {
            // Iniciar sesión normalmente
            iniciarSesion($usuario, $db);
        }
    } else {
        $error = "Usuario o contraseña incorrectos";
    }
}

function iniciarSesion($usuario, $db) {
    $_SESSION['usuario_id'] = $usuario['id'];
    $_SESSION['nombre'] = $usuario['nombre'];
    $_SESSION['username'] = $usuario['username'];
    $_SESSION['rol'] = $usuario['rol'];
    
    // Actualizar estado a 1
    $db->query("UPDATE usuarios SET estado = 1 WHERE id = ?", [$usuario['id']]);
    
    // Registrar el inicio de sesión
    registrarActividadUsuario($usuario['id'], 'inicio_sesion', 'Usuario inició sesión correctamente');
    
    header('Location: caja.php');
    exit;
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<?php
    // Modo oscuro
    require_once 'includes/dark_mode.php';
    ?>
    <meta name="color-scheme" content="light dark">
    <?php echo getDarkModeStyles(); ?>

    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Iniciar Sesión</title>
    <?php if ($favicon): ?>
    <link rel="icon" type="image/x-icon" href="<?= htmlspecialchars($favicon) ?>">
    <?php endif; ?>
    <link rel="stylesheet" href="admin/css/bootstrap.min.css">
    <style>
        :root {
            --color-primary: <?= $colorPrincipal ?>;
            --color-secondary: <?= $colorSecundario ?>;
        }
        body {
            background: #f5f5f5;
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .login-container {
            background: white;
            padding: 2rem;
            border-radius: 10px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            width: 100%;
            max-width: 400px;
        }
        .btn-primary {
            background-color: var(--color-primary);
            border-color: var(--color-primary);
        }
        .btn-primary:hover {
            background-color: var(--color-secondary);
            border-color: var(--color-secondary);
        }
        .modal {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0,0,0,0.5);
            z-index: 1000;
        }
        .modal-content {
            background: white;
            width: 90%;
            max-width: 400px;
            margin: 15% auto;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
    </style>
</head>
<body>
    <div class="login-container">
        <?php if ($logo): ?>
        <div class="text-center mb-4">
            <img src="<?= htmlspecialchars($logo) ?>" alt="Logo" class="img-fluid" style="max-height: 160px;">
        </div>
        <?php endif; ?>
        
        <?php if ($error): ?>
        <div class="alert alert-danger"><?= htmlspecialchars($error) ?></div>
        <?php endif; ?>

        <form method="POST">
            <div class="mb-3">
                <label for="username" class="form-label">Usuario</label>
                <input type="text" class="form-control" id="username" name="username" required>
            </div>
            <div class="mb-3">
                <label for="password" class="form-label">Contraseña</label>
                <input type="password" class="form-control" id="password" name="password" required>
            </div>
            <button type="submit" class="btn btn-primary w-100">Iniciar Sesión</button>
        </form>
        <a href="index.php" class="d-block text-center mt-3 text-secondary">
            <img src="admin/icons/arrow-left.svg" width="16" height="16" alt="Volver">
            Volver al inicio
        </a>
    </div>
    
    <!-- Modal para sesión activa -->
    <div id="sessionModal" class="modal">
        <div class="modal-content">
            <h4>Sesión Activa Detectada</h4>
            <p>Ya existe una sesión activa para este usuario. ¿Qué deseas hacer?</p>
            <button class="btn btn-danger" onclick="cerrarSesionAnterior()">Cerrar sesión anterior</button>
            <button class="btn btn-secondary" onclick="continuarSesion()">Continuar con sesión actual</button>
        </div>
    </div>

    <script>
    <?php if ($error === "session_active"): ?>
        document.getElementById('sessionModal').style.display = 'block';
    <?php endif; ?>

    function cerrarSesionAnterior() {
        fetch('cerrar_sesion_forzado.php', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({action: 'cerrar'})
        })
        .then(response => response.json())
        .then(data => {
            if (data.status === 'success') {
                window.location.href = 'caja.php';
            }
        });
    }

    function continuarSesion() {
        fetch('cerrar_sesion_forzado.php', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({action: 'continuar'})
        })
        .then(response => response.json())
        .then(data => {
            if (data.status === 'success') {
                window.location.href = 'caja.php';
            }
        });
    }
    </script>
</body>
</html>
