import type { Metadata } from "next"; import { notFound } from "next/navigation"; import { SchluesselBearbeiten } from "@/components/schluessel/SchluesselBearbeiten"; import { Breadcrumb } from "@/components/ui/Breadcrumb"; import { Seitenkopf } from "@/components/ui/Seitenkopf"; import { sitzungErforderlich } from "@/server/auth/sitzungspflicht"; import { personenAuswahl, schluesselDetail, vorlagenAuswahl } from "@/server/queries/schluessel"; export const metadata: Metadata = { title: "Schlüssel bearbeiten" }; export default async function SchluesselBearbeitenSeite({ params }: { params: Promise<{ id: string }> }) { const { id } = await params; await sitzungErforderlich("schluesselVerwalten", `/schluessel/${id}/bearbeiten`); const [s, personen, vorlagen] = await Promise.all([ schluesselDetail(id), personenAuswahl(), vorlagenAuswahl(), ]); if (!s) notFound(); // Eine inzwischen archivierte Person oder Vorlage bleibt waehlbar, solange sie zugeordnet // ist – sonst loeschte schon das blosse Speichern die Zuordnung. const personListe = personen.map((p) => ({ id: p.id, name: p.name, zusatz: p.organisation })); if (s.person && !personListe.some((p) => p.id === s.person?.id)) personListe.push({ ...s.person, zusatz: null }); const vorlagenListe = vorlagen.map((v) => ({ id: v.id, name: v.name })); if (s.vorlage && !vorlagenListe.some((v) => v.id === s.vorlage?.id)) vorlagenListe.push(s.vorlage); return (