All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m51s
123 lines
5.4 KiB
Go
123 lines
5.4 KiB
Go
package dto
|
||
|
||
// ========================================
|
||
// A1 资产验证
|
||
// ========================================
|
||
|
||
// VerifyAssetRequest A1 资产验证请求
|
||
type VerifyAssetRequest struct {
|
||
Identifier string `json:"identifier" validate:"required,min=1,max=50" required:"true" minLength:"1" maxLength:"50" description:"资产标识符(SN/IMEI/虚拟号/ICCID/MSISDN)"`
|
||
}
|
||
|
||
// VerifyAssetResponse A1 资产验证响应
|
||
type VerifyAssetResponse struct {
|
||
AssetToken string `json:"asset_token" description:"资产令牌(5分钟有效)"`
|
||
ExpiresIn int `json:"expires_in" description:"过期时间(秒)"`
|
||
OaAppID string `json:"oa_app_id" description:"当前生效的公众号 AppID"`
|
||
MiniappAppID string `json:"miniapp_app_id" description:"当前生效的小程序 AppID"`
|
||
}
|
||
|
||
// ========================================
|
||
// A2 公众号登录
|
||
// ========================================
|
||
|
||
// WechatLoginRequest A2 公众号登录请求
|
||
type WechatLoginRequest struct {
|
||
Code string `json:"code" validate:"required" required:"true" description:"微信OAuth授权码"`
|
||
AssetToken string `json:"asset_token" validate:"required" required:"true" description:"A1返回的资产令牌"`
|
||
}
|
||
|
||
// WechatLoginResponse A2/A3 登录统一响应
|
||
type WechatLoginResponse struct {
|
||
Token string `json:"token" description:"登录JWT令牌"`
|
||
NeedBindPhone bool `json:"need_bind_phone" description:"是否需要绑定手机号"`
|
||
IsNewUser bool `json:"is_new_user" description:"是否新创建用户"`
|
||
}
|
||
|
||
// ========================================
|
||
// A3 小程序登录
|
||
// ========================================
|
||
|
||
// MiniappLoginRequest A3 小程序登录请求
|
||
type MiniappLoginRequest struct {
|
||
Code string `json:"code" validate:"required" required:"true" description:"小程序登录凭证"`
|
||
AssetToken string `json:"asset_token" validate:"required" required:"true" description:"A1返回的资产令牌"`
|
||
Nickname string `json:"nickname" description:"用户昵称(前端授权后传入)"`
|
||
AvatarURL string `json:"avatar_url" description:"用户头像URL(前端授权后传入)"`
|
||
}
|
||
|
||
// ========================================
|
||
// A4 发送验证码
|
||
// ========================================
|
||
|
||
// ClientSendCodeRequest A4 发送验证码请求
|
||
type ClientSendCodeRequest struct {
|
||
Phone string `json:"phone" validate:"required,len=11" required:"true" minLength:"11" maxLength:"11" description:"手机号"`
|
||
Scene string `json:"scene" validate:"required,oneof=bind_phone change_phone_old change_phone_new" required:"true" description:"业务场景 (bind_phone:绑定手机号, change_phone_old:换绑旧手机, change_phone_new:换绑新手机)"`
|
||
}
|
||
|
||
// ClientSendCodeResponse A4 发送验证码响应
|
||
type ClientSendCodeResponse struct {
|
||
CooldownSeconds int `json:"cooldown_seconds" description:"冷却秒数"`
|
||
}
|
||
|
||
// ========================================
|
||
// A5 绑定手机号
|
||
// ========================================
|
||
|
||
// BindPhoneRequest A5 绑定手机号请求
|
||
type BindPhoneRequest struct {
|
||
Phone string `json:"phone" validate:"required,len=11" required:"true" minLength:"11" maxLength:"11" description:"手机号"`
|
||
Code string `json:"code" validate:"required,len=6" required:"true" minLength:"6" maxLength:"6" description:"验证码"`
|
||
}
|
||
|
||
// BindPhoneResponse A5 绑定手机号响应
|
||
type BindPhoneResponse struct {
|
||
Phone string `json:"phone" description:"已绑定手机号"`
|
||
BoundAt string `json:"bound_at" description:"绑定时间"`
|
||
}
|
||
|
||
// ========================================
|
||
// A6 换绑手机号
|
||
// ========================================
|
||
|
||
// ChangePhoneRequest A6 换绑手机号请求
|
||
type ChangePhoneRequest struct {
|
||
OldPhone string `json:"old_phone" validate:"required,len=11" required:"true" minLength:"11" maxLength:"11" description:"旧手机号"`
|
||
OldCode string `json:"old_code" validate:"required,len=6" required:"true" minLength:"6" maxLength:"6" description:"旧手机号验证码"`
|
||
NewPhone string `json:"new_phone" validate:"required,len=11" required:"true" minLength:"11" maxLength:"11" description:"新手机号"`
|
||
NewCode string `json:"new_code" validate:"required,len=6" required:"true" minLength:"6" maxLength:"6" description:"新手机号验证码"`
|
||
}
|
||
|
||
// ChangePhoneResponse A6 换绑手机号响应
|
||
type ChangePhoneResponse struct {
|
||
Phone string `json:"phone" description:"换绑后手机号"`
|
||
ChangedAt string `json:"changed_at" description:"换绑时间"`
|
||
}
|
||
|
||
// ========================================
|
||
// A7 退出登录
|
||
// ========================================
|
||
|
||
// LogoutResponse A7 退出登录响应
|
||
type LogoutResponse struct {
|
||
Success bool `json:"success" description:"是否成功"`
|
||
}
|
||
|
||
// ========================================
|
||
// DevLogin 开发环境测试登录(仅开发模式可用)
|
||
// ========================================
|
||
|
||
// DevLoginRequest 开发环境测试登录请求
|
||
// ⚠️ 仅限 logging.development=true 时生效,严禁在生产环境暴露
|
||
type DevLoginRequest struct {
|
||
Identifier string `json:"identifier" validate:"required,min=1,max=50" required:"true" minLength:"1" maxLength:"50" description:"资产标识符(ICCID/虚拟号等)"`
|
||
}
|
||
|
||
// DevLoginResponse 开发环境测试登录响应
|
||
type DevLoginResponse struct {
|
||
Token string `json:"token" description:"JWT 令牌"`
|
||
CustomerID uint `json:"customer_id" description:"客户ID"`
|
||
IsNewUser bool `json:"is_new_user" description:"是否新创建的测试客户"`
|
||
}
|