Files
property-match/src/domain/inquiryReport.ts
T
Benjamin Sutter b4d398270f 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>
2026-05-19 19:20:13 +02:00

38 lines
1.2 KiB
TypeScript

export type ReportObjectFieldKey =
| 'title' | 'location' | 'areaSqm' | 'rentPricePerSqm' | 'availabilityDate'
| 'leaseTerm' | 'breakoutOption' | 'currentTenant' | 'propertyNumber'
| 'assetType' | 'floor' | 'parking' | 'publicTransportScore'
| 'ceilingHeightM' | 'loadingDocksCount' | 'powerSupplyKva'
| 'hasServerRoom' | 'isBarrierFree' | 'fitOut'
| 'prestigeScore' | 'visibilityScore' | 'footfallScore' | 'commuterAccessScore'
| 'talentAccessScore' | 'esgScore' | 'flexibilityScore'
| 'expansionPotentialScore' | 'taxEnvironmentScore'
| 'description' | 'images' | 'mapImageUrl' | 'units'
| 'softFactors' | 'dataQuality'
export interface ReportObjectFieldSelection {
propertyId: string
mandatoryFields: ReportObjectFieldKey[]
selectedOptionalFields: ReportObjectFieldKey[]
}
export interface ReportEditableField {
id: string
label: string
value: string
fieldType: 'text' | 'textarea'
}
export interface InquiryPreparationReportDraft {
id: string
inquiryId: string
selectedPropertyIds: string[]
fieldSelections: ReportObjectFieldSelection[]
marketSignalPropertyId?: string
editableFields: ReportEditableField[]
status: 'draft' | 'finalized'
pdfUrl?: string
createdAt: string
updatedAt: string
}