""" 系统管理模块请求模型 定义系统管理相关的请求体数据模型,供 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 """新密码""" class ChangeUserStatusRequest(BaseModel): """切换用户状态请求体。被 POST /api/system/users/{id}/status 路由使用。""" status: int """目标状态:1-启用,0-禁用""" 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 """父菜单 ID,0 表示顶级菜单""" 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] = [] """权限编码列表"""