38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
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 |