150 lines
4.8 KiB
Go
150 lines
4.8 KiB
Go
package v1
|
||
|
||
import "github.com/gogf/gf/v2/frame/g"
|
||
|
||
// ===== 公共结构 =====
|
||
|
||
type UserInfo struct {
|
||
Id int64 `json:"id"`
|
||
Nickname string `json:"nickname"`
|
||
AvatarUrl string `json:"avatar_url"`
|
||
}
|
||
|
||
type LevelInfo struct {
|
||
LevelKey string `json:"level_key"`
|
||
Name string `json:"name"`
|
||
Modules []string `json:"modules"`
|
||
}
|
||
|
||
// ===== 登录 =====
|
||
|
||
type WxLoginReq struct {
|
||
g.Meta `path:"/user/wx-login" method:"post" tags:"user" summary:"微信登录"`
|
||
Code string `v:"required#code不能为空" json:"code"`
|
||
}
|
||
type WxLoginRes struct {
|
||
Token string `json:"token"`
|
||
User *UserInfo `json:"user"`
|
||
Level *LevelInfo `json:"level"`
|
||
}
|
||
|
||
// DevLogin 仅 debug 配置开启时可用(H5/联调)
|
||
type DevLoginReq struct {
|
||
g.Meta `path:"/user/dev-login" method:"post" tags:"user" summary:"开发登录"`
|
||
}
|
||
type DevLoginRes = WxLoginRes
|
||
|
||
// ===== H5 账号注册/登录 =====
|
||
|
||
// Register H5 独立账号注册(注册即登录)
|
||
type RegisterReq struct {
|
||
g.Meta `path:"/user/register" method:"post" tags:"user" summary:"H5 账号注册"`
|
||
Username string `v:"required|length:3,32#用户名不能为空|用户名长度为 3-32 位" json:"username"`
|
||
Password string `v:"required|length:6,64#密码不能为空|密码长度为 6-64 位" json:"password"`
|
||
Nickname string `v:"length:0,32#昵称最长 32 位" json:"nickname"`
|
||
}
|
||
type RegisterRes = WxLoginRes
|
||
|
||
// AccountLogin H5 账号密码登录
|
||
type AccountLoginReq struct {
|
||
g.Meta `path:"/user/login" method:"post" tags:"user" summary:"H5 账号登录"`
|
||
Username string `v:"required#用户名不能为空" json:"username"`
|
||
Password string `v:"required#密码不能为空" json:"password"`
|
||
}
|
||
type AccountLoginRes = WxLoginRes
|
||
|
||
// BindAccount 将一个 H5 独立账号合并进当前登录账号(两端共享数据)
|
||
type BindAccountReq struct {
|
||
g.Meta `path:"/user/bind-account" method:"post" tags:"user" summary:"绑定(合并)H5 账号"`
|
||
Username string `v:"required#用户名不能为空" json:"username"`
|
||
Password string `v:"required#密码不能为空" json:"password"`
|
||
}
|
||
type BindAccountRes struct {
|
||
Username string `json:"username"`
|
||
}
|
||
|
||
// ===== 个人信息 =====
|
||
|
||
// ProfileUpdate 更新昵称 / 头像(avatarUrl 支持远端 URL 或预置头像 key:avatar:rocket 等)
|
||
type ProfileUpdateReq struct {
|
||
g.Meta `path:"/user/profile" method:"put" tags:"user" summary:"更新个人信息"`
|
||
Nickname string `v:"required|length:1,32#昵称不能为空|昵称最长 32 位" json:"nickname"`
|
||
AvatarUrl string `v:"length:0,512" json:"avatar_url"`
|
||
}
|
||
type ProfileUpdateRes struct {
|
||
Nickname string `json:"nickname"`
|
||
AvatarUrl string `json:"avatar_url"`
|
||
}
|
||
|
||
// ===== 等级 =====
|
||
|
||
type LevelReq struct {
|
||
g.Meta `path:"/user/level" method:"get" tags:"user" summary:"我的等级与模块"`
|
||
}
|
||
type LevelRes = LevelInfo
|
||
|
||
// UserInfoGet 当前登录用户信息(token 校验后恢复 user 用)
|
||
type UserInfoGetReq struct {
|
||
g.Meta `path:"/user/info" method:"get" tags:"user" summary:"我的信息"`
|
||
}
|
||
type UserInfoGetRes = UserInfo
|
||
|
||
// ===== 工具目录 =====
|
||
|
||
type ModuleOut struct {
|
||
ModuleKey string `json:"module_key"`
|
||
Name string `json:"name"`
|
||
Icon string `json:"icon"`
|
||
Locked bool `json:"locked"`
|
||
EnabledToolsCount int `json:"enabled_tools_count"`
|
||
}
|
||
|
||
type ToolOut struct {
|
||
ToolKey string `json:"tool_key"`
|
||
ModuleKey string `json:"module_key"`
|
||
Name string `json:"name"`
|
||
Icon string `json:"icon"`
|
||
Description string `json:"description"`
|
||
IsHot bool `json:"is_hot"`
|
||
Locked bool `json:"locked"`
|
||
Quota *QuotaToolOut `json:"quota"` // 额度状态(免费/会员/付费),未登录或查询失败时为 null
|
||
}
|
||
|
||
type ToolsListReq struct {
|
||
g.Meta `path:"/tools/list" method:"get" tags:"user" summary:"工具目录(含锁定态)"`
|
||
}
|
||
type ToolsListRes struct {
|
||
Modules []ModuleOut `json:"modules"`
|
||
List []ToolOut `json:"list"`
|
||
}
|
||
|
||
type ToolsUsedReq struct {
|
||
g.Meta `path:"/tools/used" method:"post" tags:"user" summary:"工具使用上报"`
|
||
ToolKey string `v:"required" json:"tool_key"`
|
||
}
|
||
type ToolsUsedRes struct{}
|
||
|
||
// ===== 工作台 =====
|
||
|
||
type WorkbenchGetReq struct {
|
||
g.Meta `path:"/workbench/get" method:"get" tags:"user" summary:"我的工作台"`
|
||
}
|
||
type WorkbenchGetRes struct {
|
||
ToolKeys []string `json:"tool_keys"`
|
||
}
|
||
|
||
type WorkbenchSaveReq struct {
|
||
g.Meta `path:"/workbench/save" method:"post" tags:"user" summary:"保存工作台"`
|
||
ToolKeys []string `v:"required" json:"tool_keys"`
|
||
}
|
||
type WorkbenchSaveRes struct{}
|
||
|
||
// ===== 反馈 =====
|
||
|
||
type FeedbackSubmitReq struct {
|
||
g.Meta `path:"/feedback/submit" method:"post" tags:"user" summary:"提交反馈"`
|
||
Content string `v:"required#反馈内容不能为空" json:"content"`
|
||
Contact string `json:"contact"`
|
||
}
|
||
type FeedbackSubmitRes struct{}
|