import type { ExposeDraft } from '../domain/expose' import type { IExposeProvider } from './IExposeProvider' /** * Entwurfsablage der Demo — in-memory, wie alle Mockup-Provider. * * Der Schlüssel ist das Paar aus Lead und Objekt: derselbe Lead kann mehrere * Objekte empfehlen, und jedes bekommt sein eigenes Exposé. */ const store = new Map() function key(leadId: string, propertyId: string): string { return `${leadId}::${propertyId}` } export const MockupExposeProvider: IExposeProvider = { async getDraft(leadId, propertyId) { return store.get(key(leadId, propertyId)) ?? null }, async save(draft) { const saved: ExposeDraft = { ...draft, updatedAt: new Date().toISOString() } store.set(key(draft.leadId, draft.propertyId), saved) return saved }, async markGenerated(draftId) { for (const [k, d] of store) { if (d.id === draftId) { const updated: ExposeDraft = { ...d, generatedAt: new Date().toISOString() } store.set(k, updated) return updated } } throw new Error(`Exposé-Entwurf ${draftId} nicht gefunden`) }, }