"""消息相关 Schema""" from datetime import datetime from pydantic import BaseModel, Field class MessageSend(BaseModel): conversation_id: str content: str = Field(..., min_length=1, max_length=5000) type: str = Field(default="text", pattern="^(text|image|file|voice)$") reply_to_id: str | None = None mentioned_user_ids: list[str] | None = None class MessageRead(BaseModel): id: str conversation_id: str sender_id: str sender_name: str | None = None sender_avatar: str | None = None type: str content: str reply_to_id: str | None = None reply_to_content: str | None = None reply_to_sender_name: str | None = None mentions: list[str] | None = None is_deleted: bool = False is_recalled: bool = False reactions: list[dict] = [] created_at: datetime model_config = {"from_attributes": True} class MessagePage(BaseModel): messages: list[MessageRead] has_more: bool = False next_cursor: str | None = None class MarkReadRequest(BaseModel): message_id: str