mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-10-27 14:02:15 +08:00 
			
		
		
		
	* feat: add openim server code Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim env Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim mongo and redis env Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add zk and redis mongo env Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add kafka and redis mongo env Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim docker Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim docker Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim docker Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim copyright Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * fix: docker compose Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * fix: remove openim chat config file Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim config set Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim config set Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * fix: fix Security vulnerability Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * fix: fix Security vulnerability Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * fix: docker compose Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * Update kubernetes.go * Update discoveryregister.go * fix: copyright-add Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> --------- Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com>
		
			
				
	
	
		
			110 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright © 2023 OpenIM. All rights reserved.
 | |
| //
 | |
| // Licensed under the Apache License, Version 2.0 (the "License");
 | |
| // you may not use this file except in compliance with the License.
 | |
| // You may obtain a copy of the License at
 | |
| //
 | |
| //     http://www.apache.org/licenses/LICENSE-2.0
 | |
| //
 | |
| // Unless required by applicable law or agreed to in writing, software
 | |
| // distributed under the License is distributed on an "AS IS" BASIS,
 | |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| // See the License for the specific language governing permissions and
 | |
| // limitations under the License.
 | |
| 
 | |
| 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"`
 | |
| }
 |