<?php
require_once __DIR__.'/../config/config.php';
require_once __DIR__.'/../config/database.php';
require_once __DIR__.'/../includes/functions.php';
require_once __DIR__.'/../includes/admin_functions.php';
require_once __DIR__.'/../includes/admin_auth_view.php';

try { $count = afAdminCount($pdo); } catch (Throwable $e) { $count = -1; }
if ($count > 0) { header('Location: '.SITE_URL.'/admin/login.php'); exit; }
$error = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    try {
        if (!validarCsrfToken($_POST[CSRF_TOKEN_NAME] ?? '')) throw new RuntimeException('Sessão expirada. Recarregue a página.');
        if ($count < 0) throw new RuntimeException('Importe primeiro o arquivo SQL do painel administrativo.');
        $password = (string)($_POST['senha'] ?? '');
        if (!hash_equals($password, (string)($_POST['confirmar_senha'] ?? ''))) throw new RuntimeException('As senhas não coincidem.');
        $id = afAdminCreateUser($pdo, (string)($_POST['nome'] ?? ''), (string)($_POST['email'] ?? ''), $password, 'administrador', false, true);
        $st = $pdo->prepare('SELECT * FROM af_admin_users WHERE id=?'); $st->execute([$id]);
        afAdminCreateSession($pdo, $st->fetch(), false);
        header('Location: '.SITE_URL.'/pages/admin.php'); exit;
    } catch (Throwable $e) { $error = $e->getMessage(); }
}
afAdminAuthStart('Criar primeiro administrador', 'Esta tela funciona somente enquanto não existir nenhuma conta administrativa.');
if ($count < 0) echo '<div class="admin-auth-alert">As tabelas administrativas ainda não existem. Importe o SQL enviado no pacote.</div>';
if ($error !== '') echo '<div class="admin-auth-alert">'.esc($error).'</div>';
?>
<form method="post" class="admin-auth-form" autocomplete="off">
  <?=camposCsrf()?>
  <label>Nome completo<input name="nome" maxlength="120" required value="<?=esc($_POST['nome'] ?? '')?>"></label>
  <label>E-mail administrativo<input type="email" name="email" maxlength="190" required value="<?=esc($_POST['email'] ?? '')?>"></label>
  <label>Senha<input type="password" name="senha" required autocomplete="new-password"><span class="admin-auth-password-help">Mínimo de 10 caracteres, com maiúscula, minúscula e número.</span></label>
  <label>Confirmar senha<input type="password" name="confirmar_senha" required autocomplete="new-password"></label>
  <button class="admin-auth-button" type="submit">CRIAR ADMINISTRADOR</button>
</form>
<div class="admin-auth-note">Crie a conta e guarde a senha em local seguro. Depois da criação, esta página será bloqueada automaticamente.</div>
<?php afAdminAuthEnd();
