"""Memory enrichment scheduling boundary.""" from __future__ import annotations from dataclasses import dataclass @dataclass(frozen=True) class MemoryEnrichmentRequest: user_id: str source_id: str memoir_correlation_id: str | None = None class MemoryEnrichmentScheduler: """Adapter around the Celery enrichment task name and queue policy.""" def schedule(self, request: MemoryEnrichmentRequest) -> str | None: from app.tasks.memory_enrichment_tasks import schedule_memory_enrichment return schedule_memory_enrichment( request.user_id, request.source_id, memoir_correlation_id=request.memoir_correlation_id, ) def schedule_many( self, user_id: str, source_ids: list[str], *, memoir_correlation_id: str | None = None, ) -> list[str]: task_ids: list[str] = [] for source_id in source_ids: if not source_id: continue task_id = self.schedule( MemoryEnrichmentRequest( user_id=user_id, source_id=source_id, memoir_correlation_id=memoir_correlation_id, ) ) if task_id: task_ids.append(task_id) return task_ids __all__ = ["MemoryEnrichmentRequest", "MemoryEnrichmentScheduler"]