""" Pydantic схемы для Message """ from uuid import UUID from datetime import datetime from typing import Any from pydantic import BaseModel from src.domain.entities.message import MessageRole class MessageBase(BaseModel): """Базовая схема сообщения""" content: str role: MessageRole sources: dict[str, Any] = {} class MessageCreate(MessageBase): """Схема создания сообщения""" conversation_id: UUID class MessageUpdate(BaseModel): """Схема обновления сообщения""" content: str | None = None sources: dict[str, Any] | None = None class MessageResponse(BaseModel): """Схема ответа с сообщением""" message_id: UUID conversation_id: UUID content: str role: MessageRole sources: dict[str, Any] created_at: datetime @classmethod def from_entity(cls, message: "Message") -> "MessageResponse": """Создать из доменной сущности""" return cls( message_id=message.message_id, conversation_id=message.conversation_id, content=message.content, role=message.role, sources=message.sources, created_at=message.created_at ) class Config: from_attributes = True