haiku.rag/haiku_rag_slim/haiku/rag/ingester/batch.py
2026-06-22 11:33:26 +03:00

33 lines
685 B
Python

from datetime import datetime
from pydantic import BaseModel
from haiku.rag.ingester.queue.models import JobOp
class BatchChange(BaseModel):
op: JobOp
source_id: str
uri: str
revision: str | None = None
discovered_at: datetime
class BatchSourceSummary(BaseModel):
source_id: str
upsert_count: int = 0
delete_count: int = 0
unchanged_count: int = 0
ignored_delete_count: int = 0
class BatchManifest(BaseModel):
version: int = 1
generated_at: datetime
sources: list[BatchSourceSummary] = []
changes: list[BatchChange] = []
class BatchDryRunReport(BaseModel):
manifest: BatchManifest
failed_sweeps: list[str] = []