<?php
require __DIR__ . '/auth.php';

if (usuarioAtual()) {
    $u = usuarioAtual();
    redirecionar($u['perfil'] === 'ADMIN' ? 'admin.php' : 'painel.php');
}

$erro = '';
$temAdmin = false;

try {
    $temAdmin = (bool)$pdo->query(
        "SELECT id FROM usuarios_localizacao WHERE perfil='ADMIN' LIMIT 1"
    )->fetch();
} catch (Exception $e) {
    $erro = 'O banco ainda não foi atualizado. Importe o arquivo 01_atualizar_banco.sql.';
}

if ($_SERVER['REQUEST_METHOD'] === 'POST' && $erro === '') {
    validarCsrf();

    $usuario = isset($_POST['usuario']) ? trim($_POST['usuario']) : '';
    $senha = isset($_POST['senha']) ? (string)$_POST['senha'] : '';

    $stmt = $pdo->prepare(
        'SELECT id, nome, usuario, senha_hash, perfil, ativo
         FROM usuarios_localizacao
         WHERE usuario = ?
         LIMIT 1'
    );
    $stmt->execute([$usuario]);
    $u = $stmt->fetch();

    if (!$u || (int)$u['ativo'] !== 1 || !password_verify($senha, $u['senha_hash'])) {
        $erro = 'Usuário ou senha inválidos.';
    } else {
        session_regenerate_id(true);
        $_SESSION['localizacao_usuario'] = [
            'id' => (int)$u['id'],
            'nome' => $u['nome'],
            'usuario' => $u['usuario'],
            'perfil' => $u['perfil']
        ];
        redirecionar($u['perfil'] === 'ADMIN' ? 'admin.php' : 'painel.php');
    }
}
?>
<!doctype html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Login - Localização</title>
<style>
*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:#f3f6f9;color:#1f2937}
.wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.card{width:100%;max-width:420px;background:#fff;border-radius:16px;padding:26px;box-shadow:0 8px 30px rgba(0,0,0,.08)}
h1{margin:0 0 8px;color:#0f2742}.sub{color:#64748b;margin-bottom:22px}
label{display:block;font-weight:bold;margin:14px 0 6px}
input{width:100%;padding:12px;border:1px solid #ccd5df;border-radius:10px;font-size:16px}
button,.btn{width:100%;border:0;border-radius:10px;padding:12px;background:#0f2742;color:#fff;font-size:16px;cursor:pointer;text-decoration:none;display:block;text-align:center;margin-top:18px}
.erro{background:#fee2e2;color:#991b1b;padding:10px;border-radius:10px;margin-bottom:14px}
.setup{margin-top:18px;text-align:center;font-size:14px}
</style>
</head>
<body>
<div class="wrap"><div class="card">
<h1>Localização autorizada</h1>
<div class="sub">Acesse seu painel particular.</div>

<?php if ($erro): ?><div class="erro"><?php echo h($erro); ?></div><?php endif; ?>

<?php if ($erro === ''): ?>
<form method="post">
<input type="hidden" name="csrf" value="<?php echo h(csrfToken()); ?>">
<label>Usuário</label>
<input name="usuario" autocomplete="username" required>
<label>Senha</label>
<input type="password" name="senha" autocomplete="current-password" required>
<button type="submit">Entrar</button>
</form>
<?php endif; ?>

<?php if (!$temAdmin && $erro === ''): ?>
<div class="setup"><a href="criar_admin.php">Criar primeiro administrador</a></div>
<?php endif; ?>
</div></div>
</body>
</html>
