Files
chat/backend/app/schemas/message.py
T
2026-06-14 11:16:42 +08:00

44 lines
1.0 KiB
Python

"""消息相关 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