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

$erro = '';
$sucesso = '';

try {
    $jaExiste = (bool)$pdo->query(
        "SELECT id FROM usuarios_localizacao WHERE perfil='ADMIN' LIMIT 1"
    )->fetch();
} catch (Exception $e) {
    exit('Importe primeiro o arquivo 01_atualizar_banco.sql.');
}

if ($jaExiste) {
    header('Location: login.php');
    exit;
}

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

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

    if ($nome === '' || $usuario === '' || strlen($senha) < 8) {
        $erro = 'Preencha os campos e use uma senha com pelo menos 8 caracteres.';
    } elseif (!preg_match('/^[A-Za-z0-9._-]{3,80}$/', $usuario)) {
        $erro = 'O usuário deve ter pelo menos 3 caracteres e usar apenas letras, números, ponto, traço ou sublinhado.';
    } else {
        try {
            $stmt = $pdo->prepare(
                "INSERT INTO usuarios_localizacao (nome, usuario, senha_hash, perfil, ativo)
                 VALUES (?, ?, ?, 'ADMIN', 1)"
            );
            $stmt->execute([$nome, $usuario, password_hash($senha, PASSWORD_DEFAULT)]);
            $sucesso = 'Administrador criado. Agora faça login.';
        } catch (Exception $e) {
            $erro = 'Não foi possível criar o administrador. Verifique se o usuário já existe.';
        }
    }
}
?>
<!doctype html><html lang="pt-BR"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>Criar administrador</title><style>
*{box-sizing:border-box}body{margin:0;font-family:Arial;background:#f3f6f9}.wrap{max-width:460px;margin:60px auto;padding:18px}.card{background:#fff;padding:24px;border-radius:14px;box-shadow:0 4px 20px #0001}h1{color:#0f2742}label{display:block;font-weight:bold;margin:12px 0 6px}input{width:100%;padding:11px;border:1px solid #ccd5df;border-radius:9px}button{width:100%;margin-top:18px;padding:12px;border:0;border-radius:9px;background:#0f2742;color:white}.msg{padding:10px;border-radius:9px;margin:10px 0}.erro{background:#fee2e2;color:#991b1b}.ok{background:#dcfce7;color:#166534}</style></head>
<body><div class="wrap"><div class="card"><h1>Primeiro administrador</h1>
<?php if($erro):?><div class="msg erro"><?php echo h($erro);?></div><?php endif;?>
<?php if($sucesso):?><div class="msg ok"><?php echo h($sucesso);?> <a href="login.php">Ir ao login</a></div><?php else:?>
<form method="post"><input type="hidden" name="csrf" value="<?php echo h(csrfToken());?>">
<label>Nome</label><input name="nome" required>
<label>Usuário</label><input name="usuario" required>
<label>Senha</label><input type="password" name="senha" minlength="8" required>
<button>Criar administrador</button></form><?php endif;?>
</div></div></body></html>
