from pydantic import BaseModel, Field from typing import Optional from datetime import datetime from app.schemas.user import User class UserImageBase(BaseModel): """用户形象基础模式""" image_url: str = Field(..., description="图片URL") is_default: bool = Field(False, description="是否为默认形象") class UserImageCreate(UserImageBase): """创建用户形象请求""" user_id: Optional[int] = Field(None, description="用户ID,可选,通常由系统设置") class UserImageInDB(UserImageBase): """数据库中的用户形象数据""" id: int user_id: int create_time: datetime class Config: from_attributes = True class UserImage(UserImageInDB): """用户形象响应模式""" pass class UserImageUpdate(BaseModel): """更新用户形象请求""" image_url: Optional[str] = Field(None, description="图片URL") is_default: Optional[bool] = Field(None, description="是否为默认形象") class UserImageWithUser(UserImage): """包含用户信息的用户形象响应""" user: Optional[User] = Field(None, description="用户信息") class Config: from_attributes = True