43 lines
857 B
Python
43 lines
857 B
Python
|
|
from pydantic import BaseModel
|
||
|
|
from datetime import datetime
|
||
|
|
|
||
|
|
|
||
|
|
class UserOut(BaseModel):
|
||
|
|
user_id: int
|
||
|
|
username: str
|
||
|
|
display_name: str
|
||
|
|
email: str | None = None
|
||
|
|
phone: str | None = None
|
||
|
|
avatar: str | None = None
|
||
|
|
status: int
|
||
|
|
created_at: datetime
|
||
|
|
|
||
|
|
class Config:
|
||
|
|
from_attributes = True
|
||
|
|
|
||
|
|
|
||
|
|
class UserMe(UserOut):
|
||
|
|
roles: list[str] = []
|
||
|
|
|
||
|
|
|
||
|
|
class UserCreate(BaseModel):
|
||
|
|
username: str
|
||
|
|
display_name: str
|
||
|
|
email: str | None = None
|
||
|
|
phone: str | None = None
|
||
|
|
password: str | None = None
|
||
|
|
status: int = 1
|
||
|
|
role_ids: list[int] = []
|
||
|
|
|
||
|
|
|
||
|
|
class UserUpdate(BaseModel):
|
||
|
|
display_name: str | None = None
|
||
|
|
email: str | None = None
|
||
|
|
phone: str | None = None
|
||
|
|
status: int | None = None
|
||
|
|
role_ids: list[int] | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class PasswordChange(BaseModel):
|
||
|
|
old_password: str
|
||
|
|
new_password: str
|