import { getAdmin } from "../../../../../../lib/admin-auth";
import { ensureApplicationPdf } from "../../../../../../server/application-pdf.ts";
import { audit } from "../../../../../../lib/admin-operations";
export async function GET(
  _request: Request,
  { params }: { params: Promise<{ id: string }> },
) {
  const admin = await getAdmin();
  if (!admin) return Response.json({ error: "unauthorized" }, { status: 401 });
  const { id } = await params;
  try {
    const bytes = await ensureApplicationPdf(id);
    await audit(admin.userId, "PDF_ACCESSED", "APPLICATION", id);
    return new Response(bytes as BodyInit, {
      headers: {
        "content-type": "application/pdf",
        "content-disposition": 'inline; filename="ficha-inscricao.pdf"',
        "cache-control": "private, no-store",
        "x-content-type-options": "nosniff",
      },
    });
  } catch {
    return Response.json({ error: "pdf_unavailable" }, { status: 404 });
  }
}
export async function POST(
  _request: Request,
  { params }: { params: Promise<{ id: string }> },
) {
  const admin = await getAdmin();
  if (!admin) return Response.json({ error: "unauthorized" }, { status: 401 });
  const { id } = await params;
  try {
    await ensureApplicationPdf(id, true);
    await audit(admin.userId, "PDF_REGENERATED", "APPLICATION", id);
    return Response.json({ ok: true });
  } catch {
    return Response.json({ error: "pdf_unavailable" }, { status: 503 });
  }
}
