<?php
declare(strict_types=1);

require_once __DIR__ . '/_bootstrap.php';
admin_require_login();

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    header('Location: index.php');
    exit;
}

$idUsuario = (int) ($_POST['id_usuario'] ?? 0);
$tipo = trim((string) ($_POST['tipo'] ?? 'observacao'));
$notaRaw = trim((string) ($_POST['nota'] ?? ''));
$comentario = trim((string) ($_POST['comentario'] ?? ''));
$retorno = trim((string) ($_POST['retorno'] ?? ''));

if (!in_array($tipo, ['elogio', 'reclamacao', 'observacao'], true)) {
    $tipo = 'observacao';
}

$nota = null;
if ($notaRaw !== '') {
    $nota = (int) $notaRaw;
    if ($nota < 1 || $nota > 5) {
        admin_flash('Nota deve ser entre 1 e 5.', 'error');
        header('Location: ' . ($retorno !== '' ? $retorno : 'index.php'));
        exit;
    }
}

if ($idUsuario <= 0 || $comentario === '') {
    admin_flash('Informe um comentario para registrar.', 'error');
    header('Location: ' . ($retorno !== '' ? $retorno : 'index.php'));
    exit;
}

try {
    $stmt = db()->prepare(
        'INSERT INTO usuario_feedbacks (id_usuario, tipo, origem, nota, comentario, registrado_por)
         VALUES (?, ?, "admin", ?, ?, ?)'
    );
    $stmt->execute([$idUsuario, $tipo, $nota, $comentario, admin_current_user()]);
    admin_flash('Registro salvo com sucesso.');
} catch (Throwable $e) {
    admin_flash('Erro ao registrar feedback.', 'error');
}

header('Location: ' . ($retorno !== '' ? $retorno : 'index.php'));
exit;
