mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-11-04 11:22:10 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			96 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package v2
 | 
						|
 | 
						|
import (
 | 
						|
	"time"
 | 
						|
)
 | 
						|
 | 
						|
// Register 注册信息表
 | 
						|
type Register struct {
 | 
						|
	UserID      string    `gorm:"column:user_id;primary_key;type:char(64)" json:"userID"`
 | 
						|
	DeviceID    string    `gorm:"column:device_id;type:varchar(255)"       json:"deviceID"`
 | 
						|
	IP          string    `gorm:"column:ip;type:varchar(32)"               json:"ip"`
 | 
						|
	Platform    string    `gorm:"column:platform;type:varchar(32)"         json:"platform"`
 | 
						|
	AccountType string    `gorm:"column:account_type;type:varchar(32)"     json:"accountType"` //email phone account
 | 
						|
	Mode        string    `gorm:"column:mode;type:varchar(32)"`                                //user admin
 | 
						|
	CreateTime  time.Time `gorm:"column:create_time"                       json:"createTime"`
 | 
						|
}
 | 
						|
 | 
						|
// Account 账号密码表
 | 
						|
type Account struct {
 | 
						|
	UserID         string    `gorm:"column:user_id;primary_key;type:char(64)" json:"userID"`
 | 
						|
	Password       string    `gorm:"column:password;type:varchar(255)"        json:"password"`
 | 
						|
	CreateTime     time.Time `gorm:"column:create_time"                       json:"createTime"`
 | 
						|
	ChangeTime     time.Time `gorm:"column:change_time"                       json:"changeTime"`
 | 
						|
	OperatorUserID string    `gorm:"column:operator_user_id;type:varchar(64)" json:"operatorUserID"`
 | 
						|
}
 | 
						|
 | 
						|
// Attribute 用户属性表
 | 
						|
type Attribute struct {
 | 
						|
	UserID         string    `gorm:"column:user_id;primary_key;type:char(64)" json:"userID"`
 | 
						|
	Account        string    `gorm:"column:account;type:char(64)"             json:"account"`
 | 
						|
	PhoneNumber    string    `gorm:"column:phone_number;type:varchar(32)"     json:"phoneNumber"`
 | 
						|
	AreaCode       string    `gorm:"column:area_code;type:varchar(8)"         json:"areaCode"`
 | 
						|
	Email          string    `gorm:"column:email;type:varchar(64)"            json:"email"`
 | 
						|
	Nickname       string    `gorm:"column:nickname;type:varchar(64)"         json:"nickname"`
 | 
						|
	FaceURL        string    `gorm:"column:face_url;type:varchar(255)"        json:"faceURL"`
 | 
						|
	Gender         int32     `gorm:"column:gender"                            json:"gender"`
 | 
						|
	Birth          uint32    `gorm:"column:birth"                             json:"birth"`
 | 
						|
	CreateTime     time.Time `gorm:"column:create_time"                       json:"createTime"`
 | 
						|
	ChangeTime     time.Time `gorm:"column:change_time"                       json:"changeTime"`
 | 
						|
	BirthTime      time.Time `gorm:"column:birth_time"                        json:"birthTime"`
 | 
						|
	Level          int32     `gorm:"column:level;default:1"                   json:"level"`
 | 
						|
	AllowVibration int32     `gorm:"column:allow_vibration;default:1"         json:"allowVibration"`
 | 
						|
	AllowBeep      int32     `gorm:"column:allow_beep;default:1"              json:"allowBeep"`
 | 
						|
	AllowAddFriend int32     `gorm:"column:allow_add_friend;default:1"        json:"allowAddFriend"`
 | 
						|
}
 | 
						|
 | 
						|
// 封号表
 | 
						|
type ForbiddenAccount struct {
 | 
						|
	UserID         string    `gorm:"column:user_id;index:userID;primary_key;type:char(64)" json:"userID"`
 | 
						|
	CreateTime     time.Time `gorm:"column:create_time"                                    json:"createTime"`
 | 
						|
	Reason         string    `gorm:"column:reason;type:varchar(255)"                       json:"reason"`
 | 
						|
	OperatorUserID string    `gorm:"column:operator_user_id;type:varchar(255)"             json:"operatorUserID"`
 | 
						|
}
 | 
						|
 | 
						|
// 用户登录信息表
 | 
						|
type UserLoginRecord struct {
 | 
						|
	UserID    string    `gorm:"column:user_id;size:64"             json:"userID"`
 | 
						|
	LoginTime time.Time `gorm:"column:login_time"                  json:"loginTime"`
 | 
						|
	IP        string    `gorm:"column:ip;type:varchar(32)"         json:"ip"`
 | 
						|
	DeviceID  string    `gorm:"column:device_id;type:varchar(255)" json:"deviceID"`
 | 
						|
	Platform  string    `gorm:"column:platform;type:varchar(32)"   json:"platform"`
 | 
						|
}
 | 
						|
 | 
						|
// 禁止ip登录 注册
 | 
						|
type IPForbidden struct {
 | 
						|
	IP            string    `gorm:"column:ip;primary_key;type:char(32)" json:"ip"`
 | 
						|
	LimitRegister int32     `gorm:"column:limit_register"               json:"limitRegister"`
 | 
						|
	LimitLogin    int32     `gorm:"column:limit_login"                  json:"limitLogin"`
 | 
						|
	CreateTime    time.Time `gorm:"column:create_time"                  json:"createTime"`
 | 
						|
}
 | 
						|
 | 
						|
// 限制userID只能在某些ip登录
 | 
						|
type LimitUserLoginIP struct {
 | 
						|
	UserID     string    `gorm:"column:user_id;primary_key;type:char(64)" json:"userID"`
 | 
						|
	IP         string    `gorm:"column:ip;primary_key;type:char(32)"      json:"ip"`
 | 
						|
	CreateTime time.Time `gorm:"column:create_time"                       json:"createTime"`
 | 
						|
}
 | 
						|
 | 
						|
// 邀请码被注册使用
 | 
						|
type InvitationRegister struct {
 | 
						|
	InvitationCode string    `gorm:"column:invitation_code;primary_key;type:char(32)" json:"invitationCode"`
 | 
						|
	CreateTime     time.Time `gorm:"column:create_time"                               json:"createTime"`
 | 
						|
	UsedByUserID   string    `gorm:"column:user_id;index:userID;type:char(64)"        json:"usedByUserID"`
 | 
						|
}
 | 
						|
 | 
						|
type SignalRecord struct {
 | 
						|
	FileName    string    `gorm:"column:file_name;primary_key;type:char(128)"            json:"fileName"`
 | 
						|
	MediaType   string    `gorm:"column:media_type;type:char(64);index:media_type_index" json:"mediaType"`
 | 
						|
	RoomType    string    `gorm:"column:room_type;type:char(20)"                         json:"roomType"`
 | 
						|
	SenderID    string    `gorm:"column:sender_id;type:char(64);index:sender_id_index"   json:"senderID"`
 | 
						|
	RecvID      string    `gorm:"column:recv_id;type:char(64);index:recv_id_index"       json:"recvID"`
 | 
						|
	GroupID     string    `gorm:"column:group_id;type:char(64)"                          json:"groupID"`
 | 
						|
	DownloadURL string    `gorm:"column:download_url;type:text"                          json:"downloadURL"`
 | 
						|
	CreateTime  time.Time `gorm:"create_time;index:create_time_index"                    json:"createTime"`
 | 
						|
}
 |