<?php
require_once __DIR__ . '/db.php';

iniciar_sessao();
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    responder(['erro' => 'Método não permitido'], 405);
}

$d = corpo_json();
$nome = trim($d['nome'] ?? '');
$email = mb_strtolower(trim($d['email'] ?? ''));
$senha = $d['senha'] ?? '';

if ($nome === '' || mb_strlen($nome) > 120) {
    responder(['erro' => 'Informe seu nome.'], 422);
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    responder(['erro' => 'E-mail inválido.'], 422);
}
if (mb_strlen($senha) < 8) {
    responder(['erro' => 'A senha precisa ter pelo menos 8 caracteres.'], 422);
}
if (usuario_por_email($email)) {
    responder(['erro' => 'Já existe uma conta com este e-mail. Tente entrar.'], 409);
}

$st = db()->prepare('INSERT INTO usuarios (nome, email, senha_hash) VALUES (?, ?, ?)');
$st->execute([$nome, $email, password_hash($senha, PASSWORD_DEFAULT)]);

session_regenerate_id(true);
$_SESSION['usuario_id'] = (int) db()->lastInsertId();

responder(['ok' => true, 'nome' => $nome]);
