from datetime import datetime from typing import TYPE_CHECKING from core_shared import JSONValue from pydantic import BaseModel, Field if TYPE_CHECKING: from app.db.models import Message class MessageCreateRequest(BaseModel): session_id: str turn_id: str | None = None role: str content_type: str = "text" content_text: str | None = None content_json: dict[str, JSONValue] = Field(default_factory=dict) class MessageListRequest(BaseModel): session_id: str class MessageResponse(BaseModel): id: str session_id: str turn_id: str | None = None role: str content_type: str content_text: str | None = None content_json: dict[str, JSONValue] | None = None created_time: datetime @classmethod def from_entity(cls, entity: "Message") -> "MessageResponse": return cls.model_validate(entity, from_attributes=True)