dingdanquanliucheng/backend/app/schemas/system.py

156 lines
3.3 KiB
Python
Raw Normal View History

"""
系统管理模块请求模型
定义系统管理相关的请求体数据模型 system 路由使用
包含用户管理角色管理和菜单管理三个子模块的 CRUD 操作
"""
from pydantic import BaseModel
class CreateUserRequest(BaseModel):
"""创建用户请求体。被 POST /api/system/users 路由使用。"""
username: str
"""登录用户名"""
password: str
"""登录密码"""
real_name: str
"""真实姓名"""
mobile: str | None = None
"""手机号,可选"""
role_id: int
"""关联角色 ID"""
status: int = 1
"""状态1-启用0-禁用"""
class UpdateUserRequest(BaseModel):
"""更新用户请求体(不含用户名和密码)。被 PUT /api/system/users/{id} 路由使用。"""
real_name: str
"""真实姓名"""
mobile: str | None = None
"""手机号"""
role_id: int
"""关联角色 ID"""
status: int = 1
"""状态1-启用0-禁用"""
class ResetPasswordRequest(BaseModel):
"""重置密码请求体。被 POST /api/system/users/{id}/reset-password 路由使用。"""
new_password: str
"""新密码"""
2026-05-28 22:59:04 +08:00
class ChangeUserStatusRequest(BaseModel):
"""切换用户状态请求体。被 POST /api/system/users/{id}/status 路由使用。"""
2026-05-28 22:59:04 +08:00
status: int
"""目标状态1-启用0-禁用"""
2026-05-28 22:59:04 +08:00
class CreateRoleRequest(BaseModel):
"""创建角色请求体。被 POST /api/system/roles 路由使用。"""
role_name: str
"""角色名称"""
role_code: str
"""角色编码(唯一标识,如 admin、sales"""
status: int = 1
"""状态1-启用0-禁用"""
remark: str | None = None
"""备注信息"""
class UpdateRoleRequest(BaseModel):
"""更新角色请求体。被 PUT /api/system/roles/{id} 路由使用。"""
role_name: str
"""角色名称"""
status: int = 1
"""状态1-启用0-禁用"""
remark: str | None = None
"""备注信息"""
class CreateMenuRequest(BaseModel):
"""创建菜单请求体。被 POST /api/system/menus 路由使用。"""
parent_id: int = 0
"""父菜单 ID0 表示顶级菜单"""
menu_name: str
"""菜单名称"""
menu_path: str = ""
"""菜单路由路径"""
menu_type: str = "page"
"""菜单类型page-页面button-按钮权限"""
permission_code: str
"""权限编码"""
icon: str | None = None
"""图标标识"""
sort_no: int = 0
"""排序号,数值越小越靠前"""
status: int = 1
"""状态1-启用0-禁用"""
class UpdateMenuRequest(BaseModel):
"""更新菜单请求体。被 PUT /api/system/menus/{id} 路由使用。"""
parent_id: int = 0
"""父菜单 ID"""
menu_name: str
"""菜单名称"""
menu_path: str = ""
"""菜单路由路径"""
menu_type: str = "page"
"""菜单类型page-页面button-按钮权限"""
permission_code: str
"""权限编码"""
icon: str | None = None
"""图标标识"""
sort_no: int = 0
"""排序号"""
status: int = 1
"""状态1-启用0-禁用"""
class AssignRoleMenusRequest(BaseModel):
"""为角色分配菜单权限请求体。被 POST /api/system/roles/{id}/menus 路由使用。"""
menu_ids: list[int] = []
"""菜单 ID 列表"""
permission_codes: list[str] = []
"""权限编码列表"""