import { notFound } from 'next/navigation' import { SeitenKopf } from '@/components/seiten-kopf' import { KuendigungsAssistent } from '@/components/vertraege/kuendigungs-assistent' import { aktiveBetreute, erfordereBenutzer, erfordereZugang } from '@/lib/auth/sitzung' import { db, nichtGeloescht } from '@/lib/db' import { oeffnen } from '@/lib/crypto/feld' import { alsIsoTag, heuteAlsTag } from '@/lib/fristen/datum' import { briefkopfBauen } from '@/lib/vertraege/briefkopf' import { kuendigungsassistent } from '@/lib/vertraege/kuendigungsassistent' import { laufzeitAusVertrag } from '@/lib/vertraege/kuendigung' import { VERTRAG_ART_BESCHRIFTUNG } from '@/lib/vertraege/konstanten' export const dynamic = 'force-dynamic' export default async function VertragKuendigen({ params, }: { params: Promise<{ id: string }> }) { const { id } = await params const benutzer = await erfordereBenutzer(`/vertraege/${id}/kuendigen`) const aktive = await aktiveBetreute(benutzer) if (!aktive) return null const { darfSchreiben } = await erfordereZugang(aktive.id, 'VERTRAEGE', 'lesen') const schreiben = darfSchreiben('VERTRAEGE') const vertrag = await db.vertrag.findFirst({ where: { id, betreuteId: aktive.id, ...nichtGeloescht }, }) if (!vertrag) notFound() const offen = oeffnen('Vertrag', vertrag) const heute = heuteAlsTag() const paket = kuendigungsassistent({ kopf: briefkopfBauen({ betreute: aktive, benutzer }), empfaenger: { gesellschaft: vertrag.gesellschaft, anschrift: null }, vertragsbezeichnung: `${VERTRAG_ART_BESCHRIFTUNG[vertrag.art]} — ${vertrag.bezeichnung}`, vertragsnummer: offen.vertragsnummer, art: vertrag.art, laufzeit: { beginnAm: vertrag.beginnAm, endeAm: vertrag.endeAm, laufzeitJahre: laufzeitAusVertrag(vertrag.beginnAm, vertrag.endeAm), kuendigungsfristMonate: vertrag.kuendigungsfristMonate, }, heute, }) return (