56 lines
1.0 KiB
Python
56 lines
1.0 KiB
Python
from __future__ import annotations
|
|
|
|
from datetime import datetime
|
|
from enum import Enum
|
|
from typing import ClassVar, Literal
|
|
from uuid import UUID
|
|
|
|
from pydantic import BaseModel, ConfigDict
|
|
|
|
from schemas.memories.memory_content import (
|
|
TeamMember,
|
|
UserMemoryContent,
|
|
UserPreferences,
|
|
WorkHabit,
|
|
WorkProfileContent,
|
|
WorkProject,
|
|
)
|
|
|
|
|
|
class MemoryType(str, Enum):
|
|
USER = "user"
|
|
WORK = "work"
|
|
|
|
|
|
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"]
|
|
content: UserMemoryContent | WorkProfileContent
|
|
status: MemoryStatus
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
|
|
__all__ = [
|
|
"MemoryModel",
|
|
"MemoryStatus",
|
|
"MemoryType",
|
|
"TeamMember",
|
|
"UserMemoryContent",
|
|
"UserPreferences",
|
|
"WorkHabit",
|
|
"WorkProfileContent",
|
|
"WorkProject",
|
|
]
|