import type { StudioRender, StudioRenderStore } from '../domain/types' export class InMemoryStudioRenderStore implements StudioRenderStore { private readonly renders = new Map() async create(render: StudioRender): Promise { this.renders.set(render.id, render) return render } async getById(ownerId: string, renderId: string): Promise { const render = this.renders.get(renderId) return render?.ownerId === ownerId ? render : null } async update(ownerId: string, renderId: string, patch: Partial): Promise { const current = await this.getById(ownerId, renderId) if (!current) { return null } const next = { ...current, ...patch, updatedAt: new Date().toISOString(), } this.renders.set(renderId, next) return next } async listBySessionId(ownerId: string, sessionId: string): Promise { return [...this.renders.values()] .filter((render) => render.ownerId === ownerId && render.sessionId === sessionId) .sort((left, right) => left.createdAt.localeCompare(right.createdAt)) } }