Files
terminal/server/model/user.go
T

56 lines
2.2 KiB
Go

package model
import (
"next-terminal/server/common"
)
type User struct {
ID string `gorm:"primary_key,type:varchar(36)" json:"id"`
Username string `gorm:"index,type:varchar(200)" json:"username"`
Password string `gorm:"type:varchar(500)" json:"-"`
TOTPSecret string `json:"-"`
Online *bool `json:"online"`
Status string `gorm:"type:varchar(10)" json:"status"`
Created common.JsonTime `json:"createdAt"`
Type string `gorm:"type:varchar(20)" json:"type"`
Nickname string `gorm:"type:varchar(500)" json:"nickname"`
Mail string `gorm:"type:varchar(500)" json:"mail"`
Phone string `gorm:"type:varchar(50)" json:"phone"`
Source string `gorm:"type:varchar(20)" json:"source"`
Recording string `gorm:"type:varchar(20);default:'enabled'" json:"recording"`
Watermark string `gorm:"type:varchar(20);default:'enabled'" json:"watermark"`
PublicKey string `gorm:"type:text" json:"publicKey"`
Remark string `gorm:"type:text" json:"remark"`
Roles []string `gorm:"-" json:"roles"`
Departments []UserDepartment `gorm:"-" json:"departments"`
}
type UserDepartment struct {
ID string `json:"value"`
Name string `json:"label"`
}
type UserForPage struct {
ID string `json:"id"`
Username string `json:"username"`
Nickname string `json:"nickname"`
TOTPSecret string `json:"totpSecret"`
Mail string `json:"mail"`
Phone string `json:"phone"`
Online bool `json:"online"`
Status string `json:"status"`
Created common.JsonTime `json:"createdAt"`
Type string `json:"type"`
Source string `json:"source"`
Recording string `json:"recording"`
Watermark string `json:"watermark"`
Remark string `json:"remark"`
SharerAssetCount int64 `json:"sharerAssetCount"`
Departments []UserDepartment `json:"departments"`
LastLoginAt *common.JsonTime `json:"lastLoginAt"`
}
func (r *User) TableName() string {
return "users"
}