import type { Metadata } from 'next' import { notFound } from 'next/navigation' import { db } from '@/lib/db' import { requireUser } from '@/lib/auth/current' import { canEditCase } from '@/lib/access/caseWrite' import { loadVisibleCase } from '@/lib/cases/service' import { listDocuments, listTemplatesFor } from '@/lib/documents/service' import { listAttachments } from '@/lib/files/service' import { toAttachmentViews } from '@/lib/files/view' import { de } from '@/lib/i18n/de' import { DocumentList } from '@/components/documents/DocumentList' import { NewDocument } from '@/components/documents/NewDocument' import { Attachments } from '@/components/files/Attachments' export const metadata: Metadata = { title: de.document.heading } export const dynamic = 'force-dynamic' /** * Was der Akte beiliegt: erzeugte Dokumente und hochgeladene Dateien. */ export default async function CaseDocumentsPage({ params, }: { params: Promise<{ caseNumber: string }> }) { const user = await requireUser() const { caseNumber } = await params const akte = await loadVisibleCase(user.permissions, caseNumber) if (!akte) notFound() const canEdit = canEditCase(user.permissions, akte).ok const [documents, anhaenge, templates, levels] = await Promise.all([ listDocuments(user.permissions, { caseId: akte.id }), listAttachments(user.permissions, { caseId: akte.id }), canEdit ? listTemplatesFor('CASE_DOCUMENT') : Promise.resolve([]), db.clearanceLevelConfig.findMany({ orderBy: { level: 'asc' } }), ]) return (

{de.document.heading}

[l.level, l.name]))} /> {canEdit ? ( l.level <= user.permissions.clearanceLevel)} defaultLevel={Math.min(akte.classification, user.permissions.clearanceLevel)} caseNumber={akte.caseNumber} /> ) : null}

{de.attachment.heading}

) }