Files
content-ingestion-agent/app/domain/models.py

28 lines
664 B
Python

from dataclasses import dataclass, field
from datetime import datetime, timezone
from typing import Any
@dataclass(frozen=True)
class SourceRef:
repository: str
path: str
revision: str = "main"
@dataclass(frozen=True)
class Document:
source: SourceRef
content: str
metadata: dict[str, Any] = field(default_factory=dict)
@dataclass(frozen=True)
class IngestionRequest:
source: SourceRef
destination: str = "sharepoint"
@dataclass(frozen=True)
class IngestionResult:
accepted: bool
document: Document | None = None
message: str = ""
created_at: datetime = field(default_factory=lambda: datetime.now(timezone.utc))