import type { OfferReportDraft, OfferEditableField } from '../domain/offerReport' import { mockOfferReportDrafts } from '../mock-data/offerReportDrafts' const store: OfferReportDraft[] = mockOfferReportDrafts.map(d => ({ ...d })) function buildDefaultFields(tenantName: string, propertyTitle: string): OfferEditableField[] { return [ { id: 'recipient_salutation', label: 'Anrede / Einleitung', value: `Sehr geehrte(r) ${tenantName}`, fieldType: 'text' }, { id: 'offer_intro', label: 'Angebotsbeschreibung', value: `Wir freuen uns, Ihnen folgendes Angebot für die Liegenschaft «${propertyTitle}» zu unterbreiten.`, fieldType: 'textarea' }, { id: 'highlighted_criteria', label: 'Highlights der Liegenschaft', value: 'Exzellente Lage · Modernster Ausbaustandard · Flexible Mietkonditionen', fieldType: 'textarea' }, { id: 'viewing_intro', label: 'Besichtigungstermine', value: 'Gerne laden wir Sie zu einer persönlichen Besichtigung ein. Folgende Termine sind verfügbar:', fieldType: 'textarea' }, { id: 'next_steps', label: 'Nächste Schritte', value: 'Nach Ihrer Terminbestätigung erhalten Sie alle weiteren Unterlagen.', fieldType: 'textarea' }, { id: 'closing', label: 'Abschluss', value: 'Mit freundlichen Grüssen\nWincasa AG', fieldType: 'textarea' }, ] } export const offerReportService = { async getByInquiry(inquiryId: string): Promise { return store.find(d => d.inquiryId === inquiryId) ?? null }, async create(inquiryId: string, propertyId: string, tenantName = '', propertyTitle = ''): Promise { const existing = store.find(d => d.inquiryId === inquiryId && d.propertyId === propertyId) if (existing) return existing const draft: OfferReportDraft = { id: crypto.randomUUID(), inquiryId, propertyId, editableFields: buildDefaultFields(tenantName, propertyTitle), viewingAppointments: [], status: 'draft', createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(), } store.push(draft) return draft }, async update(draftId: string, data: Partial): Promise { const idx = store.findIndex(d => d.id === draftId) if (idx === -1) throw new Error(`Offer draft ${draftId} not found`) store[idx] = { ...store[idx], ...data, updatedAt: new Date().toISOString() } return store[idx] }, async generatePdf(draftId: string): Promise { const idx = store.findIndex(d => d.id === draftId) if (idx === -1) throw new Error(`Offer draft ${draftId} not found`) store[idx] = { ...store[idx], status: 'finalized', pdfUrl: `/mock-reports/${draftId}.pdf`, updatedAt: new Date().toISOString(), } return store[idx] }, }