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:
@@ -0,0 +1,44 @@
|
||||
import type { OfferReportDraft } from '../domain/offerReport'
|
||||
|
||||
export const mockOfferReportDrafts: OfferReportDraft[] = [
|
||||
{
|
||||
id: 'offer-rep-001',
|
||||
inquiryId: 'inq-004',
|
||||
propertyId: 'prop-012',
|
||||
editableFields: [
|
||||
{ id: 'recipient_salutation', label: 'Anrede / Einleitung', value: 'Sehr geehrter Herr Hofer', fieldType: 'text' },
|
||||
{ id: 'offer_intro', label: 'Angebotsbeschreibung', value: 'Wir freuen uns, Ihnen das nachfolgende Angebot für die Bürofläche Stadtturm Zug unterbreiten zu können.', fieldType: 'textarea' },
|
||||
{ id: 'highlighted_criteria', label: 'Ihre Anforderungen – unsere Stärken', value: 'Repräsentativer Standort im Zentrum Zug · Modernster Ausbaustandard · Flexible Mietdauer ab 3 Jahren', fieldType: 'textarea' },
|
||||
{ id: 'viewing_intro', label: 'Besichtigung', value: 'Gerne zeigen wir Ihnen die Fläche persönlich. Bitte wählen Sie einen der folgenden Termine:', fieldType: 'textarea' },
|
||||
{ id: 'next_steps', label: 'Nächste Schritte', value: 'Nach Ihrer Terminbestätigung erhalten Sie eine Detailbroschüre sowie den Mietvertragsentwurf.', fieldType: 'textarea' },
|
||||
{ id: 'closing', label: 'Abschluss', value: 'Mit freundlichen Grüssen\nWincasa AG', fieldType: 'textarea' },
|
||||
],
|
||||
viewingAppointments: [
|
||||
{ id: 'va-001-1', date: '2026-05-22', timeSlot: '10:00–11:00', contactPerson: 'Peter Müller' },
|
||||
{ id: 'va-001-2', date: '2026-05-23', timeSlot: '14:00–15:00', contactPerson: 'Peter Müller' },
|
||||
],
|
||||
status: 'draft',
|
||||
createdAt: '2026-05-15T10:00:00Z',
|
||||
updatedAt: '2026-05-15T10:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 'offer-rep-005',
|
||||
inquiryId: 'inq-005',
|
||||
propertyId: 'prop-007',
|
||||
editableFields: [
|
||||
{ id: 'recipient_salutation', label: 'Anrede / Einleitung', value: 'Sehr geehrte Frau Wyss', fieldType: 'text' },
|
||||
{ id: 'offer_intro', label: 'Angebotsbeschreibung', value: 'Wir freuen uns, Ihnen die Bürofläche an der Thurgauerstrasse 40 in Zürich-Oerlikon anzubieten.', fieldType: 'textarea' },
|
||||
{ id: 'highlighted_criteria', label: 'Highlights', value: 'Vollsanierte Fläche (2024) · Ausgezeichnete ÖV-Anbindung · Expansionspotenzial vorhanden', fieldType: 'textarea' },
|
||||
{ id: 'viewing_intro', label: 'Besichtigung', value: 'Wir laden Sie herzlich zu einer Besichtigung ein:', fieldType: 'textarea' },
|
||||
{ id: 'next_steps', label: 'Nächste Schritte', value: 'Nach Ihrer Rückmeldung senden wir Ihnen den vollständigen Grundriss sowie das Exposé zu.', fieldType: 'textarea' },
|
||||
{ id: 'closing', label: 'Abschluss', value: 'Mit freundlichen Grüssen\nWincasa AG', fieldType: 'textarea' },
|
||||
],
|
||||
viewingAppointments: [
|
||||
{ id: 'va-005-1', date: '2026-05-21', timeSlot: '09:00–10:00', contactPerson: 'Sandra Keller' },
|
||||
],
|
||||
status: 'finalized',
|
||||
pdfUrl: '/mock-reports/offer-rep-005.pdf',
|
||||
createdAt: '2026-05-14T13:00:00Z',
|
||||
updatedAt: '2026-05-14T16:00:00Z',
|
||||
},
|
||||
]
|
||||
Reference in New Issue
Block a user