import type { CasePreview } from '@/lib/chat/preview' /** * Die Form, in der eine Nachricht die Grenze zur Anzeige überquert. * * Datumsangaben als Zeichenkette, weil ein `Date` diese Grenze nicht sauber * überquert, und der Text einer zurückgezogenen Nachricht ist **leer** - nicht * ausgeblendet. Was der Client nicht bekommt, kann er nicht zeigen. */ export type ChatMessageView = { id: string body: string authorId: string authorName: string replyToId: string | null editedAt: string | null withdrawnAt: string | null adoptedEntryId: string | null createdAt: string /** Nur zu Aktenzeichen, die im Text vorkommen. Serverseitig aufgelöst. */ previews: Record } const CASE_NUMBER = /\b[A-Za-z][A-Za-z0-9-]*-\d{4}-\d{3,8}\b/g export function extractCaseNumbers(body: string): string[] { return [...new Set(body.match(CASE_NUMBER) ?? [])] }