import { NextResponse } from "next/server";
import { respostaDasCamadas } from "@/lib/banner-editor/camadas-do-servidor";
import { documentoLimpo, paginasDoDocumento } from "@/lib/banner-editor/documento";
import { quemPodeCriarArtes } from "@/lib/banner-editor/servidor";

export const runtime = "nodejs";
export const dynamic = "force-dynamic";
export const maxDuration = 180;

/** As camadas do vídeo de uma página do editor (a conta mora em lib/banner-editor/camadas-do-servidor.ts). */
export async function POST(request: Request) {
  const acesso = await quemPodeCriarArtes();
  if ("falha" in acesso && acesso.falha) return NextResponse.json({ error: acesso.falha.texto }, { status: acesso.falha.status, headers: { "Cache-Control": "no-store" } });
  const corpo = (await request.json().catch(() => ({}))) as { documento?: unknown; largura?: unknown; altura?: unknown; limite?: unknown; contador?: { id?: unknown; valores?: unknown } };
  const largura = Number(corpo.largura) || 1080;
  const altura = Number(corpo.altura) || 1080;
  return respostaDasCamadas(paginasDoDocumento(documentoLimpo(corpo.documento, largura, altura))[0], corpo);
}
