package user import ( "time" ) const ( //AccountNormal = 1 // 正常 AccountFrozen = 2 // 冻结 AccountBanned = 3 // 封禁 ) // 玩家账户表 type UserAccount struct { ID uint `gorm:"primarykey" json:"id"` Username string `gorm:"type:varchar(32);uniqueIndex;not null" json:"username"` // 用户名 Password string `gorm:"type:varchar(255);not null" json:"password"` // 密码哈希 Email string `gorm:"type:varchar(100)" json:"email"` // 邮箱(可选) Phone string `gorm:"type:varchar(20)" json:"phone"` // 手机号(可选) DeviceID string `gorm:"type:varchar(64);index" json:"device_id"` // 设备ID LastLoginIP string `gorm:"type:varchar(45)" json:"last_login_ip"` // 最后登录IP(支持IPv6) LastLoginTime time.Time `json:"last_login_time"` // 最后登录时间 Status int `gorm:"type:tinyint;default:1" json:"status"` // 账号状态 1-正常 2-冻结 3-封禁 RegisterIP string `gorm:"type:varchar(45)" json:"register_ip"` // 注册IP RegisterTime time.Time `gorm:"type:TIMESTAMP;default:CURRENT_TIMESTAMP" json:"register_time"` // 注册时间 } func (u UserAccount) GetId() uint { return u.ID } func (u UserAccount) TableName() string { return "user_account" } // 玩家登录记录表 type UserLoginLog struct { ID uint `gorm:"primarykey" json:"id"` UID uint `gorm:"index" json:"uid"` // 关联玩家ID LoginIP string `gorm:"type:varchar(45);not null" json:"login_ip"` // 登录IP LoginTime time.Time `gorm:"type:TIMESTAMP;default:CURRENT_TIMESTAMP" json:"login_time"` // 登录时间 DeviceInfo string `gorm:"type:varchar(255)" json:"device_info"` // 设备信息(JSON格式) LoginResult bool `json:"login_result"` // 登录结果 true-成功 false-失败 FailReason string `gorm:"type:varchar(100)" json:"fail_reason"` // 失败原因 } func (u UserLoginLog) GetId() uint { return u.ID } func (u UserLoginLog) TableName() string { return "user_login_log" }