37 lines
884 B
Python
37 lines
884 B
Python
from pydantic import BaseModel, Field
|
|
from typing import Optional, List
|
|
from datetime import datetime
|
|
|
|
class UserBase(BaseModel):
|
|
username: str = Field(..., description="用户名")
|
|
|
|
class UserCreate(UserBase):
|
|
password: str = Field(..., description="密码")
|
|
role: Optional[str] = Field("user", description="用户角色")
|
|
|
|
class UserUpdate(BaseModel):
|
|
password: Optional[str] = Field(None, description="密码")
|
|
role: Optional[str] = Field(None, description="用户角色")
|
|
|
|
class UserInDB(UserBase):
|
|
user_id: int
|
|
role: str
|
|
created_at: datetime
|
|
|
|
class Config:
|
|
orm_mode = True
|
|
|
|
class User(UserInDB):
|
|
pass
|
|
|
|
class UserList(BaseModel):
|
|
users: List[User]
|
|
total: int
|
|
|
|
class Token(BaseModel):
|
|
access_token: str
|
|
token_type: str
|
|
|
|
class TokenData(BaseModel):
|
|
username: Optional[str] = None
|
|
role: Optional[str] = None |