54 lines
2.2 KiB
Go
54 lines
2.2 KiB
Go
package dto
|
|
|
|
type LoginRequest struct {
|
|
Username string `json:"username" validate:"required"`
|
|
Password string `json:"password" validate:"required"`
|
|
Device string `json:"device" validate:"omitempty,oneof=web h5 mobile"`
|
|
}
|
|
|
|
// MenuNode 菜单节点(树形结构)
|
|
type MenuNode struct {
|
|
ID uint `json:"id" description:"权限ID"`
|
|
PermCode string `json:"perm_code" description:"权限码"`
|
|
Name string `json:"name" description:"菜单名称"`
|
|
URL string `json:"url" description:"路由路径"`
|
|
Sort int `json:"sort" description:"排序值"`
|
|
Children []MenuNode `json:"children" description:"子菜单"`
|
|
}
|
|
|
|
type LoginResponse struct {
|
|
AccessToken string `json:"access_token"`
|
|
RefreshToken string `json:"refresh_token"`
|
|
ExpiresIn int64 `json:"expires_in"`
|
|
User UserInfo `json:"user"`
|
|
Permissions []string `json:"permissions" description:"所有权限码(向后兼容)"`
|
|
Menus []MenuNode `json:"menus" description:"菜单树"`
|
|
Buttons []string `json:"buttons" description:"按钮权限码"`
|
|
}
|
|
|
|
type UserInfo struct {
|
|
ID uint `json:"id" description:"用户ID"`
|
|
Username string `json:"username" description:"用户名"`
|
|
Phone string `json:"phone" description:"手机号"`
|
|
UserType int `json:"user_type" description:"用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号)"`
|
|
UserTypeName string `json:"user_type_name" description:"用户类型名称"`
|
|
ShopID uint `json:"shop_id,omitempty" description:"店铺ID"`
|
|
ShopName string `json:"shop_name,omitempty" description:"店铺名称"`
|
|
EnterpriseID uint `json:"enterprise_id,omitempty" description:"企业ID"`
|
|
EnterpriseName string `json:"enterprise_name,omitempty" description:"企业名称"`
|
|
}
|
|
|
|
type RefreshTokenRequest struct {
|
|
RefreshToken string `json:"refresh_token" validate:"required"`
|
|
}
|
|
|
|
type RefreshTokenResponse struct {
|
|
AccessToken string `json:"access_token"`
|
|
ExpiresIn int64 `json:"expires_in"`
|
|
}
|
|
|
|
type ChangePasswordRequest struct {
|
|
OldPassword string `json:"old_password" validate:"required"`
|
|
NewPassword string `json:"new_password" validate:"required,min=8,max=32"`
|
|
}
|