Files
nl_cms-api/internal/model/user.go

83 lines
4.6 KiB
Go
Raw Normal View History

2025-07-29 12:45:07 +08:00
package model
import (
"github.com/gogf/gf/v2/os/gtime"
)
// User 用户模型
type User struct {
Id int `json:"id" dc:"主键"`
Account string `json:"account" dc:"账号"`
NickName string `json:"nick_name" dc:"昵称"`
Avatar string `json:"avatar" dc:"头像"`
Email string `json:"email" dc:"邮箱"`
Password string `json:"-" dc:"登录密码"`
Balance float64 `json:"balance" dc:"余额"`
QrCode string `json:"qr_code" dc:"微信二维码地址"`
RoleId int `json:"role_id" dc:"角色"`
IsSysNotifications int `json:"is_sys_notifications" dc:"是否接受邮件系统通知"`
IsCollectionNotifications int `json:"is_collection_notifications" dc:"是否接受收藏的项目更新信息"`
IsMarketingNotifications int `json:"is_marketing_notifications" dc:"是否接受营销信息"`
Ip string `json:"ip" dc:"本次登录ip"`
IpTable interface{} `json:"ip_table" dc:"常用登录IP地址列表"`
Status int `json:"status" dc:"状态 0正常 1冻结 2封号 3注销"`
LastResetPasswordAt int `json:"last_reset_password_at" dc:"最后一次修改密码的时间"`
CreatedAt *gtime.Time `json:"created_at" dc:"注册时间"`
UpdatedAt *gtime.Time `json:"updated_at" dc:"编辑时间"`
DeletedAt int `json:"deleted_at" dc:"删除时间"`
}
// UserListRequest 用户列表请求
type UserListRequest struct {
Page int `json:"page" dc:"页码"`
PageSize int `json:"page_size" dc:"每页数量"`
Keyword string `json:"keyword" dc:"关键词"`
Status int `json:"status" dc:"状态"`
RoleId int `json:"role_id" dc:"角色ID"`
}
// CreateUserRequest 创建用户请求
type CreateUserRequest struct {
Account string `json:"account" v:"required|length:3,32#账号不能为空|账号长度为3-32位" dc:"账号"`
NickName string `json:"nick_name" v:"required|length:2,64#昵称不能为空|昵称长度为2-64位" dc:"昵称"`
Email string `json:"email" v:"required|email#邮箱不能为空|邮箱格式不正确" dc:"邮箱"`
Password string `json:"password" v:"required|length:6,32#密码不能为空|密码长度为6-32位" dc:"密码"`
Avatar string `json:"avatar" dc:"头像"`
Balance float64 `json:"balance" dc:"余额"`
RoleId int `json:"role_id" dc:"角色ID"`
IsSysNotifications int `json:"is_sys_notifications" dc:"是否接受邮件系统通知"`
IsCollectionNotifications int `json:"is_collection_notifications" dc:"是否接受收藏的项目更新信息"`
IsMarketingNotifications int `json:"is_marketing_notifications" dc:"是否接受营销信息"`
}
// UpdateUserRequest 更新用户请求
type UpdateUserRequest struct {
NickName string `json:"nick_name" v:"required|length:2,64#昵称不能为空|昵称长度为2-64位" dc:"昵称"`
Email string `json:"email" v:"required|email#邮箱不能为空|邮箱格式不正确" dc:"邮箱"`
Avatar string `json:"avatar" dc:"头像"`
Balance float64 `json:"balance" dc:"余额"`
RoleId int `json:"role_id" dc:"角色ID"`
Status int `json:"status" dc:"状态"`
IsSysNotifications int `json:"is_sys_notifications" dc:"是否接受邮件系统通知"`
IsCollectionNotifications int `json:"is_collection_notifications" dc:"是否接受收藏的项目更新信息"`
IsMarketingNotifications int `json:"is_marketing_notifications" dc:"是否接受营销信息"`
}
// ChangePasswordRequest 修改密码请求
type ChangePasswordRequest struct {
OldPassword string `json:"old_password" v:"required#原密码不能为空" dc:"原密码"`
NewPassword string `json:"new_password" v:"required|length:6,32#新密码不能为空|新密码长度为6-32位" dc:"新密码"`
}
// UserLoginRequest 用户登录请求
type UserLoginRequest struct {
Account string `json:"account" v:"required#账号不能为空" dc:"账号"`
Password string `json:"password" v:"required#密码不能为空" dc:"密码"`
}
// UserLoginResponse 用户登录响应
type UserLoginResponse struct {
Token string `json:"token" dc:"访问令牌"`
ExpiresIn int `json:"expires_in" dc:"过期时间(秒)"`
User *User `json:"user" dc:"用户信息"`
}