"""用户相关 Schema""" from datetime import datetime from pydantic import BaseModel, Field class UserRead(BaseModel): id: str username: str email: str avatar_url: str | None = None bio: str | None = None status: str = "offline" created_at: datetime model_config = {"from_attributes": True} class UserProfile(BaseModel): """他人可见的公开信息""" id: str username: str avatar_url: str | None = None bio: str | None = None status: str = "offline" model_config = {"from_attributes": True} class UserUpdate(BaseModel): username: str | None = Field(None, min_length=2, max_length=50) bio: str | None = Field(None, max_length=200) avatar_url: str | None = None class PasswordChange(BaseModel): old_password: str new_password: str = Field(..., min_length=6, max_length=100) class UserSearchResult(BaseModel): id: str username: str avatar_url: str | None = None bio: str | None = None status: str = "offline" model_config = {"from_attributes": True}