memory.py 971 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from typing import TYPE_CHECKING
  2. from pydantic import BaseModel
  3. from core_domain import (
  4. MemoryCreateContract,
  5. MemoryItemContract,
  6. MemorySearchRequestContract,
  7. MemorySearchResultContract,
  8. MemoryStatus,
  9. )
  10. if TYPE_CHECKING:
  11. from app.db.models import MemoryItem
  12. class MemoryCreateRequest(MemoryCreateContract):
  13. pass
  14. class MemoryStatusUpdateRequest(BaseModel):
  15. tenant_id: str
  16. status: MemoryStatus
  17. class MemorySearchRequest(MemorySearchRequestContract):
  18. pass
  19. class MemoryResponse(MemoryItemContract):
  20. @classmethod
  21. def from_entity(cls, entity: "MemoryItem") -> "MemoryResponse":
  22. return cls.model_validate(entity, from_attributes=True)
  23. class MemorySearchResultResponse(MemorySearchResultContract):
  24. item: MemoryResponse
  25. @classmethod
  26. def from_entity(cls, entity: "MemoryItem", score: float) -> "MemorySearchResultResponse":
  27. return cls(item=MemoryResponse.from_entity(entity), score=score)