// 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. syntax = "proto3"; package OpenIMServer.conversation; import "wrapperspb/wrapperspb.proto"; option go_package = "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/conversation"; message Conversation{ string ownerUserID = 1; string conversationID = 2; int32 recvMsgOpt = 3; int32 conversationType = 4; string userID = 5; string groupID = 6; bool isPinned = 7; string attachedInfo = 8; bool isPrivateChat = 9; int32 groupAtType = 10; string ex = 11; int32 burnDuration = 12; int64 minSeq = 13; int64 maxSeq = 14; int64 msgDestructTime = 15; int64 latestMsgDestructTime = 16; bool isMsgDestruct = 17; } message ConversationReq{ string conversationID = 1; int32 conversationType = 2; string userID = 3; string groupID = 4; OpenIMServer.protobuf.Int32Value recvMsgOpt = 5; OpenIMServer.protobuf.BoolValue isPinned = 6; OpenIMServer.protobuf.StringValue attachedInfo = 7; OpenIMServer.protobuf.BoolValue isPrivateChat = 8; OpenIMServer.protobuf.StringValue ex = 9; OpenIMServer.protobuf.Int32Value burnDuration = 10; OpenIMServer.protobuf.Int64Value minSeq = 11; OpenIMServer.protobuf.Int64Value maxSeq = 12; OpenIMServer.protobuf.Int32Value groupAtType = 13; OpenIMServer.protobuf.Int64Value msgDestructTime = 14; OpenIMServer.protobuf.BoolValue isMsgDestruct = 15; } message SetConversationReq{ Conversation conversation = 1; } message SetConversationResp{ } message GetConversationReq{ string conversationID = 1; string ownerUserID = 2; } message GetConversationResp{ Conversation conversation = 2; } message GetConversationsReq{ string ownerUserID = 1; repeated string conversationIDs = 2; } message GetConversationsResp{ repeated Conversation conversations = 2; } message GetAllConversationsReq{ string ownerUserID = 1; } message GetAllConversationsResp{ repeated Conversation conversations = 2; } message GetRecvMsgNotNotifyUserIDsReq { string groupID = 1; } message GetRecvMsgNotNotifyUserIDsResp { repeated string userIDs = 1; } message CreateSingleChatConversationsReq { string recvID = 1; string sendID = 2; } message CreateSingleChatConversationsResp { } message CreateGroupChatConversationsReq { repeated string userIDs = 1; string groupID = 2; } message CreateGroupChatConversationsResp { } message SetConversationMaxSeqReq { string conversationID = 1; repeated string ownerUserID = 2; int64 maxSeq = 3; } message SetConversationMaxSeqResp { } message GetConversationIDsReq { string userID = 1; } message GetConversationIDsResp { repeated string conversationIDs = 1; } message SetConversationsReq { repeated string userIDs = 1; ConversationReq conversation = 2; } message SetConversationsResp { } message GetUserConversationIDsHashReq { string ownerUserID = 1; } message GetUserConversationIDsHashResp { uint64 hash = 1; } message GetConversationsByConversationIDReq { repeated string conversationIDs = 1; } message GetConversationsByConversationIDResp { repeated Conversation conversations = 1; } service conversation { rpc GetConversation(GetConversationReq)returns(GetConversationResp); rpc GetAllConversations(GetAllConversationsReq)returns(GetAllConversationsResp); rpc GetConversations(GetConversationsReq)returns(GetConversationsResp); rpc SetConversation(SetConversationReq)returns(SetConversationResp); rpc GetRecvMsgNotNotifyUserIDs(GetRecvMsgNotNotifyUserIDsReq) returns (GetRecvMsgNotNotifyUserIDsResp); rpc CreateSingleChatConversations(CreateSingleChatConversationsReq) returns (CreateSingleChatConversationsResp); rpc CreateGroupChatConversations(CreateGroupChatConversationsReq) returns (CreateGroupChatConversationsResp); rpc SetConversationMaxSeq(SetConversationMaxSeqReq) returns(SetConversationMaxSeqResp); rpc GetConversationIDs(GetConversationIDsReq) returns(GetConversationIDsResp); rpc SetConversations(SetConversationsReq) returns(SetConversationsResp); rpc GetUserConversationIDsHash(GetUserConversationIDsHashReq) returns(GetUserConversationIDsHashResp); rpc GetConversationsByConversationID(GetConversationsByConversationIDReq) returns(GetConversationsByConversationIDResp); }