""" 用户相关的 Pydantic 模式 """ from datetime import datetime from typing import Optional from pydantic import BaseModel, EmailStr class UserBase(BaseModel): """用户基础模式""" username: str email: Optional[EmailStr] = None class UserCreate(UserBase): """创建用户请求模式""" password: str class UserUpdate(BaseModel): """更新用户请求模式""" username: Optional[str] = None email: Optional[EmailStr] = None password: Optional[str] = None class UserInDB(UserBase): """数据库中的用户模式""" id: int created_at: datetime class Config: from_attributes = True class User(UserInDB): """用户响应模式(不包含敏感信息)""" pass class Token(BaseModel): """JWT 令牌响应模式""" access_token: str token_type: str = "bearer" class TokenData(BaseModel): """令牌数据模式""" username: Optional[str] = None