// ── API: relevante modelmail-categorieën uit het dossiertype (MCP) ──────────
// Structuur-only endpoint, net als /api/dossier/aktetype: geeft op basis van
// enkel het dossiertype de relevante modelbrief-categorieën terug, met per
// categorie de beschikbare modelbrieven (id + titel) in de seed-bibliotheek.
// Geen persoonsgegevens — de agent kiest hiermee het juiste hoofdstuk en vult
// de echte parameters pas lokaal in via haalModelbrief.

import { NextResponse } from "next/server";
import { relevanteBriefCategorieen } from "@/lib/dossier/modelmails";
import { seedBrieven, briefCategorieLabels } from "@/data/modelbrieven";
import type { Dossiertype } from "@/lib/dossier/types";

const DOSSIERTYPES: Dossiertype[] = [
  "verkoop-met-krediet",
  "verkoop-zonder-krediet",
  "schenking",
  "nalatenschap",
  "aanpassing-statuten-vennootschap",
  "keuzetestament",
  "testament-gezinswoning",
];

export async function POST(request: Request) {
  let body: unknown;
  try {
    body = await request.json();
  } catch {
    return NextResponse.json({ fout: "Ongeldige JSON-body." }, { status: 400 });
  }

  const { dossiertype } = (body ?? {}) as Record<string, unknown>;

  if (typeof dossiertype !== "string" || !DOSSIERTYPES.includes(dossiertype as Dossiertype)) {
    return NextResponse.json(
      { fout: `'dossiertype' is verplicht en moet één van ${DOSSIERTYPES.join(", ")} zijn.` },
      { status: 400 }
    );
  }

  const categorieen = relevanteBriefCategorieen(dossiertype as Dossiertype);
  const resultaat = categorieen.map((categorie) => ({
    categorie,
    label: briefCategorieLabels[categorie],
    modelbrieven: seedBrieven
      .filter((b) => b.categorie === categorie && (b.taal ?? "nl") === "nl")
      .map((b) => ({ id: b.id, titel: b.titel })),
  }));

  return NextResponse.json({
    categorieen: resultaat,
    toelichting:
      categorieen.length === 0
        ? "Geen categorie eenduidig af te leiden uit dit dossiertype — de notaris kiest zelf de passende correspondentie."
        : "Kies de passende modelbrief(en) en vul de parameters lokaal in via haalModelbrief.",
  });
}
