首个可运行的版本

This commit is contained in:
2026-06-12 23:14:12 +08:00
commit b3d90c65f8
86 changed files with 4808 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
"""会话相关 Schema"""
from datetime import datetime
from pydantic import BaseModel, Field
class ConversationCreate(BaseModel):
type: str = Field(..., pattern="^(private|group)$")
name: str | None = Field(None, max_length=100)
member_ids: list[str] = Field(..., min_length=1)
class ConversationRead(BaseModel):
id: str
type: str
name: str | None = None
avatar_url: str | None = None
description: str | None = None
last_message_preview: str | None = None
last_message_at: datetime | None = None
created_at: datetime
unread_count: int = 0
model_config = {"from_attributes": True}
class ConversationDetail(ConversationRead):
members: list["MemberRead"] = []
class MemberRead(BaseModel):
id: str
user_id: str
username: str
nickname: str | None = None
avatar_url: str | None = None
role: str = "member"
joined_at: datetime
model_config = {"from_attributes": True}
class ConversationUpdate(BaseModel):
name: str | None = Field(None, max_length=100)
description: str | None = Field(None, max_length=500)
avatar_url: str | None = None
class GroupCreate(BaseModel):
name: str = Field(..., min_length=1, max_length=100)
description: str | None = Field(None, max_length=500)
member_ids: list[str] = Field(..., min_length=1)