Files
EchoChat/backend/go-service/app/auth/model/user.go
bujinyuan 8a6576a2f7 feat(auth): 用户/角色模型与数据访问层
- constants: 用户状态、性别、角色代码常量定义
- model: User/Role/UserRole GORM 模型
- dao: UserDAO (CRUD + 账号查询) + RoleDAO (角色分配/查询/检查)
- provider: Auth 模块 Wire Provider Set

Made-with: Cursor
2026-02-28 10:42:34 +08:00

27 lines
1.3 KiB
Go

// Package model 定义 auth 模块的数据库模型
package model
import "time"
// User 用户主表模型,对应 auth_users 表
type User struct {
ID int64 `json:"id" gorm:"primaryKey;autoIncrement"`
Username string `json:"username" gorm:"uniqueIndex;size:50;not null"`
Email string `json:"email" gorm:"uniqueIndex;size:100;not null"`
PasswordHash string `json:"-" gorm:"column:password_hash;size:255;not null"` // JSON 序列化时隐藏密码
Nickname string `json:"nickname" gorm:"size:50;not null;default:''"`
Avatar string `json:"avatar" gorm:"size:500;not null;default:''"`
Gender int `json:"gender" gorm:"not null;default:0"` // 0=未知, 1=男, 2=女
Phone *string `json:"phone" gorm:"size:20"` // 可选字段
Status int `json:"status" gorm:"not null;default:1"` // 1=正常, 2=禁用, 3=注销
LastLoginAt *time.Time `json:"last_login_at"`
LastLoginIP *string `json:"last_login_ip" gorm:"column:last_login_ip;size:50"`
CreatedAt time.Time `json:"created_at" gorm:"not null;autoCreateTime"`
UpdatedAt time.Time `json:"updated_at" gorm:"not null;autoUpdateTime"`
}
// TableName 指定数据库表名
func (User) TableName() string {
return "auth_users"
}