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