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