Files
2025-12-26 13:42:22 +08:00

51 lines
961 B
Python

"""
用户相关的 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