b4d398270f
- 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>
38 lines
1.2 KiB
TypeScript
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
|
|
}
|