// 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 pkg import ( "time" mongoModel "github.com/openimsdk/open-im-server/v3/pkg/common/db/table/relation" mysqlModel "github.com/openimsdk/open-im-server/v3/tools/data-conversion/openim/mysql/v3" mongoModelRtc "github.com/openimsdk/open-im-server/v3/tools/up35/pkg/internal/rtc/mongo/table" mysqlModelRtc "github.com/openimsdk/open-im-server/v3/tools/up35/pkg/internal/rtc/mysql" ) type convert struct{} func (convert) User(v mysqlModel.UserModel) mongoModel.UserModel { return mongoModel.UserModel{ UserID: v.UserID, Nickname: v.Nickname, FaceURL: v.FaceURL, Ex: v.Ex, AppMangerLevel: v.AppMangerLevel, GlobalRecvMsgOpt: v.GlobalRecvMsgOpt, CreateTime: v.CreateTime, } } func (convert) Friend(v mysqlModel.FriendModel) mongoModel.FriendModel { return mongoModel.FriendModel{ OwnerUserID: v.OwnerUserID, FriendUserID: v.FriendUserID, Remark: v.Remark, CreateTime: v.CreateTime, AddSource: v.AddSource, OperatorUserID: v.OperatorUserID, Ex: v.Ex, } } func (convert) FriendRequest(v mysqlModel.FriendRequestModel) mongoModel.FriendRequestModel { return mongoModel.FriendRequestModel{ FromUserID: v.FromUserID, ToUserID: v.ToUserID, HandleResult: v.HandleResult, ReqMsg: v.ReqMsg, CreateTime: v.CreateTime, HandlerUserID: v.HandlerUserID, HandleMsg: v.HandleMsg, HandleTime: v.HandleTime, Ex: v.Ex, } } func (convert) Black(v mysqlModel.BlackModel) mongoModel.BlackModel { return mongoModel.BlackModel{ OwnerUserID: v.OwnerUserID, BlockUserID: v.BlockUserID, CreateTime: v.CreateTime, AddSource: v.AddSource, OperatorUserID: v.OperatorUserID, Ex: v.Ex, } } func (convert) Group(v mysqlModel.GroupModel) mongoModel.GroupModel { return mongoModel.GroupModel{ GroupID: v.GroupID, GroupName: v.GroupName, Notification: v.Notification, Introduction: v.Introduction, FaceURL: v.FaceURL, CreateTime: v.CreateTime, Ex: v.Ex, Status: v.Status, CreatorUserID: v.CreatorUserID, GroupType: v.GroupType, NeedVerification: v.NeedVerification, LookMemberInfo: v.LookMemberInfo, ApplyMemberFriend: v.ApplyMemberFriend, NotificationUpdateTime: v.NotificationUpdateTime, NotificationUserID: v.NotificationUserID, } } func (convert) GroupMember(v mysqlModel.GroupMemberModel) mongoModel.GroupMemberModel { return mongoModel.GroupMemberModel{ GroupID: v.GroupID, UserID: v.UserID, Nickname: v.Nickname, FaceURL: v.FaceURL, RoleLevel: v.RoleLevel, JoinTime: v.JoinTime, JoinSource: v.JoinSource, InviterUserID: v.InviterUserID, OperatorUserID: v.OperatorUserID, MuteEndTime: v.MuteEndTime, Ex: v.Ex, } } func (convert) GroupRequest(v mysqlModel.GroupRequestModel) mongoModel.GroupRequestModel { return mongoModel.GroupRequestModel{ UserID: v.UserID, GroupID: v.GroupID, HandleResult: v.HandleResult, ReqMsg: v.ReqMsg, HandledMsg: v.HandledMsg, ReqTime: v.ReqTime, HandleUserID: v.HandleUserID, HandledTime: v.HandledTime, JoinSource: v.JoinSource, InviterUserID: v.InviterUserID, Ex: v.Ex, } } func (convert) Conversation(v mysqlModel.ConversationModel) mongoModel.ConversationModel { return mongoModel.ConversationModel{ OwnerUserID: v.OwnerUserID, ConversationID: v.ConversationID, ConversationType: v.ConversationType, UserID: v.UserID, GroupID: v.GroupID, RecvMsgOpt: v.RecvMsgOpt, IsPinned: v.IsPinned, IsPrivateChat: v.IsPrivateChat, BurnDuration: v.BurnDuration, GroupAtType: v.GroupAtType, AttachedInfo: v.AttachedInfo, Ex: v.Ex, MaxSeq: v.MaxSeq, MinSeq: v.MinSeq, CreateTime: v.CreateTime, IsMsgDestruct: v.IsMsgDestruct, MsgDestructTime: v.MsgDestructTime, LatestMsgDestructTime: v.LatestMsgDestructTime, } } func (convert) Object(engine string) func(v mysqlModel.ObjectModel) mongoModel.ObjectModel { return func(v mysqlModel.ObjectModel) mongoModel.ObjectModel { return mongoModel.ObjectModel{ Name: v.Name, UserID: v.UserID, Hash: v.Hash, Engine: engine, Key: v.Key, Size: v.Size, ContentType: v.ContentType, Group: v.Cause, CreateTime: v.CreateTime, } } } func (convert) Log(v mysqlModel.Log) mongoModel.LogModel { return mongoModel.LogModel{ LogID: v.LogID, Platform: v.Platform, UserID: v.UserID, CreateTime: v.CreateTime, Url: v.Url, FileName: v.FileName, SystemType: v.SystemType, Version: v.Version, Ex: v.Ex, } } func (convert) SignalModel(v mysqlModelRtc.SignalModel) mongoModelRtc.SignalModel { return mongoModelRtc.SignalModel{ SID: v.SID, InviterUserID: v.InviterUserID, CustomData: v.CustomData, GroupID: v.GroupID, RoomID: v.RoomID, Timeout: v.Timeout, MediaType: v.MediaType, PlatformID: v.PlatformID, SessionType: v.SessionType, InitiateTime: v.InitiateTime, EndTime: v.EndTime, FileURL: v.FileURL, Title: v.Title, Desc: v.Desc, Ex: v.Ex, IOSPushSound: v.IOSPushSound, IOSBadgeCount: v.IOSBadgeCount, SignalInfo: v.SignalInfo, } } func (convert) SignalInvitationModel(v mysqlModelRtc.SignalInvitationModel) mongoModelRtc.SignalInvitationModel { return mongoModelRtc.SignalInvitationModel{ SID: v.SID, UserID: v.UserID, Status: v.Status, InitiateTime: v.InitiateTime, HandleTime: v.HandleTime, } } func (convert) Meeting(v mysqlModelRtc.MeetingInfo) mongoModelRtc.MeetingInfo { return mongoModelRtc.MeetingInfo{ RoomID: v.RoomID, MeetingName: v.MeetingName, HostUserID: v.HostUserID, Status: v.Status, StartTime: time.Unix(v.StartTime, 0), EndTime: time.Unix(v.EndTime, 0), CreateTime: v.CreateTime, Ex: v.Ex, } } func (convert) MeetingInvitationInfo(v mysqlModelRtc.MeetingInvitationInfo) mongoModelRtc.MeetingInvitationInfo { return mongoModelRtc.MeetingInvitationInfo{ RoomID: v.RoomID, UserID: v.UserID, CreateTime: v.CreateTime, } } func (convert) MeetingVideoRecord(v mysqlModelRtc.MeetingVideoRecord) mongoModelRtc.MeetingVideoRecord { return mongoModelRtc.MeetingVideoRecord{ RoomID: v.RoomID, FileURL: v.FileURL, CreateTime: v.CreateTime, } }