""" 认证模块请求/响应模型 定义登录认证相关的请求体和响应体数据模型,供 auth 路由使用。 """ from pydantic import BaseModel class LoginRequest(BaseModel): """登录请求体,用于用户登录认证。被 POST /api/auth/login 路由使用。""" username: str """用户名""" password: str """密码""" role_type: str | None = None """角色类型,区分不同登录角色(如 admin / sales),为空时由后端自动识别""" class WechatLoginRequest(BaseModel): """微信手机号登录请求体,用于微信一键登录。""" code: str """wx.login() 获取的临时登录凭证""" phone_code: str """wx.getPhoneNumber 返回的授权 code(新版 API,用于换取手机号)""" class UserProfile(BaseModel): """用户信息响应体,包含用户基本信息、角色权限和菜单数据。用于登录成功后返回用户画像。""" user_id: int """用户 ID""" username: str """用户名""" real_name: str """真实姓名""" mobile: str """手机号""" role_id: int """角色 ID""" role_name: str """角色名称""" role_code: str """角色编码""" token: str | None = None """JWT 令牌,仅登录时返回""" menus: list[dict] = [] """该角色关联的菜单列表""" permissions: list[str] = [] """该角色的权限编码列表"""