Files
social-app/backend/src/schemas/memories/__init__.py
T

71 lines
1.4 KiB
Python
Raw Normal View History

from __future__ import annotations
from datetime import datetime
from enum import Enum
from typing import Any, ClassVar, Literal
from uuid import UUID
from pydantic import BaseModel, ConfigDict, Field
class MemoryType(str, Enum):
USER = "user"
WORK = "work"
class MemorySource(str, Enum):
MANUAL = "manual"
AGENT = "agent"
IMPORTED = "imported"
class MemoryStatus(str, Enum):
ACTIVE = "active"
DISABLED = "disabled"
class MemoryModel(BaseModel):
model_config: ClassVar[ConfigDict] = ConfigDict(
extra="forbid", from_attributes=True
)
id: UUID
owner_id: UUID
agent_id: UUID | None = None
memory_type: Literal["user", "work"]
title: str | None = None
content: dict[str, Any]
source: MemorySource
status: MemoryStatus
created_at: datetime
updated_at: datetime
class MemoryContext(BaseModel):
model_config: ClassVar[ConfigDict] = ConfigDict(extra="forbid")
memory_type: MemoryType
source: MemorySource
title: str | None = None
content: dict[str, Any]
created_at: datetime
updated_at: datetime
class MemoryListResponse(BaseModel):
model_config: ClassVar[ConfigDict] = ConfigDict(extra="forbid")
owner_id: UUID
memories: list[MemoryContext] = Field(default_factory=list)
total: int
__all__ = [
"MemoryContext",
"MemoryListResponse",
"MemoryModel",
"MemorySource",
"MemoryStatus",
"MemoryType",
]