You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OneAuth/models/user.go

44 lines
1.5 KiB
Go

11 months ago
package models
import (
"github.com/vyes-ai/vigo"
11 months ago
"gorm.io/gorm"
)
// salt for user user password gen aes code
// salt 32 hex / 16 byte / 128 bit
// code 64 hex / 32 byte / 256 bit
type User struct {
vigo.Model
Username string `json:"username" gorm:"type:varchar(100);unique;default:not null" src:"json" desc:"用户名"`
Nickname string `json:"nickname" gorm:"type:varchar(100)" src:"json" desc:"昵称"`
Icon string `json:"icon" src:"json" desc:"头像"`
11 months ago
Email string `json:"email" gorm:"unique;type:varchar(64);null;default:null" src:"json" desc:"邮箱"`
Phone string `json:"phone" gorm:"type:varchar(64);unique;null;default:null" src:"json" desc:"手机号"`
Region string `json:"region" gorm:"type:varchar(32);default:null" src:"json" desc:"地区"`
11 months ago
Status uint `json:"status" src:"json" desc:"状态"`
11 months ago
Salt string `json:"-" gorm:"type:varchar(32)"`
Code string `json:"-" gorm:"type:varchar(64)" src:"json" desc:"代码"`
11 months ago
}
type UserRole struct {
vigo.Model
UserID string `json:"user_id" src:"path@user_id" desc:"用户ID"`
11 months ago
User *User `json:"-" gorm:"foreignKey:UserID;references:ID"`
RoleID string `json:"role_id" src:"json" desc:"角色ID"`
11 months ago
Role *Role `json:"-" gorm:"foreignKey:RoleID;references:ID"`
AppID string `json:"app_id" src:"json" desc:"应用ID"`
11 months ago
App *App `json:"-" gorm:"foreignKey:AppID;references:ID"`
Status string `json:"status"`
11 months ago
}
func (m *UserRole) AfterCreate(tx *gorm.DB) error {
return tx.Model(&Role{}).Where("id = ?", m.RoleID).Update("user_count", gorm.Expr("user_count + ?", 1)).Error
}