Files
goalfylearning-admin/internal/models/goalfymax_user.go

81 lines
3.7 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package models
import "time"
// GoalfyMaxUser 对应 admin_goalfymax_users 表
type GoalfyMaxUser struct {
ID uint `json:"id" gorm:"primaryKey;autoIncrement;comment:主键ID"`
UserID int `json:"user_id" gorm:"not null;uniqueIndex:uk_user_id;comment:SSO用户ID"`
Username string `json:"username" gorm:"not null;type:varchar(50);comment:用户名"`
Email string `json:"email" gorm:"not null;type:varchar(100);comment:邮箱"`
Nickname string `json:"nickname" gorm:"type:varchar(50);comment:昵称"`
Avatar string `json:"avatar" gorm:"type:varchar(255);comment:头像URL"`
UserLevelCode string `json:"user_level_code" gorm:"type:varchar(50);default:'normal';comment:用户等级代码"`
IsBanned bool `json:"is_banned" gorm:"not null;default:false;comment:是否被封禁"`
BanReason string `json:"ban_reason" gorm:"type:varchar(255);comment:封禁原因"`
BannedAt *time.Time `json:"banned_at" gorm:"comment:封禁时间"`
BannedBy int `json:"banned_by" gorm:"comment:封禁操作者ID"`
LastLoginAt *time.Time `json:"last_login_at" gorm:"comment:最后登录时间"`
GoalfyHubPermission int `json:"goalfy_hub_permission" gorm:"default:0;comment:是否具备GoalfyHub权限 (0: 不具备, 1: 具备)"`
Version int `json:"version" gorm:"default:1;comment:1用户版 2观察版 3用户版和观察版"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt *time.Time `json:"-" gorm:"default:null"`
// Balance 用户余额美元从Redis查询不存储在数据库中
Balance *float64 `json:"balance,omitempty" gorm:"-"`
}
func (GoalfyMaxUser) TableName() string {
return "admin_goalfymax_users"
}
// 列表请求
type GoalfyMaxUserListRequest struct {
Username string `form:"username"`
Email string `form:"email"`
Status *int `form:"status"` // 1 正常 0 封禁(映射到 IsBanned
Page int `form:"page,default=1"`
Size int `form:"size,default=20"`
}
// 更新请求
type GoalfyMaxUserUpdateRequest struct {
Nickname string `json:"nickname"`
Email string `json:"email"`
Avatar string `json:"avatar"`
UserLevelCode string `json:"user_level_code"`
Version *int `json:"version"` // 版本1-用户版 2-观察版 3-用户版和观察版
GoalfyHubPermission *int `json:"goalfy_hub_permission"`
}
// 封禁请求
type GoalfyMaxUserBanRequest struct {
Reason string `json:"reason" binding:"required"`
}
// 增加余额请求
type GoalfyMaxUserAddBalanceRequest struct {
Amount float64 `json:"amount" binding:"required,gt=0"` // 美元金额必须大于0
}
// 新增用户请求
type GoalfyMaxUserCreateRequest struct {
Username string `json:"username" binding:"required,min=3,max=50"`
Email string `json:"email" binding:"required,email"`
Password string `json:"password" binding:"required,min=8"`
Nickname string `json:"nickname"`
Avatar string `json:"avatar"`
UserLevelCode string `json:"user_level_code"` // 默认为 normal
Version int `json:"version"` // 版本1-用户版 2-观察版 3-用户版和观察版默认为1
}
// 新增用户请求(支持字符串输入)
type GoalfyMaxUserCreateRequestString struct {
Username string `json:"username" binding:"required,min=3,max=50"`
Email string `json:"email" binding:"required,email"`
Phone string `json:"phone"`
Password string `json:"password"`
Nickname string `json:"nickname"`
Avatar string `json:"avatar"`
}