feat: Anfragencenter Parts A–E — read/unread, prep wizard, offer flow, report preview

- Part A: Replace InquiryStatus badges with WhatsApp-style unread indicators
  (isRead, unreadCount, lastReadAt on Inquiry; markThreadAsRead in service + hook)
- Part B: RelatedPropertyCardPanel — reposition "Objekt ansehen", add "Weitere
  Matches" section via matchService.getAdditionalMatchesForInquiry
- Part C: PreparationWizard 4-step dialog — property selection, report generation
  progress, field editing + ReportObjectFieldSelector, PDF preview + finalize
- Part D: OfferCreationWizard 4-step dialog triggered from first tenant message —
  data capture, field editing, viewing appointments, PDF generation + attach to reply
- Part E: LatentInquiryReportPreview (2-page A4 doc), ReportObjectFieldSelector
  (5 accordion groups, 35+ optional fields), mapImageUrl on Property domain

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Sutter
2026-05-19 19:20:13 +02:00
parent 279b55d70e
commit b4d398270f
26 changed files with 1874 additions and 188 deletions
+25
View File
@@ -0,0 +1,25 @@
export interface ViewingAppointmentOption {
id: string
date: string
timeSlot: string
contactPerson?: string
}
export interface OfferEditableField {
id: string
label: string
value: string
fieldType: 'text' | 'textarea'
}
export interface OfferReportDraft {
id: string
inquiryId: string
propertyId: string
editableFields: OfferEditableField[]
viewingAppointments: ViewingAppointmentOption[]
status: 'draft' | 'finalized'
pdfUrl?: string
createdAt: string
updatedAt: string
}