<?php
/**
 * TechShop Perú - Login Aislado Exclusivo para Administradores
 */
define('SECURE_ACCESS', true);
require_once __DIR__ . '/../includes/config.php';
require_once __DIR__ . '/../includes/database.php';
require_once __DIR__ . '/../includes/functions.php';

if (is_admin()) {
    redirect('panel-admin-tech/index.php');
}

$error = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (!csrf_verify()) {
        $error = 'Token de seguridad inválido.';
    } else {
        $email = sanitize($_POST['email'] ?? '');
        $password = $_POST['password'] ?? '';

        if (login_is_locked($email)) {
            // Anti-brute-force: bloqueo temporal tras varios intentos fallidos
            $minutos = (int) ceil(login_attempts_remaining($email) / 60);
            $error = 'Demasiados intentos fallidos. Espera ' . $minutos . ' minuto(s) antes de intentar de nuevo.';
        } else {
            try {
                $db = db();
                $stmt = $db->prepare('SELECT id, nombres, email, password, rol, activo FROM usuarios WHERE email = ? AND rol = "admin" LIMIT 1');
                $stmt->execute([$email]);
                $usuario = $stmt->fetch();

                if (!$usuario) {
                    login_attempts_failed($email);
                    $error = 'Credenciales administrativas inválidas o usuario sin permisos.';
                } elseif (!$usuario['activo']) {
                    login_attempts_failed($email);
                    $error = 'Cuenta administrativa desactivada.';
                } elseif (!password_verify($password, $usuario['password'])) {
                    login_attempts_failed($email);
                    $error = 'Contraseña incorrecta.';
                } else {
                    login_attempts_reset($email);
                    session_regenerate_id(true);
                    $_SESSION['usuario_id'] = $usuario['id'];
                    $_SESSION['usuario_nombre'] = $usuario['nombres'];
                    $_SESSION['usuario_rol'] = $usuario['rol'];
                    csrf_regenerate();
                    redirect('panel-admin-tech/index.php');
                }
            } catch (Exception $e) {
                error_log('Error en login admin: ' . $e->getMessage());
                $error = 'Error del servidor. Por favor, inténtalo de nuevo más tarde.';
            }
        }
    }
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Acceso Administrativo | TechShop Perú</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css" rel="stylesheet">
    <style>
        body {
            background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
        }
    </style>
</head>
<body>
<div class="card border-0 shadow-lg p-4 text-white bg-dark rounded-4" style="max-width: 440px; width: 100%;">
    <div class="card-body text-center">
        <div class="mb-3 text-primary fs-1"><i class="bi bi-shield-lock-fill"></i></div>
        <h3 class="fw-bold mb-1">Acceso Administrativo</h3>
        <p class="text-white-50 small mb-4">Portal seguro de gestión del sistema</p>

        <?php if ($error): ?>
        <div class="alert alert-danger text-start small mb-3"><i class="bi bi-exclamation-triangle-fill me-2"></i><?= e($error) ?></div>
        <?php endif; ?>

        <form method="POST" class="text-start">
            <?= csrf_field() ?>
            <div class="mb-3">
                <label class="form-label text-white-50 small">Correo de Administrador</label>
                <input type="email" name="email" class="form-control bg-secondary text-white border-0" placeholder="admin@techshop.pe" required>
            </div>
            <div class="mb-4">
                <label class="form-label text-white-50 small">Contraseña</label>
                <input type="password" name="password" class="form-control bg-secondary text-white border-0" placeholder="••••••••" required>
            </div>
            <button type="submit" class="btn btn-primary btn-lg w-100 py-2 fw-bold">
                <i class="bi bi-box-arrow-in-right me-2"></i>Ingresar al Panel
            </button>
        </form>
    </div>
</div>
</body>
</html>
