mini-rbac/backend/schemas/user.py

70 lines
1.5 KiB
Python

from typing import Optional
from pydantic import BaseModel, Field
from schemas.common import QueryData, ReadBase
class UserRole(BaseModel):
uid: int = Field(description="用户id")
rid: int = Field(description="角色id")
class UserRoleRead(UserRole, ReadBase):
"""用户 角色 读取模型"""
pass
class UserBasic(BaseModel):
username: str
nickname: str
class UserIn(UserBasic):
password: str
class UserRead(UserBasic, ReadBase):
pass
class UserHasRole(BaseModel):
"""用户拥有角色"""
id: int
name: str
status: int = Field(default=1, description="激活角色 5 正常 1 删除 9")
class UserInfo(UserRead):
"""用户信息模型"""
roles: list[UserHasRole] = Field(..., description="用户拥有角色")
class RoleActive(BaseModel):
rid: int = Field(description="角色id")
status: int = Field(default=1, description="激活角色 5 正常 1 删除 9")
class UserAdd(UserIn):
"""新增用户模型"""
roles: list[RoleActive] = Field(..., description="选择角色列表")
class UserQuery(QueryData):
"""查询模型"""
username: Optional[str] = Field("", description="用户名")
nickname: Optional[str] = Field("", description="姓名")
class UserPut(BaseModel):
"""用户更新模型"""
nickname: str = Field(..., description="用户昵称")
password: str = Field(..., description="密码")
roles: list[RoleActive] = Field(..., description="选择角色列表")