import { NextResponse } from "next/server";

import { acessoDaRota, respostaDeErro } from "@/lib/regras/servidor/acesso-da-rota";
import { testarRegra } from "@/lib/regras/servidor/servico";

/* O que a regra pegaria agora, sem agir. Corpo: { id } de uma regra salva, ou
   { regra: { gatilho, acoes } } para testar antes de salvar. */

export async function POST(req: Request) {
  const r = await acessoDaRota();
  if ("erro" in r) return r.erro;
  const corpo = ((await req.json().catch(() => null)) ?? {}) as { id?: unknown; regra?: unknown };
  try {
    const resultado = typeof corpo.id === "string" && corpo.id ? await testarRegra(r.acesso, { id: corpo.id }) : await testarRegra(r.acesso, { regra: corpo.regra });
    return NextResponse.json({ ok: true, teste: resultado });
  } catch (erro) {
    return respostaDeErro(erro);
  }
}
