diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index e150a20e1..cfda0abb8 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -26,7 +26,7 @@ func SetConversation(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.Conversation = &pbUser.Conversation{} + reqPb.Conversation = &pbConversation.Conversation{} err := utils.CopyStructFields(&reqPb, req) err = utils.CopyStructFields(reqPb.Conversation, req.Conversation) if err != nil { diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 813af55ff..9bf06b8fc 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -11,6 +11,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbConversation "Open_IM/pkg/proto/conversation" pbFriend "Open_IM/pkg/proto/friend" pbOrganization "Open_IM/pkg/proto/organization" sdkws "Open_IM/pkg/proto/sdk_ws" @@ -85,7 +86,7 @@ func (s *userServer) Run() { log.NewInfo("0", "rpc user success") } -func syncPeerUserConversation(conversation *pbUser.Conversation, operationID string) error { +func syncPeerUserConversation(conversation *pbConversation.Conversation, operationID string) error { peerUserConversation := db.Conversation{ OwnerUserID: conversation.UserID, ConversationID: utils.GetConversationIDBySessionType(conversation.OwnerUserID, constant.SingleChatType), @@ -180,7 +181,7 @@ func (s *userServer) BatchSetConversations(ctx context.Context, req *pbUser.Batc func (s *userServer) GetAllConversations(ctx context.Context, req *pbUser.GetAllConversationsReq) (*pbUser.GetAllConversationsResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.GetAllConversationsResp{Conversations: []*pbUser.Conversation{}} + resp := &pbUser.GetAllConversationsResp{Conversations: []*pbConversation.Conversation{}} conversations, err := rocksCache.GetUserAllConversationList(req.OwnerUserID) log.NewDebug(req.OperationID, "conversations: ", conversations) if err != nil { @@ -198,7 +199,7 @@ func (s *userServer) GetAllConversations(ctx context.Context, req *pbUser.GetAll func (s *userServer) GetConversation(ctx context.Context, req *pbUser.GetConversationReq) (*pbUser.GetConversationResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.GetConversationResp{Conversation: &pbUser.Conversation{}} + resp := &pbUser.GetConversationResp{Conversation: &pbConversation.Conversation{}} conversation, err := rocksCache.GetConversationFromCache(req.OwnerUserID, req.ConversationID) log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation) if err != nil { @@ -216,7 +217,7 @@ func (s *userServer) GetConversation(ctx context.Context, req *pbUser.GetConvers func (s *userServer) GetConversations(ctx context.Context, req *pbUser.GetConversationsReq) (*pbUser.GetConversationsResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.GetConversationsResp{Conversations: []*pbUser.Conversation{}} + resp := &pbUser.GetConversationsResp{Conversations: []*pbConversation.Conversation{}} conversations, err := rocksCache.GetConversationsFromCache(req.OwnerUserID, req.ConversationIDs) log.NewDebug("", utils.GetSelfFuncName(), "conversations", conversations) if err != nil { diff --git a/pkg/base_info/conversation_api_struct.go b/pkg/base_info/conversation_api_struct.go index 30890f7eb..c0cb9fccf 100644 --- a/pkg/base_info/conversation_api_struct.go +++ b/pkg/base_info/conversation_api_struct.go @@ -33,20 +33,21 @@ type SetReceiveMessageOptResp struct { } type Conversation struct { - OwnerUserID string `json:"ownerUserID" binding:"required"` - ConversationID string `json:"conversationID" binding:"required"` - ConversationType int32 `json:"conversationType" binding:"required"` - UserID string `json:"userID"` - GroupID string `json:"groupID"` - RecvMsgOpt int32 `json:"recvMsgOpt" binding:"omitempty,oneof=0 1 2"` - UnreadCount int32 `json:"unreadCount" binding:"omitempty"` - DraftTextTime int64 `json:"draftTextTime"` - IsPinned bool `json:"isPinned" binding:"omitempty"` - IsPrivateChat bool `json:"isPrivateChat"` - GroupAtType int32 `json:"groupAtType"` - IsNotInGroup bool `json:"isNotInGroup"` - AttachedInfo string `json:"attachedInfo"` - Ex string `json:"ex"` + OwnerUserID string `json:"ownerUserID" binding:"required"` + ConversationID string `json:"conversationID" binding:"required"` + ConversationType int32 `json:"conversationType" binding:"required"` + UserID string `json:"userID"` + GroupID string `json:"groupID"` + RecvMsgOpt int32 `json:"recvMsgOpt" binding:"omitempty,oneof=0 1 2"` + UnreadCount int32 `json:"unreadCount" binding:"omitempty"` + DraftTextTime int64 `json:"draftTextTime"` + IsPinned bool `json:"isPinned" binding:"omitempty"` + IsPrivateChat bool `json:"isPrivateChat"` + GroupAtType int32 `json:"groupAtType"` + IsNotInGroup bool `json:"isNotInGroup"` + UpdateUnreadCountTime int64 ` json:"updateUnreadCountTime"` + AttachedInfo string `json:"attachedInfo"` + Ex string `json:"ex"` } type SetConversationReq struct { diff --git a/pkg/proto/conversation/conversation.pb.go b/pkg/proto/conversation/conversation.pb.go index bf76bfe67..de4d4a793 100644 --- a/pkg/proto/conversation/conversation.pb.go +++ b/pkg/proto/conversation/conversation.pb.go @@ -35,7 +35,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_conversation_e6bf38f800b9bed2, []int{0} + return fileDescriptor_conversation_ac55165355a1b6e6, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -70,30 +70,31 @@ func (m *CommonResp) GetErrMsg() string { } type Conversation struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` - ConversationID string `protobuf:"bytes,2,opt,name=conversationID" json:"conversationID,omitempty"` - RecvMsgOpt int32 `protobuf:"varint,3,opt,name=recvMsgOpt" json:"recvMsgOpt,omitempty"` - ConversationType int32 `protobuf:"varint,4,opt,name=conversationType" json:"conversationType,omitempty"` - UserID string `protobuf:"bytes,5,opt,name=userID" json:"userID,omitempty"` - GroupID string `protobuf:"bytes,6,opt,name=groupID" json:"groupID,omitempty"` - UnreadCount int32 `protobuf:"varint,7,opt,name=unreadCount" json:"unreadCount,omitempty"` - DraftTextTime int64 `protobuf:"varint,8,opt,name=draftTextTime" json:"draftTextTime,omitempty"` - IsPinned bool `protobuf:"varint,9,opt,name=isPinned" json:"isPinned,omitempty"` - AttachedInfo string `protobuf:"bytes,10,opt,name=attachedInfo" json:"attachedInfo,omitempty"` - IsPrivateChat bool `protobuf:"varint,11,opt,name=isPrivateChat" json:"isPrivateChat,omitempty"` - GroupAtType int32 `protobuf:"varint,12,opt,name=groupAtType" json:"groupAtType,omitempty"` - IsNotInGroup bool `protobuf:"varint,13,opt,name=isNotInGroup" json:"isNotInGroup,omitempty"` - Ex string `protobuf:"bytes,14,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` + ConversationID string `protobuf:"bytes,2,opt,name=conversationID" json:"conversationID,omitempty"` + RecvMsgOpt int32 `protobuf:"varint,3,opt,name=recvMsgOpt" json:"recvMsgOpt,omitempty"` + ConversationType int32 `protobuf:"varint,4,opt,name=conversationType" json:"conversationType,omitempty"` + UserID string `protobuf:"bytes,5,opt,name=userID" json:"userID,omitempty"` + GroupID string `protobuf:"bytes,6,opt,name=groupID" json:"groupID,omitempty"` + UnreadCount int32 `protobuf:"varint,7,opt,name=unreadCount" json:"unreadCount,omitempty"` + DraftTextTime int64 `protobuf:"varint,8,opt,name=draftTextTime" json:"draftTextTime,omitempty"` + IsPinned bool `protobuf:"varint,9,opt,name=isPinned" json:"isPinned,omitempty"` + AttachedInfo string `protobuf:"bytes,10,opt,name=attachedInfo" json:"attachedInfo,omitempty"` + IsPrivateChat bool `protobuf:"varint,11,opt,name=isPrivateChat" json:"isPrivateChat,omitempty"` + GroupAtType int32 `protobuf:"varint,12,opt,name=groupAtType" json:"groupAtType,omitempty"` + IsNotInGroup bool `protobuf:"varint,13,opt,name=isNotInGroup" json:"isNotInGroup,omitempty"` + Ex string `protobuf:"bytes,14,opt,name=ex" json:"ex,omitempty"` + UpdateUnreadCountTime int64 `protobuf:"varint,15,opt,name=updateUnreadCountTime" json:"updateUnreadCountTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *Conversation) Reset() { *m = Conversation{} } func (m *Conversation) String() string { return proto.CompactTextString(m) } func (*Conversation) ProtoMessage() {} func (*Conversation) Descriptor() ([]byte, []int) { - return fileDescriptor_conversation_e6bf38f800b9bed2, []int{1} + return fileDescriptor_conversation_ac55165355a1b6e6, []int{1} } func (m *Conversation) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Conversation.Unmarshal(m, b) @@ -211,6 +212,13 @@ func (m *Conversation) GetEx() string { return "" } +func (m *Conversation) GetUpdateUnreadCountTime() int64 { + if m != nil { + return m.UpdateUnreadCountTime + } + return 0 +} + type ModifyConversationFieldReq struct { Conversation *Conversation `protobuf:"bytes,1,opt,name=conversation" json:"conversation,omitempty"` FieldType int32 `protobuf:"varint,2,opt,name=fieldType" json:"fieldType,omitempty"` @@ -225,7 +233,7 @@ func (m *ModifyConversationFieldReq) Reset() { *m = ModifyConversationFi func (m *ModifyConversationFieldReq) String() string { return proto.CompactTextString(m) } func (*ModifyConversationFieldReq) ProtoMessage() {} func (*ModifyConversationFieldReq) Descriptor() ([]byte, []int) { - return fileDescriptor_conversation_e6bf38f800b9bed2, []int{2} + return fileDescriptor_conversation_ac55165355a1b6e6, []int{2} } func (m *ModifyConversationFieldReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ModifyConversationFieldReq.Unmarshal(m, b) @@ -284,7 +292,7 @@ func (m *ModifyConversationFieldResp) Reset() { *m = ModifyConversationF func (m *ModifyConversationFieldResp) String() string { return proto.CompactTextString(m) } func (*ModifyConversationFieldResp) ProtoMessage() {} func (*ModifyConversationFieldResp) Descriptor() ([]byte, []int) { - return fileDescriptor_conversation_e6bf38f800b9bed2, []int{3} + return fileDescriptor_conversation_ac55165355a1b6e6, []int{3} } func (m *ModifyConversationFieldResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ModifyConversationFieldResp.Unmarshal(m, b) @@ -391,39 +399,40 @@ var _Conversation_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("conversation/conversation.proto", fileDescriptor_conversation_e6bf38f800b9bed2) -} - -var fileDescriptor_conversation_e6bf38f800b9bed2 = []byte{ - // 475 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xdf, 0x8a, 0xd3, 0x40, - 0x14, 0x87, 0x49, 0xbb, 0xdb, 0x6d, 0x4e, 0xbb, 0x45, 0xe6, 0x42, 0x87, 0xae, 0x7f, 0x42, 0x10, - 0x89, 0x5e, 0x54, 0x58, 0x6f, 0x04, 0x61, 0x41, 0x53, 0x94, 0x80, 0xd5, 0x65, 0xa8, 0x08, 0xde, - 0xc5, 0xe6, 0xb4, 0x3b, 0x60, 0x67, 0xe2, 0xcc, 0xb4, 0x76, 0x6f, 0x7c, 0x32, 0x9f, 0xc4, 0xa7, - 0x91, 0x99, 0xb4, 0xbb, 0x33, 0x95, 0xc2, 0x5e, 0x9e, 0x2f, 0x27, 0xbf, 0xf9, 0x26, 0xe7, 0x04, - 0x9e, 0xcc, 0xa4, 0x58, 0xa3, 0xd2, 0xa5, 0xe1, 0x52, 0xbc, 0xf4, 0x8b, 0x51, 0xad, 0xa4, 0x91, - 0xa4, 0xef, 0xb3, 0xf4, 0x02, 0x20, 0x97, 0xcb, 0xa5, 0x14, 0x0c, 0x75, 0x4d, 0x28, 0x9c, 0xa0, - 0x52, 0xb9, 0xac, 0x90, 0x46, 0x49, 0x94, 0x1d, 0xb3, 0x5d, 0x49, 0xee, 0x43, 0x07, 0x95, 0x9a, - 0xe8, 0x05, 0x6d, 0x25, 0x51, 0x16, 0xb3, 0x6d, 0x95, 0xfe, 0x6d, 0x43, 0x3f, 0xf7, 0x02, 0x49, - 0x02, 0x3d, 0xf9, 0x4b, 0xa0, 0xfa, 0xa2, 0x51, 0x15, 0x63, 0x17, 0x13, 0x33, 0x1f, 0x91, 0x67, - 0x30, 0xf0, 0x15, 0x8a, 0xf1, 0x36, 0x72, 0x8f, 0x92, 0xc7, 0x00, 0x0a, 0x67, 0xeb, 0x89, 0x5e, - 0x7c, 0xae, 0x0d, 0x6d, 0x3b, 0x1f, 0x8f, 0x90, 0x17, 0x70, 0xcf, 0x7f, 0x63, 0x7a, 0x5d, 0x23, - 0x3d, 0x72, 0x5d, 0xff, 0x71, 0xab, 0xbf, 0x6a, 0x84, 0x8e, 0x1b, 0xfd, 0xa6, 0xb2, 0x17, 0x5e, - 0x28, 0xb9, 0xaa, 0x8b, 0x31, 0xed, 0xb8, 0x07, 0xbb, 0xd2, 0xde, 0x63, 0x25, 0x14, 0x96, 0x55, - 0x2e, 0x57, 0xc2, 0xd0, 0x13, 0x17, 0xec, 0x23, 0xf2, 0x14, 0x4e, 0x2b, 0x55, 0xce, 0xcd, 0x14, - 0x37, 0x66, 0xca, 0x97, 0x48, 0xbb, 0x49, 0x94, 0xb5, 0x59, 0x08, 0xc9, 0x10, 0xba, 0x5c, 0x5f, - 0x72, 0x21, 0xb0, 0xa2, 0x71, 0x12, 0x65, 0x5d, 0x76, 0x53, 0x93, 0x14, 0xfa, 0xa5, 0x31, 0xe5, - 0xec, 0x0a, 0xab, 0x42, 0xcc, 0x25, 0x05, 0xa7, 0x10, 0x30, 0x7b, 0x0a, 0xd7, 0x97, 0x8a, 0xaf, - 0x4b, 0x83, 0xf9, 0x55, 0x69, 0x68, 0xcf, 0x85, 0x84, 0xd0, 0xda, 0x3a, 0xf1, 0xb7, 0xc6, 0x7d, - 0x86, 0x7e, 0x63, 0xeb, 0x21, 0x7b, 0x16, 0xd7, 0x9f, 0xa4, 0x29, 0xc4, 0x07, 0x4b, 0xe9, 0xa9, - 0x8b, 0x09, 0x18, 0x19, 0x40, 0x0b, 0x37, 0x74, 0xe0, 0x2c, 0x5a, 0xb8, 0x49, 0xff, 0x44, 0x30, - 0x9c, 0xc8, 0x8a, 0xcf, 0xaf, 0xfd, 0x11, 0xbf, 0xe7, 0xf8, 0xa3, 0x62, 0xf8, 0x93, 0x5c, 0x40, - 0xb0, 0x4b, 0x6e, 0xd6, 0xbd, 0xf3, 0xe1, 0x28, 0x58, 0x3a, 0xff, 0x4d, 0x16, 0xf4, 0x93, 0x87, - 0x10, 0xcf, 0x6d, 0x96, 0x53, 0x6e, 0x39, 0xe5, 0x5b, 0x60, 0xc7, 0xdf, 0x0c, 0xe9, 0x23, 0xd7, - 0x76, 0xfc, 0xed, 0x2c, 0x66, 0x1e, 0x71, 0x8b, 0x56, 0xa3, 0xda, 0xed, 0xd0, 0xd1, 0x76, 0xd1, - 0x6e, 0x51, 0xfa, 0x15, 0xce, 0x0e, 0xda, 0xeb, 0x9a, 0xbc, 0x06, 0x98, 0xdd, 0xac, 0xfe, 0x56, - 0x9e, 0xee, 0xcb, 0xef, 0x9e, 0x33, 0xaf, 0xf7, 0xfc, 0x77, 0x78, 0x71, 0x22, 0xe0, 0xc1, 0x81, - 0x83, 0x48, 0x16, 0x06, 0x1e, 0xfe, 0x9a, 0xc3, 0xe7, 0x77, 0xec, 0xd4, 0xf5, 0xbb, 0x47, 0xdf, - 0xce, 0x46, 0xc1, 0xaf, 0xfd, 0xc6, 0x2f, 0xbe, 0x77, 0xdc, 0x8f, 0xfe, 0xea, 0x5f, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x8d, 0x8a, 0xf6, 0x60, 0x0b, 0x04, 0x00, 0x00, + proto.RegisterFile("conversation/conversation.proto", fileDescriptor_conversation_ac55165355a1b6e6) +} + +var fileDescriptor_conversation_ac55165355a1b6e6 = []byte{ + // 494 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0x5f, 0x8b, 0x13, 0x31, + 0x14, 0xc5, 0x99, 0x6e, 0xb7, 0xdb, 0xde, 0x76, 0xab, 0x04, 0xd4, 0xd0, 0xf5, 0x4f, 0x19, 0x44, + 0x46, 0x1f, 0x2a, 0xac, 0x3e, 0x08, 0xc2, 0x82, 0x4e, 0x51, 0x06, 0xac, 0x2e, 0xa1, 0x8b, 0xe0, + 0xdb, 0xd8, 0xb9, 0xed, 0x06, 0x6c, 0x32, 0x26, 0x99, 0xda, 0x7d, 0xf1, 0x33, 0xf8, 0x81, 0xfc, + 0x70, 0x92, 0x4c, 0xbb, 0x4d, 0x56, 0x0b, 0x3e, 0xde, 0x5f, 0xee, 0x9c, 0x9c, 0x33, 0x3d, 0x1d, + 0x78, 0x34, 0x93, 0x62, 0x85, 0x4a, 0xe7, 0x86, 0x4b, 0xf1, 0xdc, 0x1f, 0x46, 0xa5, 0x92, 0x46, + 0x92, 0x9e, 0xcf, 0xe2, 0x33, 0x80, 0x54, 0x2e, 0x97, 0x52, 0x30, 0xd4, 0x25, 0xa1, 0x70, 0x84, + 0x4a, 0xa5, 0xb2, 0x40, 0x1a, 0x0d, 0xa3, 0xe4, 0x90, 0x6d, 0x47, 0x72, 0x17, 0x5a, 0xa8, 0xd4, + 0x44, 0x2f, 0x68, 0x63, 0x18, 0x25, 0x1d, 0xb6, 0x99, 0xe2, 0x5f, 0x4d, 0xe8, 0xa5, 0x9e, 0x20, + 0x19, 0x42, 0x57, 0xfe, 0x10, 0xa8, 0x2e, 0x34, 0xaa, 0x6c, 0xec, 0x64, 0x3a, 0xcc, 0x47, 0xe4, + 0x09, 0xf4, 0x7d, 0x0b, 0xd9, 0x78, 0x23, 0x79, 0x83, 0x92, 0x87, 0x00, 0x0a, 0x67, 0xab, 0x89, + 0x5e, 0x7c, 0x2a, 0x0d, 0x3d, 0x70, 0x7e, 0x3c, 0x42, 0x9e, 0xc1, 0x6d, 0xff, 0x89, 0xe9, 0x55, + 0x89, 0xb4, 0xe9, 0xb6, 0xfe, 0xe2, 0xd6, 0x7e, 0x55, 0x1b, 0x3a, 0xac, 0xed, 0xd7, 0x93, 0x0d, + 0xbc, 0x50, 0xb2, 0x2a, 0xb3, 0x31, 0x6d, 0xb9, 0x83, 0xed, 0x68, 0x73, 0x54, 0x42, 0x61, 0x5e, + 0xa4, 0xb2, 0x12, 0x86, 0x1e, 0x39, 0x61, 0x1f, 0x91, 0xc7, 0x70, 0x5c, 0xa8, 0x7c, 0x6e, 0xa6, + 0xb8, 0x36, 0x53, 0xbe, 0x44, 0xda, 0x1e, 0x46, 0xc9, 0x01, 0x0b, 0x21, 0x19, 0x40, 0x9b, 0xeb, + 0x73, 0x2e, 0x04, 0x16, 0xb4, 0x33, 0x8c, 0x92, 0x36, 0xbb, 0x9e, 0x49, 0x0c, 0xbd, 0xdc, 0x98, + 0x7c, 0x76, 0x89, 0x45, 0x26, 0xe6, 0x92, 0x82, 0xb3, 0x10, 0x30, 0x7b, 0x0b, 0xd7, 0xe7, 0x8a, + 0xaf, 0x72, 0x83, 0xe9, 0x65, 0x6e, 0x68, 0xd7, 0x89, 0x84, 0xd0, 0xba, 0x75, 0xc6, 0xdf, 0x18, + 0xf7, 0x1a, 0x7a, 0xb5, 0x5b, 0x0f, 0xd9, 0xbb, 0xb8, 0xfe, 0x28, 0x4d, 0x26, 0xde, 0x5b, 0x4a, + 0x8f, 0x9d, 0x4c, 0xc0, 0x48, 0x1f, 0x1a, 0xb8, 0xa6, 0x7d, 0xe7, 0xa2, 0x81, 0x6b, 0xf2, 0x12, + 0xee, 0x54, 0x65, 0x91, 0x1b, 0xbc, 0xd8, 0xc5, 0x76, 0x49, 0x6f, 0xb9, 0xa4, 0xff, 0x3e, 0x8c, + 0x7f, 0x47, 0x30, 0x98, 0xc8, 0x82, 0xcf, 0xaf, 0xfc, 0x62, 0xbc, 0xe3, 0xf8, 0xad, 0x60, 0xf8, + 0x9d, 0x9c, 0x41, 0xd0, 0x40, 0xd7, 0x90, 0xee, 0xe9, 0x60, 0x14, 0x54, 0xd5, 0x7f, 0x92, 0x05, + 0xfb, 0xe4, 0x3e, 0x74, 0xe6, 0x56, 0xcb, 0x05, 0x6d, 0xb8, 0xa0, 0x3b, 0x60, 0x4b, 0x53, 0xff, + 0xb4, 0x1f, 0xb8, 0xb6, 0xa5, 0x39, 0x48, 0x3a, 0xcc, 0x23, 0xae, 0x9e, 0x25, 0xaa, 0x6d, 0xf3, + 0x9a, 0x9b, 0x7a, 0xee, 0x50, 0xfc, 0x19, 0x4e, 0xf6, 0xba, 0xd7, 0x25, 0x79, 0x05, 0x30, 0xbb, + 0xfe, 0xc3, 0x6c, 0xcc, 0xd3, 0x9b, 0xe6, 0xb7, 0xe7, 0xcc, 0xdb, 0x3d, 0xfd, 0x19, 0x06, 0x27, + 0x02, 0xee, 0xed, 0xb9, 0x88, 0x24, 0xa1, 0xe0, 0xfe, 0xb7, 0x39, 0x78, 0xfa, 0x9f, 0x9b, 0xba, + 0x7c, 0xfb, 0xe0, 0xcb, 0xc9, 0x28, 0xf8, 0x20, 0xbc, 0xf6, 0x87, 0xaf, 0x2d, 0xf7, 0x79, 0x78, + 0xf1, 0x27, 0x00, 0x00, 0xff, 0xff, 0x12, 0x56, 0xaa, 0x7b, 0x41, 0x04, 0x00, 0x00, } diff --git a/pkg/proto/conversation/conversation.proto b/pkg/proto/conversation/conversation.proto index 5ae5f1142..48973fdc1 100644 --- a/pkg/proto/conversation/conversation.proto +++ b/pkg/proto/conversation/conversation.proto @@ -21,6 +21,8 @@ message Conversation{ int32 groupAtType = 12; bool isNotInGroup = 13; string ex = 14; + int64 updateUnreadCountTime = 15; + } message ModifyConversationFieldReq{ Conversation conversation = 1; diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index df189119c..dc064a136 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -6,6 +6,7 @@ package user // import "./user" import proto "github.com/golang/protobuf/proto" import fmt "fmt" import math "math" +import conversation "Open_IM/pkg/proto/conversation" import sdk_ws "Open_IM/pkg/proto/sdk_ws" import ( @@ -36,7 +37,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{0} + return fileDescriptor_user_862a17c60dc96c16, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +84,7 @@ func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } func (*DeleteUsersReq) ProtoMessage() {} func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{1} + return fileDescriptor_user_862a17c60dc96c16, []int{1} } func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) @@ -136,7 +137,7 @@ func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } func (*DeleteUsersResp) ProtoMessage() {} func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{2} + return fileDescriptor_user_862a17c60dc96c16, []int{2} } func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) @@ -182,7 +183,7 @@ func (m *GetAllUserIDReq) Reset() { *m = GetAllUserIDReq{} } func (m *GetAllUserIDReq) String() string { return proto.CompactTextString(m) } func (*GetAllUserIDReq) ProtoMessage() {} func (*GetAllUserIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{3} + return fileDescriptor_user_862a17c60dc96c16, []int{3} } func (m *GetAllUserIDReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUserIDReq.Unmarshal(m, b) @@ -228,7 +229,7 @@ func (m *GetAllUserIDResp) Reset() { *m = GetAllUserIDResp{} } func (m *GetAllUserIDResp) String() string { return proto.CompactTextString(m) } func (*GetAllUserIDResp) ProtoMessage() {} func (*GetAllUserIDResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{4} + return fileDescriptor_user_862a17c60dc96c16, []int{4} } func (m *GetAllUserIDResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUserIDResp.Unmarshal(m, b) @@ -275,7 +276,7 @@ func (m *AccountCheckReq) Reset() { *m = AccountCheckReq{} } func (m *AccountCheckReq) String() string { return proto.CompactTextString(m) } func (*AccountCheckReq) ProtoMessage() {} func (*AccountCheckReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{5} + return fileDescriptor_user_862a17c60dc96c16, []int{5} } func (m *AccountCheckReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckReq.Unmarshal(m, b) @@ -328,7 +329,7 @@ func (m *AccountCheckResp) Reset() { *m = AccountCheckResp{} } func (m *AccountCheckResp) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp) ProtoMessage() {} func (*AccountCheckResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{6} + return fileDescriptor_user_862a17c60dc96c16, []int{6} } func (m *AccountCheckResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp.Unmarshal(m, b) @@ -374,7 +375,7 @@ func (m *AccountCheckResp_SingleUserStatus) Reset() { *m = AccountCheckR func (m *AccountCheckResp_SingleUserStatus) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{6, 0} + return fileDescriptor_user_862a17c60dc96c16, []int{6, 0} } func (m *AccountCheckResp_SingleUserStatus) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Unmarshal(m, b) @@ -421,7 +422,7 @@ func (m *GetUserInfoReq) Reset() { *m = GetUserInfoReq{} } func (m *GetUserInfoReq) String() string { return proto.CompactTextString(m) } func (*GetUserInfoReq) ProtoMessage() {} func (*GetUserInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{7} + return fileDescriptor_user_862a17c60dc96c16, []int{7} } func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) @@ -474,7 +475,7 @@ func (m *GetUserInfoResp) Reset() { *m = GetUserInfoResp{} } func (m *GetUserInfoResp) String() string { return proto.CompactTextString(m) } func (*GetUserInfoResp) ProtoMessage() {} func (*GetUserInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{8} + return fileDescriptor_user_862a17c60dc96c16, []int{8} } func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) @@ -521,7 +522,7 @@ func (m *UpdateUserInfoReq) Reset() { *m = UpdateUserInfoReq{} } func (m *UpdateUserInfoReq) String() string { return proto.CompactTextString(m) } func (*UpdateUserInfoReq) ProtoMessage() {} func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{9} + return fileDescriptor_user_862a17c60dc96c16, []int{9} } func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) @@ -573,7 +574,7 @@ func (m *UpdateUserInfoResp) Reset() { *m = UpdateUserInfoResp{} } func (m *UpdateUserInfoResp) String() string { return proto.CompactTextString(m) } func (*UpdateUserInfoResp) ProtoMessage() {} func (*UpdateUserInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{10} + return fileDescriptor_user_862a17c60dc96c16, []int{10} } func (m *UpdateUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoResp.Unmarshal(m, b) @@ -613,7 +614,7 @@ func (m *SetGlobalRecvMessageOptReq) Reset() { *m = SetGlobalRecvMessage func (m *SetGlobalRecvMessageOptReq) String() string { return proto.CompactTextString(m) } func (*SetGlobalRecvMessageOptReq) ProtoMessage() {} func (*SetGlobalRecvMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{11} + return fileDescriptor_user_862a17c60dc96c16, []int{11} } func (m *SetGlobalRecvMessageOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGlobalRecvMessageOptReq.Unmarshal(m, b) @@ -665,7 +666,7 @@ func (m *SetGlobalRecvMessageOptResp) Reset() { *m = SetGlobalRecvMessag func (m *SetGlobalRecvMessageOptResp) String() string { return proto.CompactTextString(m) } func (*SetGlobalRecvMessageOptResp) ProtoMessage() {} func (*SetGlobalRecvMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{12} + return fileDescriptor_user_862a17c60dc96c16, []int{12} } func (m *SetGlobalRecvMessageOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGlobalRecvMessageOptResp.Unmarshal(m, b) @@ -692,162 +693,20 @@ func (m *SetGlobalRecvMessageOptResp) GetCommonResp() *CommonResp { return nil } -type Conversation struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - ConversationID string `protobuf:"bytes,2,opt,name=ConversationID" json:"ConversationID,omitempty"` - RecvMsgOpt int32 `protobuf:"varint,3,opt,name=RecvMsgOpt" json:"RecvMsgOpt,omitempty"` - ConversationType int32 `protobuf:"varint,4,opt,name=ConversationType" json:"ConversationType,omitempty"` - UserID string `protobuf:"bytes,5,opt,name=UserID" json:"UserID,omitempty"` - GroupID string `protobuf:"bytes,6,opt,name=GroupID" json:"GroupID,omitempty"` - UnreadCount int32 `protobuf:"varint,7,opt,name=UnreadCount" json:"UnreadCount,omitempty"` - DraftTextTime int64 `protobuf:"varint,8,opt,name=DraftTextTime" json:"DraftTextTime,omitempty"` - IsPinned bool `protobuf:"varint,9,opt,name=IsPinned" json:"IsPinned,omitempty"` - AttachedInfo string `protobuf:"bytes,10,opt,name=AttachedInfo" json:"AttachedInfo,omitempty"` - IsPrivateChat bool `protobuf:"varint,11,opt,name=IsPrivateChat" json:"IsPrivateChat,omitempty"` - GroupAtType int32 `protobuf:"varint,12,opt,name=GroupAtType" json:"GroupAtType,omitempty"` - IsNotInGroup bool `protobuf:"varint,13,opt,name=IsNotInGroup" json:"IsNotInGroup,omitempty"` - Ex string `protobuf:"bytes,14,opt,name=Ex" json:"Ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Conversation) Reset() { *m = Conversation{} } -func (m *Conversation) String() string { return proto.CompactTextString(m) } -func (*Conversation) ProtoMessage() {} -func (*Conversation) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{13} -} -func (m *Conversation) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Conversation.Unmarshal(m, b) -} -func (m *Conversation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Conversation.Marshal(b, m, deterministic) -} -func (dst *Conversation) XXX_Merge(src proto.Message) { - xxx_messageInfo_Conversation.Merge(dst, src) -} -func (m *Conversation) XXX_Size() int { - return xxx_messageInfo_Conversation.Size(m) -} -func (m *Conversation) XXX_DiscardUnknown() { - xxx_messageInfo_Conversation.DiscardUnknown(m) -} - -var xxx_messageInfo_Conversation proto.InternalMessageInfo - -func (m *Conversation) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID - } - return "" -} - -func (m *Conversation) GetConversationID() string { - if m != nil { - return m.ConversationID - } - return "" -} - -func (m *Conversation) GetRecvMsgOpt() int32 { - if m != nil { - return m.RecvMsgOpt - } - return 0 -} - -func (m *Conversation) GetConversationType() int32 { - if m != nil { - return m.ConversationType - } - return 0 -} - -func (m *Conversation) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *Conversation) GetGroupID() string { - if m != nil { - return m.GroupID - } - return "" -} - -func (m *Conversation) GetUnreadCount() int32 { - if m != nil { - return m.UnreadCount - } - return 0 -} - -func (m *Conversation) GetDraftTextTime() int64 { - if m != nil { - return m.DraftTextTime - } - return 0 -} - -func (m *Conversation) GetIsPinned() bool { - if m != nil { - return m.IsPinned - } - return false -} - -func (m *Conversation) GetAttachedInfo() string { - if m != nil { - return m.AttachedInfo - } - return "" -} - -func (m *Conversation) GetIsPrivateChat() bool { - if m != nil { - return m.IsPrivateChat - } - return false -} - -func (m *Conversation) GetGroupAtType() int32 { - if m != nil { - return m.GroupAtType - } - return 0 -} - -func (m *Conversation) GetIsNotInGroup() bool { - if m != nil { - return m.IsNotInGroup - } - return false -} - -func (m *Conversation) GetEx() string { - if m != nil { - return m.Ex - } - return "" -} - type SetConversationReq struct { - Conversation *Conversation `protobuf:"bytes,1,opt,name=Conversation" json:"Conversation,omitempty"` - NotificationType int32 `protobuf:"varint,2,opt,name=notificationType" json:"notificationType,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Conversation *conversation.Conversation `protobuf:"bytes,1,opt,name=Conversation" json:"Conversation,omitempty"` + NotificationType int32 `protobuf:"varint,2,opt,name=notificationType" json:"notificationType,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *SetConversationReq) Reset() { *m = SetConversationReq{} } func (m *SetConversationReq) String() string { return proto.CompactTextString(m) } func (*SetConversationReq) ProtoMessage() {} func (*SetConversationReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{14} + return fileDescriptor_user_862a17c60dc96c16, []int{13} } func (m *SetConversationReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetConversationReq.Unmarshal(m, b) @@ -867,7 +726,7 @@ func (m *SetConversationReq) XXX_DiscardUnknown() { var xxx_messageInfo_SetConversationReq proto.InternalMessageInfo -func (m *SetConversationReq) GetConversation() *Conversation { +func (m *SetConversationReq) GetConversation() *conversation.Conversation { if m != nil { return m.Conversation } @@ -899,7 +758,7 @@ func (m *SetConversationResp) Reset() { *m = SetConversationResp{} } func (m *SetConversationResp) String() string { return proto.CompactTextString(m) } func (*SetConversationResp) ProtoMessage() {} func (*SetConversationResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{15} + return fileDescriptor_user_862a17c60dc96c16, []int{14} } func (m *SetConversationResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetConversationResp.Unmarshal(m, b) @@ -941,7 +800,7 @@ func (m *SetRecvMsgOptReq) Reset() { *m = SetRecvMsgOptReq{} } func (m *SetRecvMsgOptReq) String() string { return proto.CompactTextString(m) } func (*SetRecvMsgOptReq) ProtoMessage() {} func (*SetRecvMsgOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{16} + return fileDescriptor_user_862a17c60dc96c16, []int{15} } func (m *SetRecvMsgOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetRecvMsgOptReq.Unmarshal(m, b) @@ -1007,7 +866,7 @@ func (m *SetRecvMsgOptResp) Reset() { *m = SetRecvMsgOptResp{} } func (m *SetRecvMsgOptResp) String() string { return proto.CompactTextString(m) } func (*SetRecvMsgOptResp) ProtoMessage() {} func (*SetRecvMsgOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{17} + return fileDescriptor_user_862a17c60dc96c16, []int{16} } func (m *SetRecvMsgOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetRecvMsgOptResp.Unmarshal(m, b) @@ -1047,7 +906,7 @@ func (m *GetConversationReq) Reset() { *m = GetConversationReq{} } func (m *GetConversationReq) String() string { return proto.CompactTextString(m) } func (*GetConversationReq) ProtoMessage() {} func (*GetConversationReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{18} + return fileDescriptor_user_862a17c60dc96c16, []int{17} } func (m *GetConversationReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetConversationReq.Unmarshal(m, b) @@ -1089,18 +948,18 @@ func (m *GetConversationReq) GetOperationID() string { } type GetConversationResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - Conversation *Conversation `protobuf:"bytes,2,opt,name=Conversation" json:"Conversation,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Conversation *conversation.Conversation `protobuf:"bytes,2,opt,name=Conversation" json:"Conversation,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetConversationResp) Reset() { *m = GetConversationResp{} } func (m *GetConversationResp) String() string { return proto.CompactTextString(m) } func (*GetConversationResp) ProtoMessage() {} func (*GetConversationResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{19} + return fileDescriptor_user_862a17c60dc96c16, []int{18} } func (m *GetConversationResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetConversationResp.Unmarshal(m, b) @@ -1127,7 +986,7 @@ func (m *GetConversationResp) GetCommonResp() *CommonResp { return nil } -func (m *GetConversationResp) GetConversation() *Conversation { +func (m *GetConversationResp) GetConversation() *conversation.Conversation { if m != nil { return m.Conversation } @@ -1147,7 +1006,7 @@ func (m *GetConversationsReq) Reset() { *m = GetConversationsReq{} } func (m *GetConversationsReq) String() string { return proto.CompactTextString(m) } func (*GetConversationsReq) ProtoMessage() {} func (*GetConversationsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{20} + return fileDescriptor_user_862a17c60dc96c16, []int{19} } func (m *GetConversationsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetConversationsReq.Unmarshal(m, b) @@ -1189,18 +1048,18 @@ func (m *GetConversationsReq) GetOperationID() string { } type GetConversationsResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - Conversations []*Conversation `protobuf:"bytes,2,rep,name=Conversations" json:"Conversations,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Conversations []*conversation.Conversation `protobuf:"bytes,2,rep,name=Conversations" json:"Conversations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetConversationsResp) Reset() { *m = GetConversationsResp{} } func (m *GetConversationsResp) String() string { return proto.CompactTextString(m) } func (*GetConversationsResp) ProtoMessage() {} func (*GetConversationsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{21} + return fileDescriptor_user_862a17c60dc96c16, []int{20} } func (m *GetConversationsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetConversationsResp.Unmarshal(m, b) @@ -1227,7 +1086,7 @@ func (m *GetConversationsResp) GetCommonResp() *CommonResp { return nil } -func (m *GetConversationsResp) GetConversations() []*Conversation { +func (m *GetConversationsResp) GetConversations() []*conversation.Conversation { if m != nil { return m.Conversations } @@ -1246,7 +1105,7 @@ func (m *GetAllConversationsReq) Reset() { *m = GetAllConversationsReq{} func (m *GetAllConversationsReq) String() string { return proto.CompactTextString(m) } func (*GetAllConversationsReq) ProtoMessage() {} func (*GetAllConversationsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{22} + return fileDescriptor_user_862a17c60dc96c16, []int{21} } func (m *GetAllConversationsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationsReq.Unmarshal(m, b) @@ -1281,18 +1140,18 @@ func (m *GetAllConversationsReq) GetOperationID() string { } type GetAllConversationsResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - Conversations []*Conversation `protobuf:"bytes,2,rep,name=Conversations" json:"Conversations,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Conversations []*conversation.Conversation `protobuf:"bytes,2,rep,name=Conversations" json:"Conversations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetAllConversationsResp) Reset() { *m = GetAllConversationsResp{} } func (m *GetAllConversationsResp) String() string { return proto.CompactTextString(m) } func (*GetAllConversationsResp) ProtoMessage() {} func (*GetAllConversationsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{23} + return fileDescriptor_user_862a17c60dc96c16, []int{22} } func (m *GetAllConversationsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationsResp.Unmarshal(m, b) @@ -1319,7 +1178,7 @@ func (m *GetAllConversationsResp) GetCommonResp() *CommonResp { return nil } -func (m *GetAllConversationsResp) GetConversations() []*Conversation { +func (m *GetAllConversationsResp) GetConversations() []*conversation.Conversation { if m != nil { return m.Conversations } @@ -1327,20 +1186,20 @@ func (m *GetAllConversationsResp) GetConversations() []*Conversation { } type BatchSetConversationsReq struct { - Conversations []*Conversation `protobuf:"bytes,1,rep,name=Conversations" json:"Conversations,omitempty"` - OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - NotificationType int32 `protobuf:"varint,3,opt,name=notificationType" json:"notificationType,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Conversations []*conversation.Conversation `protobuf:"bytes,1,rep,name=Conversations" json:"Conversations,omitempty"` + OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + NotificationType int32 `protobuf:"varint,3,opt,name=notificationType" json:"notificationType,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *BatchSetConversationsReq) Reset() { *m = BatchSetConversationsReq{} } func (m *BatchSetConversationsReq) String() string { return proto.CompactTextString(m) } func (*BatchSetConversationsReq) ProtoMessage() {} func (*BatchSetConversationsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{24} + return fileDescriptor_user_862a17c60dc96c16, []int{23} } func (m *BatchSetConversationsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BatchSetConversationsReq.Unmarshal(m, b) @@ -1360,7 +1219,7 @@ func (m *BatchSetConversationsReq) XXX_DiscardUnknown() { var xxx_messageInfo_BatchSetConversationsReq proto.InternalMessageInfo -func (m *BatchSetConversationsReq) GetConversations() []*Conversation { +func (m *BatchSetConversationsReq) GetConversations() []*conversation.Conversation { if m != nil { return m.Conversations } @@ -1401,7 +1260,7 @@ func (m *BatchSetConversationsResp) Reset() { *m = BatchSetConversations func (m *BatchSetConversationsResp) String() string { return proto.CompactTextString(m) } func (*BatchSetConversationsResp) ProtoMessage() {} func (*BatchSetConversationsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{25} + return fileDescriptor_user_862a17c60dc96c16, []int{24} } func (m *BatchSetConversationsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BatchSetConversationsResp.Unmarshal(m, b) @@ -1454,7 +1313,7 @@ func (m *ResignUserReq) Reset() { *m = ResignUserReq{} } func (m *ResignUserReq) String() string { return proto.CompactTextString(m) } func (*ResignUserReq) ProtoMessage() {} func (*ResignUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{26} + return fileDescriptor_user_862a17c60dc96c16, []int{25} } func (m *ResignUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResignUserReq.Unmarshal(m, b) @@ -1499,7 +1358,7 @@ func (m *ResignUserResp) Reset() { *m = ResignUserResp{} } func (m *ResignUserResp) String() string { return proto.CompactTextString(m) } func (*ResignUserResp) ProtoMessage() {} func (*ResignUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{27} + return fileDescriptor_user_862a17c60dc96c16, []int{26} } func (m *ResignUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResignUserResp.Unmarshal(m, b) @@ -1538,7 +1397,7 @@ func (m *GetUserByIdReq) Reset() { *m = GetUserByIdReq{} } func (m *GetUserByIdReq) String() string { return proto.CompactTextString(m) } func (*GetUserByIdReq) ProtoMessage() {} func (*GetUserByIdReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{28} + return fileDescriptor_user_862a17c60dc96c16, []int{27} } func (m *GetUserByIdReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserByIdReq.Unmarshal(m, b) @@ -1597,7 +1456,7 @@ func (m *User) Reset() { *m = User{} } func (m *User) String() string { return proto.CompactTextString(m) } func (*User) ProtoMessage() {} func (*User) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{29} + return fileDescriptor_user_862a17c60dc96c16, []int{28} } func (m *User) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_User.Unmarshal(m, b) @@ -1734,7 +1593,7 @@ func (m *GetUserByIdResp) Reset() { *m = GetUserByIdResp{} } func (m *GetUserByIdResp) String() string { return proto.CompactTextString(m) } func (*GetUserByIdResp) ProtoMessage() {} func (*GetUserByIdResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{30} + return fileDescriptor_user_862a17c60dc96c16, []int{29} } func (m *GetUserByIdResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserByIdResp.Unmarshal(m, b) @@ -1781,7 +1640,7 @@ func (m *GetUsersByNameReq) Reset() { *m = GetUsersByNameReq{} } func (m *GetUsersByNameReq) String() string { return proto.CompactTextString(m) } func (*GetUsersByNameReq) ProtoMessage() {} func (*GetUsersByNameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{31} + return fileDescriptor_user_862a17c60dc96c16, []int{30} } func (m *GetUsersByNameReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersByNameReq.Unmarshal(m, b) @@ -1835,7 +1694,7 @@ func (m *GetUsersByNameResp) Reset() { *m = GetUsersByNameResp{} } func (m *GetUsersByNameResp) String() string { return proto.CompactTextString(m) } func (*GetUsersByNameResp) ProtoMessage() {} func (*GetUsersByNameResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{32} + return fileDescriptor_user_862a17c60dc96c16, []int{31} } func (m *GetUsersByNameResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersByNameResp.Unmarshal(m, b) @@ -1895,7 +1754,7 @@ func (m *AlterUserReq) Reset() { *m = AlterUserReq{} } func (m *AlterUserReq) String() string { return proto.CompactTextString(m) } func (*AlterUserReq) ProtoMessage() {} func (*AlterUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{33} + return fileDescriptor_user_862a17c60dc96c16, []int{32} } func (m *AlterUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AlterUserReq.Unmarshal(m, b) @@ -1989,7 +1848,7 @@ func (m *AlterUserResp) Reset() { *m = AlterUserResp{} } func (m *AlterUserResp) String() string { return proto.CompactTextString(m) } func (*AlterUserResp) ProtoMessage() {} func (*AlterUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{34} + return fileDescriptor_user_862a17c60dc96c16, []int{33} } func (m *AlterUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AlterUserResp.Unmarshal(m, b) @@ -2029,7 +1888,7 @@ func (m *GetUsersReq) Reset() { *m = GetUsersReq{} } func (m *GetUsersReq) String() string { return proto.CompactTextString(m) } func (*GetUsersReq) ProtoMessage() {} func (*GetUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{35} + return fileDescriptor_user_862a17c60dc96c16, []int{34} } func (m *GetUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersReq.Unmarshal(m, b) @@ -2084,7 +1943,7 @@ func (m *GetUsersResp) Reset() { *m = GetUsersResp{} } func (m *GetUsersResp) String() string { return proto.CompactTextString(m) } func (*GetUsersResp) ProtoMessage() {} func (*GetUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{36} + return fileDescriptor_user_862a17c60dc96c16, []int{35} } func (m *GetUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersResp.Unmarshal(m, b) @@ -2151,7 +2010,7 @@ func (m *AddUserReq) Reset() { *m = AddUserReq{} } func (m *AddUserReq) String() string { return proto.CompactTextString(m) } func (*AddUserReq) ProtoMessage() {} func (*AddUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{37} + return fileDescriptor_user_862a17c60dc96c16, []int{36} } func (m *AddUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserReq.Unmarshal(m, b) @@ -2245,7 +2104,7 @@ func (m *AddUserResp) Reset() { *m = AddUserResp{} } func (m *AddUserResp) String() string { return proto.CompactTextString(m) } func (*AddUserResp) ProtoMessage() {} func (*AddUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{38} + return fileDescriptor_user_862a17c60dc96c16, []int{37} } func (m *AddUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserResp.Unmarshal(m, b) @@ -2286,7 +2145,7 @@ func (m *BlockUserReq) Reset() { *m = BlockUserReq{} } func (m *BlockUserReq) String() string { return proto.CompactTextString(m) } func (*BlockUserReq) ProtoMessage() {} func (*BlockUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{39} + return fileDescriptor_user_862a17c60dc96c16, []int{38} } func (m *BlockUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlockUserReq.Unmarshal(m, b) @@ -2345,7 +2204,7 @@ func (m *BlockUserResp) Reset() { *m = BlockUserResp{} } func (m *BlockUserResp) String() string { return proto.CompactTextString(m) } func (*BlockUserResp) ProtoMessage() {} func (*BlockUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{40} + return fileDescriptor_user_862a17c60dc96c16, []int{39} } func (m *BlockUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlockUserResp.Unmarshal(m, b) @@ -2385,7 +2244,7 @@ func (m *UnBlockUserReq) Reset() { *m = UnBlockUserReq{} } func (m *UnBlockUserReq) String() string { return proto.CompactTextString(m) } func (*UnBlockUserReq) ProtoMessage() {} func (*UnBlockUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{41} + return fileDescriptor_user_862a17c60dc96c16, []int{40} } func (m *UnBlockUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UnBlockUserReq.Unmarshal(m, b) @@ -2437,7 +2296,7 @@ func (m *UnBlockUserResp) Reset() { *m = UnBlockUserResp{} } func (m *UnBlockUserResp) String() string { return proto.CompactTextString(m) } func (*UnBlockUserResp) ProtoMessage() {} func (*UnBlockUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{42} + return fileDescriptor_user_862a17c60dc96c16, []int{41} } func (m *UnBlockUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UnBlockUserResp.Unmarshal(m, b) @@ -2477,7 +2336,7 @@ func (m *GetBlockUsersReq) Reset() { *m = GetBlockUsersReq{} } func (m *GetBlockUsersReq) String() string { return proto.CompactTextString(m) } func (*GetBlockUsersReq) ProtoMessage() {} func (*GetBlockUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{43} + return fileDescriptor_user_862a17c60dc96c16, []int{42} } func (m *GetBlockUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlockUsersReq.Unmarshal(m, b) @@ -2531,7 +2390,7 @@ func (m *BlockUser) Reset() { *m = BlockUser{} } func (m *BlockUser) String() string { return proto.CompactTextString(m) } func (*BlockUser) ProtoMessage() {} func (*BlockUser) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{44} + return fileDescriptor_user_862a17c60dc96c16, []int{43} } func (m *BlockUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlockUser.Unmarshal(m, b) @@ -2586,7 +2445,7 @@ func (m *GetBlockUsersResp) Reset() { *m = GetBlockUsersResp{} } func (m *GetBlockUsersResp) String() string { return proto.CompactTextString(m) } func (*GetBlockUsersResp) ProtoMessage() {} func (*GetBlockUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{45} + return fileDescriptor_user_862a17c60dc96c16, []int{44} } func (m *GetBlockUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlockUsersResp.Unmarshal(m, b) @@ -2646,7 +2505,7 @@ func (m *GetBlockUserByIdReq) Reset() { *m = GetBlockUserByIdReq{} } func (m *GetBlockUserByIdReq) String() string { return proto.CompactTextString(m) } func (*GetBlockUserByIdReq) ProtoMessage() {} func (*GetBlockUserByIdReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{46} + return fileDescriptor_user_862a17c60dc96c16, []int{45} } func (m *GetBlockUserByIdReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlockUserByIdReq.Unmarshal(m, b) @@ -2691,7 +2550,7 @@ func (m *GetBlockUserByIdResp) Reset() { *m = GetBlockUserByIdResp{} } func (m *GetBlockUserByIdResp) String() string { return proto.CompactTextString(m) } func (*GetBlockUserByIdResp) ProtoMessage() {} func (*GetBlockUserByIdResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{47} + return fileDescriptor_user_862a17c60dc96c16, []int{46} } func (m *GetBlockUserByIdResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlockUserByIdResp.Unmarshal(m, b) @@ -2731,7 +2590,7 @@ func (m *DeleteUserReq) Reset() { *m = DeleteUserReq{} } func (m *DeleteUserReq) String() string { return proto.CompactTextString(m) } func (*DeleteUserReq) ProtoMessage() {} func (*DeleteUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{48} + return fileDescriptor_user_862a17c60dc96c16, []int{47} } func (m *DeleteUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUserReq.Unmarshal(m, b) @@ -2783,7 +2642,7 @@ func (m *DeleteUserResp) Reset() { *m = DeleteUserResp{} } func (m *DeleteUserResp) String() string { return proto.CompactTextString(m) } func (*DeleteUserResp) ProtoMessage() {} func (*DeleteUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{49} + return fileDescriptor_user_862a17c60dc96c16, []int{48} } func (m *DeleteUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUserResp.Unmarshal(m, b) @@ -2825,7 +2684,6 @@ func init() { proto.RegisterType((*UpdateUserInfoResp)(nil), "user.UpdateUserInfoResp") proto.RegisterType((*SetGlobalRecvMessageOptReq)(nil), "user.SetGlobalRecvMessageOptReq") proto.RegisterType((*SetGlobalRecvMessageOptResp)(nil), "user.SetGlobalRecvMessageOptResp") - proto.RegisterType((*Conversation)(nil), "user.Conversation") proto.RegisterType((*SetConversationReq)(nil), "user.SetConversationReq") proto.RegisterType((*SetConversationResp)(nil), "user.SetConversationResp") proto.RegisterType((*SetRecvMsgOptReq)(nil), "user.SetRecvMsgOptReq") @@ -3662,136 +3520,127 @@ var _User_serviceDesc = grpc.ServiceDesc{ Metadata: "user/user.proto", } -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_461ee57002abbf2b) } - -var fileDescriptor_user_461ee57002abbf2b = []byte{ - // 2047 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0xcd, 0x6f, 0x23, 0x49, - 0x15, 0x57, 0xfb, 0x63, 0x12, 0x3f, 0xc7, 0x8e, 0x53, 0x93, 0x9d, 0xf4, 0xf6, 0xc2, 0x90, 0x6d, - 0x2d, 0x4b, 0x34, 0x12, 0x09, 0x0c, 0x88, 0x41, 0x8b, 0x60, 0x37, 0x76, 0x32, 0x96, 0xd1, 0x4c, - 0x12, 0xb5, 0x67, 0x24, 0x84, 0x10, 0x51, 0x8f, 0x5d, 0x71, 0x5a, 0xb1, 0xbb, 0x7b, 0xbb, 0xca, - 0xf3, 0xc1, 0x65, 0xd1, 0x00, 0x17, 0xc4, 0x85, 0x13, 0x82, 0x03, 0x7f, 0x0c, 0x70, 0xe2, 0x3f, - 0x80, 0x0b, 0xff, 0x03, 0x17, 0x2e, 0x1c, 0x50, 0x7d, 0x74, 0x77, 0x55, 0x77, 0x3b, 0x36, 0x9d, - 0x68, 0xf6, 0x92, 0xe4, 0xfd, 0xaa, 0xea, 0xf5, 0x7b, 0xaf, 0xde, 0x57, 0x55, 0x05, 0x36, 0xe7, - 0x04, 0x47, 0x07, 0xec, 0xc7, 0x7e, 0x18, 0x05, 0x34, 0x40, 0x35, 0xf6, 0xb7, 0xf5, 0xe1, 0x69, - 0x88, 0xfd, 0xf3, 0xc1, 0xd3, 0x83, 0xf0, 0x6a, 0x72, 0xc0, 0x07, 0x0e, 0xc8, 0xf8, 0xea, 0xfc, - 0x15, 0x39, 0x78, 0x45, 0xc4, 0x44, 0xfb, 0x47, 0x00, 0xbd, 0x60, 0x36, 0x0b, 0x7c, 0x07, 0x93, - 0x10, 0x99, 0xb0, 0x86, 0xa3, 0xa8, 0x17, 0x8c, 0xb1, 0x69, 0xec, 0x1a, 0x7b, 0x75, 0x27, 0x26, - 0xd1, 0x3d, 0xb8, 0x83, 0xa3, 0xe8, 0x29, 0x99, 0x98, 0x95, 0x5d, 0x63, 0xaf, 0xe1, 0x48, 0xca, - 0xfe, 0x05, 0xb4, 0x8f, 0xf0, 0x14, 0x53, 0xfc, 0x9c, 0xe0, 0x88, 0x38, 0xf8, 0x73, 0xf4, 0x00, - 0x3a, 0x29, 0x32, 0x38, 0x7a, 0xe2, 0x11, 0x6a, 0x56, 0x76, 0xab, 0x7b, 0x0d, 0x27, 0x87, 0x23, - 0x0b, 0xd6, 0x4f, 0x43, 0x41, 0x9b, 0x55, 0xce, 0x37, 0xa1, 0xd1, 0x2e, 0x34, 0x4f, 0x43, 0x1c, - 0xb9, 0xd4, 0x0b, 0xfc, 0xc1, 0x91, 0x59, 0xe3, 0xc3, 0x2a, 0x64, 0x07, 0xb0, 0xa9, 0x7d, 0x9b, - 0x84, 0xe8, 0x5b, 0xaa, 0x3a, 0x5c, 0x87, 0xe6, 0xc3, 0xce, 0x3e, 0x37, 0x4c, 0x8a, 0x3b, 0xaa, - 0xca, 0x0f, 0xa0, 0xf3, 0xd8, 0xf5, 0xa6, 0x78, 0x9c, 0x17, 0x37, 0x8b, 0xdb, 0xa7, 0xb0, 0xd9, - 0xc7, 0xf4, 0x70, 0x3a, 0x15, 0x18, 0xd3, 0xd6, 0x82, 0xf5, 0x20, 0xd6, 0xc0, 0x10, 0x1a, 0x04, - 0x8a, 0x06, 0x81, 0xa2, 0x81, 0x30, 0x9c, 0x0a, 0xd9, 0x63, 0xe8, 0xe8, 0x0c, 0x4b, 0xa9, 0x70, - 0x1f, 0x20, 0x27, 0xbc, 0x82, 0xd8, 0x6f, 0x60, 0xf3, 0x70, 0x34, 0x0a, 0xe6, 0x3e, 0xed, 0x5d, - 0xe2, 0xd1, 0x15, 0x13, 0x7b, 0x0f, 0x36, 0xf9, 0xdf, 0xca, 0x3a, 0x83, 0xaf, 0xcb, 0xc2, 0xda, - 0x16, 0x55, 0xae, 0xdf, 0xa2, 0x6a, 0x7e, 0x8b, 0xfe, 0x65, 0x40, 0x47, 0xff, 0xb6, 0xd0, 0x70, - 0xb4, 0x82, 0x86, 0xe9, 0x1c, 0xd4, 0x07, 0x70, 0x30, 0x99, 0x4f, 0x69, 0xa2, 0x61, 0xf3, 0xe1, - 0x37, 0xc4, 0x8a, 0x2c, 0xf7, 0xfd, 0xa1, 0xe7, 0x4f, 0xa6, 0xdc, 0x25, 0x86, 0xd4, 0xa5, 0x73, - 0xe2, 0x28, 0x4b, 0xad, 0x33, 0xe8, 0x64, 0xc7, 0x99, 0x6b, 0xcf, 0xd5, 0x0d, 0x94, 0x14, 0xfa, - 0x08, 0x5a, 0xae, 0x60, 0x2e, 0x26, 0x4a, 0xf5, 0x75, 0xd0, 0xf6, 0xa1, 0xdd, 0xc7, 0x94, 0x1b, - 0xc4, 0xbf, 0x08, 0x98, 0x6d, 0xef, 0x03, 0xcc, 0xb3, 0x66, 0x55, 0x90, 0x1b, 0x5a, 0xf4, 0xd7, - 0x06, 0x77, 0xc2, 0xf4, 0x83, 0xa5, 0x0c, 0xfa, 0x29, 0x6c, 0xc4, 0x1c, 0xb8, 0x94, 0x55, 0x6e, - 0xd2, 0x0f, 0xf6, 0x09, 0x8e, 0x5e, 0xe2, 0xe8, 0xdc, 0x0d, 0xbd, 0xf3, 0xd0, 0x8d, 0xdc, 0x19, - 0xd9, 0x4f, 0x3e, 0xa4, 0x2d, 0xb0, 0x7f, 0x6b, 0xc0, 0xd6, 0xf3, 0x70, 0xec, 0xca, 0x70, 0x96, - 0xaa, 0x3f, 0x82, 0xf5, 0x98, 0x94, 0x62, 0x5c, 0xcb, 0x32, 0x99, 0xbc, 0xcc, 0x26, 0x41, 0xde, - 0x26, 0x6a, 0x18, 0x3d, 0x06, 0x94, 0x95, 0xa5, 0x8c, 0x55, 0xec, 0xb7, 0x06, 0x58, 0x43, 0x4c, - 0xfb, 0xd3, 0xe0, 0x85, 0x3b, 0x75, 0xf0, 0xe8, 0xe5, 0x53, 0x4c, 0x88, 0x3b, 0xc1, 0xa7, 0x21, - 0x65, 0xda, 0x2d, 0x72, 0x94, 0xa5, 0x71, 0xce, 0x92, 0xcc, 0x24, 0x65, 0x4a, 0x26, 0xa7, 0x21, - 0xe5, 0x7a, 0xd4, 0x9d, 0x1c, 0x6e, 0x9f, 0xc2, 0x07, 0x0b, 0x65, 0x28, 0xa5, 0xd5, 0x3f, 0xab, - 0xb0, 0xd1, 0x0b, 0xfc, 0x97, 0x38, 0x22, 0x5c, 0x1e, 0xee, 0x64, 0xaf, 0x7c, 0x1c, 0x69, 0x69, - 0x4b, 0x85, 0xd0, 0xc7, 0xd0, 0x56, 0x57, 0x24, 0x4a, 0x65, 0x50, 0xe6, 0xea, 0x39, 0x8d, 0x14, - 0x84, 0xe9, 0xad, 0xae, 0x78, 0xf6, 0x26, 0xc4, 0x3c, 0x91, 0xd7, 0x9d, 0x1c, 0xce, 0xac, 0x2b, - 0x05, 0xaa, 0x0b, 0xeb, 0x4a, 0x59, 0x4c, 0x58, 0xeb, 0x47, 0xc1, 0x3c, 0x1c, 0x1c, 0x99, 0x77, - 0xf8, 0x40, 0x4c, 0x32, 0x3d, 0x9e, 0xfb, 0x11, 0x76, 0xc7, 0x3d, 0x16, 0x8f, 0xe6, 0x1a, 0x67, - 0xac, 0x42, 0x2c, 0x84, 0x8f, 0x22, 0xf7, 0x82, 0x3e, 0xc3, 0xaf, 0xe9, 0x33, 0x6f, 0x86, 0xcd, - 0xf5, 0x5d, 0x63, 0xaf, 0xea, 0xe8, 0x20, 0x73, 0xbe, 0x01, 0x39, 0xf3, 0x7c, 0x1f, 0x8f, 0xcd, - 0xc6, 0xae, 0xb1, 0xb7, 0xee, 0x24, 0x34, 0xb2, 0x61, 0xe3, 0x90, 0x52, 0x77, 0x74, 0x89, 0xc7, - 0xdc, 0xab, 0x81, 0x8b, 0xa0, 0x61, 0xec, 0x2b, 0x03, 0x72, 0x16, 0x79, 0x2f, 0x5d, 0x8a, 0x7b, - 0x97, 0x2e, 0x35, 0x9b, 0x9c, 0x89, 0x0e, 0x32, 0x69, 0xb9, 0xe0, 0x87, 0x94, 0x9b, 0x61, 0x43, - 0x48, 0xab, 0x40, 0xec, 0x5b, 0x03, 0x72, 0x12, 0xd0, 0x81, 0xcf, 0x51, 0xb3, 0xc5, 0xd9, 0x68, - 0x18, 0x6a, 0x43, 0xe5, 0xf8, 0xb5, 0xd9, 0xe6, 0x52, 0x54, 0x8e, 0x5f, 0xdb, 0x7f, 0x32, 0x00, - 0x0d, 0x31, 0x55, 0xad, 0xc9, 0x5c, 0xf5, 0x7b, 0xfa, 0x96, 0x4b, 0x3f, 0x41, 0xb1, 0x9f, 0x28, - 0x93, 0x75, 0xd7, 0x78, 0x00, 0x1d, 0x3f, 0xa0, 0xde, 0x85, 0x37, 0x4a, 0x37, 0xac, 0x22, 0x36, - 0x2c, 0x8b, 0xaf, 0x90, 0xab, 0xfa, 0x70, 0x37, 0x27, 0x5b, 0x29, 0x17, 0xfe, 0xbb, 0x01, 0x9d, - 0x21, 0xa6, 0xa9, 0x67, 0x31, 0x1d, 0xdf, 0xa9, 0x1b, 0xe7, 0xac, 0x52, 0x5b, 0xcd, 0x2a, 0xf5, - 0xbc, 0x55, 0x8e, 0x61, 0x2b, 0xa3, 0x4b, 0x29, 0x9b, 0xfc, 0xd2, 0x00, 0xd4, 0xcf, 0xef, 0x7c, - 0x5e, 0x67, 0xa3, 0x50, 0xe7, 0x8c, 0xf5, 0x2a, 0x79, 0xeb, 0x2d, 0xdf, 0xdf, 0x2f, 0xe0, 0x6e, - 0xff, 0x36, 0xf6, 0x37, 0xe7, 0xae, 0x95, 0xd5, 0xdc, 0xd5, 0xfe, 0x95, 0x91, 0x93, 0x80, 0xac, - 0xe6, 0x1a, 0xac, 0x01, 0xd2, 0x0c, 0x42, 0x64, 0xe3, 0x94, 0x85, 0x57, 0x30, 0xc3, 0x5b, 0x03, - 0xb6, 0xf3, 0x52, 0x94, 0x32, 0xc4, 0xf7, 0xa1, 0xa5, 0xb1, 0x91, 0xbd, 0x4e, 0x91, 0x25, 0xf4, - 0x89, 0xf6, 0xcf, 0xe0, 0x9e, 0x68, 0x25, 0x4b, 0x18, 0x23, 0xa3, 0x62, 0x25, 0xaf, 0xe2, 0x6f, - 0x0c, 0xd8, 0x29, 0x64, 0xff, 0x8e, 0xb5, 0xfc, 0x9b, 0x01, 0x66, 0xd7, 0xa5, 0xa3, 0xcb, 0x61, - 0xc1, 0xae, 0xe7, 0xd8, 0x1a, 0x2b, 0xb2, 0x5d, 0x21, 0x18, 0x8a, 0x52, 0x40, 0x75, 0xb5, 0x14, - 0x50, 0x2b, 0x0a, 0x9c, 0xf7, 0x17, 0x68, 0x51, 0xca, 0x9e, 0x26, 0xac, 0x0d, 0xe7, 0xa3, 0x11, - 0x26, 0xb1, 0x13, 0xc7, 0x24, 0x2b, 0xaa, 0xe2, 0x14, 0xc3, 0x3b, 0xbc, 0x86, 0x23, 0x29, 0x7b, - 0x00, 0x2d, 0x07, 0x13, 0x6f, 0xe2, 0x33, 0xf5, 0x64, 0x6f, 0xc3, 0x35, 0x1d, 0xc7, 0xbd, 0x8d, - 0xa0, 0x56, 0x70, 0x8d, 0x2e, 0xb4, 0x55, 0x56, 0xa5, 0x72, 0xd9, 0x8f, 0x93, 0x26, 0xba, 0xfb, - 0x66, 0x30, 0xbe, 0x99, 0x3c, 0x7f, 0xa9, 0x42, 0x8d, 0x4d, 0x66, 0xe5, 0xf4, 0x2c, 0x0a, 0x2e, - 0xbc, 0x29, 0x3e, 0xbb, 0x0c, 0x68, 0x20, 0x19, 0x69, 0x18, 0x2b, 0xfd, 0x27, 0xde, 0xe8, 0xca, - 0x77, 0x67, 0x38, 0xee, 0x3b, 0x63, 0x5a, 0x11, 0xa1, 0xaa, 0x89, 0x70, 0x1f, 0xa0, 0x17, 0x61, - 0x97, 0x62, 0xde, 0x51, 0x88, 0xdd, 0x55, 0x10, 0x26, 0xe2, 0xd9, 0x65, 0xe0, 0xe3, 0x93, 0xf9, - 0xec, 0x05, 0x8e, 0xe2, 0x0a, 0xa0, 0x40, 0x68, 0x1b, 0xea, 0xc7, 0x33, 0xd7, 0x9b, 0xca, 0x86, - 0x46, 0x10, 0x0c, 0xed, 0x7a, 0x11, 0xbd, 0xe4, 0x8d, 0x4c, 0xc3, 0x11, 0x04, 0x93, 0x50, 0xf0, - 0x1e, 0x84, 0xbc, 0x7b, 0x69, 0x38, 0x09, 0xcd, 0x1a, 0x8f, 0x27, 0x2e, 0xa1, 0x4f, 0x82, 0x89, - 0xe7, 0x73, 0x61, 0x1a, 0xe2, 0x84, 0xa2, 0x81, 0x4c, 0x9e, 0x04, 0x18, 0x84, 0xb2, 0x83, 0x51, - 0x21, 0xa6, 0x51, 0x32, 0x9d, 0xf0, 0xee, 0xa5, 0xee, 0x28, 0x08, 0xb3, 0x44, 0x1f, 0xfb, 0x63, - 0x1c, 0xc9, 0xae, 0x45, 0x52, 0xc9, 0xba, 0x27, 0xde, 0xcc, 0xa3, 0xbc, 0x5d, 0x89, 0xd7, 0x71, - 0x84, 0xf9, 0xe5, 0x80, 0x74, 0xa7, 0xc1, 0xe8, 0x8a, 0x77, 0x2c, 0xeb, 0x4e, 0x4c, 0x8a, 0x8a, - 0x3b, 0xf1, 0x08, 0xc5, 0xd1, 0x20, 0x34, 0x37, 0x85, 0x0d, 0x53, 0xc4, 0x1e, 0x25, 0x87, 0x1c, - 0xe1, 0x10, 0x25, 0xcf, 0xc5, 0xfc, 0x1a, 0x44, 0x56, 0x13, 0x10, 0x73, 0xb9, 0x97, 0x72, 0xdc, - 0xfe, 0x83, 0x01, 0x5b, 0xf2, 0x2b, 0xa4, 0xfb, 0xe6, 0xc4, 0x9d, 0x61, 0x79, 0xa2, 0x67, 0x08, - 0x23, 0xe3, 0x13, 0x7d, 0x4c, 0xa3, 0x23, 0x80, 0x33, 0x77, 0xe2, 0xf9, 0x6a, 0x95, 0xfa, 0xa8, - 0xe0, 0x84, 0xe3, 0xe0, 0xcf, 0xe7, 0x98, 0xd0, 0x74, 0xae, 0xa3, 0xac, 0x5b, 0xa1, 0xa2, 0xfc, - 0x51, 0xd4, 0x76, 0x4d, 0x32, 0x12, 0xa2, 0x5d, 0xa8, 0x33, 0xc1, 0xe3, 0xc4, 0xa6, 0x6a, 0x24, - 0x06, 0xd0, 0x71, 0x81, 0x80, 0x5f, 0x2f, 0x14, 0x90, 0x84, 0x81, 0x4f, 0xf0, 0x02, 0x09, 0x63, - 0x1b, 0xcc, 0x67, 0x44, 0x66, 0xb9, 0x84, 0xb6, 0xff, 0x6b, 0xc0, 0xc6, 0xe1, 0x94, 0x8a, 0xcc, - 0x78, 0xa3, 0x50, 0xcd, 0x46, 0x4a, 0x35, 0x1f, 0x29, 0x6a, 0x7c, 0xd6, 0x32, 0xf1, 0x99, 0x44, - 0x51, 0x5d, 0x8d, 0xa2, 0xd4, 0x57, 0x45, 0x70, 0xc5, 0xbe, 0x5a, 0x1c, 0x5d, 0xdb, 0x50, 0x17, - 0xc9, 0x41, 0x84, 0x56, 0x3d, 0xc9, 0x0a, 0xf2, 0xf4, 0x39, 0x96, 0x21, 0x95, 0xd0, 0xf6, 0x21, - 0xb4, 0x14, 0xed, 0xcb, 0xf8, 0xa5, 0xfd, 0x7b, 0x03, 0x9a, 0xf1, 0xee, 0xc6, 0x05, 0x5a, 0x31, - 0x94, 0x91, 0x37, 0xd4, 0xed, 0xf8, 0x9d, 0xea, 0xd9, 0x55, 0xdd, 0xb3, 0xed, 0xbf, 0x1a, 0xb0, - 0x91, 0xca, 0x74, 0xc3, 0x70, 0xab, 0x16, 0x85, 0x5b, 0xc6, 0x37, 0xab, 0xb7, 0xe1, 0x9b, 0xb5, - 0x8c, 0x6f, 0xfe, 0xdb, 0x00, 0x38, 0x1c, 0x8f, 0x63, 0xcf, 0x5c, 0x6e, 0xd8, 0x8c, 0x07, 0x56, - 0xf2, 0x1e, 0xb8, 0xa8, 0x0a, 0x20, 0xa8, 0x29, 0x5e, 0x59, 0xfb, 0x12, 0x3d, 0xf2, 0x53, 0x68, - 0x26, 0x3a, 0x97, 0xf2, 0xc7, 0xdf, 0x19, 0xb0, 0xc1, 0xd3, 0xf2, 0xb2, 0x88, 0xfe, 0x18, 0xda, - 0xc7, 0xfe, 0xf8, 0xc8, 0x23, 0xee, 0x8b, 0xa9, 0xa8, 0x7e, 0xf2, 0x3c, 0xa5, 0xa3, 0xcb, 0x13, - 0x9c, 0xa6, 0x4f, 0x2d, 0x1f, 0x61, 0x8a, 0x34, 0xa5, 0x34, 0xba, 0x80, 0xf6, 0x73, 0x7f, 0x25, - 0x95, 0x96, 0x27, 0x29, 0x55, 0xd4, 0x6a, 0x46, 0xd4, 0x1e, 0x6c, 0x6a, 0xdf, 0x29, 0x25, 0xec, - 0x9f, 0x0d, 0x7e, 0x0b, 0x9c, 0xb0, 0xe1, 0x39, 0x41, 0x8f, 0x78, 0xe3, 0x76, 0x2a, 0x4d, 0x81, - 0x76, 0xb6, 0xb2, 0xf5, 0x27, 0xf3, 0x99, 0xcc, 0xf6, 0x1a, 0x66, 0x7f, 0x01, 0x8d, 0x84, 0x66, - 0x51, 0xce, 0x7e, 0x4b, 0x91, 0xb4, 0x28, 0xe7, 0xe3, 0x0f, 0xa0, 0xd3, 0xc5, 0x13, 0xcf, 0xcf, - 0x7b, 0x49, 0x0e, 0x2f, 0xf0, 0xa7, 0x6a, 0x91, 0x3f, 0xd9, 0xff, 0x10, 0x85, 0x5a, 0xb5, 0x50, - 0xa9, 0x0c, 0x75, 0x00, 0x90, 0xf2, 0x90, 0x79, 0x6a, 0x53, 0xac, 0x48, 0x37, 0x51, 0x99, 0xf2, - 0x2e, 0x52, 0xd6, 0x19, 0x3f, 0xc1, 0x26, 0xdf, 0x8c, 0xfb, 0xdf, 0x1d, 0x58, 0x63, 0xe4, 0xb9, - 0xf7, 0xff, 0x37, 0xc0, 0xc7, 0xfc, 0x34, 0x9a, 0xe1, 0x48, 0x42, 0xf4, 0x4d, 0x65, 0x1b, 0x65, - 0x0d, 0xc9, 0x29, 0x9f, 0xce, 0xb0, 0x2f, 0xa0, 0x95, 0xbe, 0xae, 0xdc, 0x4c, 0xa4, 0x6b, 0x63, - 0xa8, 0xab, 0xbe, 0x20, 0x95, 0xdb, 0xd8, 0x87, 0xff, 0x69, 0x8a, 0xda, 0x83, 0x3e, 0x49, 0x2a, - 0x2b, 0xbf, 0x99, 0xdb, 0x16, 0xab, 0xf4, 0x0b, 0x7a, 0xeb, 0xbd, 0x02, 0x94, 0x84, 0xa8, 0x07, - 0x6d, 0xfd, 0x16, 0x19, 0xed, 0x48, 0xef, 0xce, 0xde, 0x73, 0x5b, 0x66, 0xf1, 0x00, 0x09, 0xd1, - 0xcf, 0x61, 0x67, 0xc1, 0xed, 0x2d, 0xda, 0x15, 0x8b, 0x16, 0x5f, 0x30, 0x5b, 0x1f, 0x2e, 0x99, - 0x41, 0x42, 0xa6, 0xa0, 0xf2, 0xe6, 0x15, 0x2b, 0xa8, 0x3f, 0xc1, 0xc5, 0x0a, 0x66, 0x1f, 0xc7, - 0x7e, 0xc8, 0x4b, 0x7c, 0xf2, 0xda, 0x84, 0x52, 0x3b, 0xa8, 0x4f, 0x5a, 0xd6, 0xbd, 0x22, 0x58, - 0x2c, 0x57, 0x1f, 0x5b, 0xe2, 0xe5, 0x99, 0xa7, 0xa5, 0x78, 0x79, 0xee, 0xd5, 0xe7, 0x31, 0x6f, - 0xe9, 0xb5, 0xdb, 0x46, 0x33, 0xf9, 0x52, 0xe6, 0x16, 0xcb, 0x7a, 0x7f, 0xc1, 0x08, 0x09, 0x91, - 0xc3, 0x03, 0x26, 0x7b, 0x13, 0x81, 0xbe, 0xa2, 0x4a, 0x9d, 0xbd, 0x1a, 0xb0, 0xbe, 0x7a, 0xcd, - 0x28, 0x09, 0xd1, 0x80, 0x67, 0x60, 0x9d, 0x61, 0xb1, 0x08, 0x9c, 0x9b, 0xb5, 0x68, 0x88, 0x84, - 0xe8, 0x27, 0xf0, 0x5e, 0xe1, 0xd1, 0x1e, 0xdd, 0x97, 0xb1, 0xb6, 0xe0, 0xf6, 0xc2, 0xfa, 0xda, - 0xb5, 0xe3, 0xc2, 0x80, 0xc3, 0x62, 0x03, 0x0e, 0x17, 0x1a, 0xb0, 0xe8, 0xfa, 0xf5, 0x33, 0x68, - 0x69, 0xf7, 0x8f, 0xe8, 0x5e, 0x32, 0x57, 0xbb, 0x60, 0xb5, 0x76, 0x0a, 0x71, 0xe1, 0x84, 0xca, - 0xe9, 0x2c, 0x13, 0x65, 0x32, 0x83, 0x65, 0xa2, 0x2c, 0xc9, 0x42, 0xbd, 0xe4, 0xa8, 0x2f, 0x4f, - 0x36, 0x71, 0x94, 0xe5, 0x4e, 0x62, 0x96, 0x59, 0x3c, 0x40, 0x42, 0xf4, 0x88, 0xbf, 0x07, 0xca, - 0x3b, 0x07, 0x74, 0x57, 0xcc, 0xd3, 0x2e, 0x34, 0xac, 0xed, 0x3c, 0x48, 0x42, 0xf4, 0x5d, 0x68, - 0x24, 0xdd, 0x3b, 0x92, 0x17, 0x43, 0xea, 0x61, 0xc6, 0xba, 0x9b, 0xc3, 0x48, 0x88, 0xbe, 0x0d, - 0xeb, 0xb1, 0x10, 0x68, 0x4b, 0x17, 0x8a, 0xad, 0x41, 0x59, 0x88, 0x84, 0x68, 0x1f, 0xd6, 0x64, - 0x53, 0x86, 0x64, 0xea, 0x4a, 0xfb, 0x52, 0x6b, 0x2b, 0x83, 0x08, 0xc1, 0xd2, 0x1a, 0x8b, 0xb2, - 0x69, 0x39, 0x15, 0x4c, 0x6f, 0x36, 0x3e, 0x81, 0xa6, 0xd2, 0x7f, 0xc4, 0x1b, 0xa1, 0xb7, 0x3e, - 0xf1, 0x46, 0x64, 0x1b, 0x95, 0xcf, 0xa0, 0xa5, 0xd5, 0x54, 0x94, 0xc6, 0xbd, 0xd6, 0x8a, 0x58, - 0x3b, 0x85, 0x78, 0x12, 0x35, 0x5a, 0xa1, 0x51, 0xa2, 0x26, 0x5b, 0xd2, 0x94, 0xa8, 0xc9, 0xd7, - 0xa6, 0x47, 0x00, 0x69, 0xb6, 0x8a, 0x37, 0x54, 0x2b, 0x3f, 0xd6, 0x76, 0x1e, 0x24, 0x61, 0xb7, - 0xf5, 0xd3, 0xe6, 0x3e, 0xff, 0xc7, 0x87, 0x1f, 0xb0, 0x1f, 0x2f, 0xee, 0xf0, 0xff, 0x6a, 0xf8, - 0xce, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xa5, 0x63, 0x75, 0x08, 0x11, 0x21, 0x00, 0x00, +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_862a17c60dc96c16) } + +var fileDescriptor_user_862a17c60dc96c16 = []byte{ + // 1900 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcb, 0x6f, 0x23, 0x49, + 0x19, 0x57, 0xc7, 0xf6, 0x24, 0xf9, 0x1c, 0x3f, 0x52, 0x93, 0x9d, 0xf4, 0xf6, 0xc2, 0x90, 0x6d, + 0x2d, 0x4b, 0x34, 0x12, 0x0e, 0x3b, 0x20, 0x8d, 0xb4, 0x88, 0xdd, 0x89, 0x9d, 0x8c, 0x65, 0x34, + 0x33, 0x89, 0xda, 0x3b, 0x12, 0x42, 0x88, 0xa8, 0x63, 0x57, 0x9c, 0x56, 0xec, 0xee, 0xde, 0xae, + 0xf6, 0x8c, 0xc2, 0x65, 0x11, 0x20, 0x21, 0xad, 0xe0, 0xc0, 0x09, 0x71, 0xe1, 0xc0, 0x9f, 0x02, + 0x37, 0xc4, 0x3f, 0xc0, 0x89, 0xff, 0x81, 0x0b, 0x17, 0x0e, 0xa8, 0x1e, 0xdd, 0x5d, 0xd5, 0xd5, + 0x8e, 0x3d, 0x9d, 0x88, 0xb9, 0x24, 0xfe, 0x7e, 0xf5, 0xe8, 0xef, 0xf7, 0xd5, 0xf7, 0xa8, 0x07, + 0xb4, 0xe6, 0x04, 0x47, 0x07, 0xf4, 0x4f, 0x27, 0x8c, 0x82, 0x38, 0x40, 0x55, 0xfa, 0xdb, 0xfa, + 0xf0, 0x24, 0xc4, 0xfe, 0xd9, 0xe0, 0xc5, 0x41, 0x78, 0x35, 0x39, 0x60, 0x0d, 0x07, 0x64, 0x7c, + 0x75, 0xf6, 0x86, 0x1c, 0xbc, 0x21, 0xbc, 0xa3, 0xf5, 0x89, 0xde, 0x65, 0x14, 0xf8, 0xaf, 0x71, + 0x44, 0xdc, 0xd8, 0x0b, 0x7c, 0x45, 0xe0, 0x43, 0xec, 0xcf, 0x00, 0x7a, 0xc1, 0x6c, 0x16, 0xf8, + 0x0e, 0x26, 0x21, 0x32, 0x61, 0x1d, 0x47, 0x51, 0x2f, 0x18, 0x63, 0xd3, 0xd8, 0x33, 0xf6, 0x6b, + 0x4e, 0x22, 0xa2, 0x07, 0x70, 0x0f, 0x47, 0xd1, 0x0b, 0x32, 0x31, 0xd7, 0xf6, 0x8c, 0xfd, 0x4d, + 0x47, 0x48, 0xf6, 0x2f, 0xa0, 0x79, 0x84, 0xa7, 0x38, 0xc6, 0xaf, 0x08, 0x8e, 0x88, 0x83, 0xbf, + 0x44, 0x8f, 0xa0, 0x9d, 0x21, 0x83, 0xa3, 0xe7, 0x1e, 0x89, 0xcd, 0xb5, 0xbd, 0xca, 0xfe, 0xa6, + 0xa3, 0xe1, 0xc8, 0x82, 0x8d, 0x93, 0x90, 0xcb, 0x66, 0x85, 0xcd, 0x9b, 0xca, 0x68, 0x0f, 0xea, + 0x27, 0x21, 0x8e, 0x98, 0xb2, 0x83, 0x23, 0xb3, 0xca, 0x9a, 0x65, 0xc8, 0x0e, 0xa0, 0xa5, 0x7c, + 0x9b, 0x84, 0xe8, 0x7b, 0x32, 0x1d, 0xc6, 0xa1, 0xfe, 0xb8, 0xdd, 0x61, 0xb6, 0xcc, 0x70, 0x47, + 0xa6, 0xfc, 0x08, 0xda, 0xcf, 0x5c, 0x6f, 0x8a, 0xc7, 0xba, 0xba, 0x79, 0xdc, 0x3e, 0x81, 0x56, + 0x1f, 0xc7, 0x87, 0xd3, 0x29, 0xc7, 0x28, 0x5b, 0x0b, 0x36, 0x82, 0x84, 0x81, 0xc1, 0x19, 0x04, + 0x12, 0x83, 0x40, 0x62, 0xc0, 0x0d, 0x27, 0x43, 0xf6, 0x18, 0xda, 0xea, 0x84, 0xa5, 0x28, 0x3c, + 0x04, 0xd0, 0x94, 0x97, 0x10, 0xfb, 0x1a, 0x5a, 0x87, 0xa3, 0x51, 0x30, 0xf7, 0xe3, 0xde, 0x25, + 0x1e, 0x5d, 0x51, 0xb5, 0xf7, 0xa1, 0xc5, 0x7e, 0x4b, 0xe3, 0x0c, 0x36, 0x2e, 0x0f, 0x2b, 0x4b, + 0xb4, 0x76, 0xf3, 0x12, 0x55, 0xf4, 0x25, 0xfa, 0x97, 0x01, 0x6d, 0xf5, 0xdb, 0x9c, 0xe1, 0x68, + 0x05, 0x86, 0x59, 0x1f, 0xd4, 0x07, 0x70, 0x30, 0x99, 0x4f, 0xe3, 0x94, 0x61, 0xfd, 0xf1, 0x77, + 0xf8, 0x88, 0xfc, 0xec, 0x9d, 0xa1, 0xe7, 0x4f, 0xa6, 0xcc, 0x25, 0x86, 0xb1, 0x1b, 0xcf, 0x89, + 0x23, 0x0d, 0xb5, 0x4e, 0xa1, 0x9d, 0x6f, 0xa7, 0xae, 0x3d, 0x97, 0x17, 0x50, 0x48, 0xe8, 0x23, + 0x68, 0xb8, 0x7c, 0x72, 0xde, 0x51, 0xd0, 0x57, 0x41, 0xdb, 0x87, 0x66, 0x1f, 0xc7, 0xcc, 0x20, + 0xfe, 0x45, 0x40, 0x6d, 0xfb, 0x10, 0x60, 0x9e, 0x37, 0xab, 0x84, 0xdc, 0xd2, 0xa2, 0xbf, 0x31, + 0x98, 0x13, 0x66, 0x1f, 0x2c, 0x65, 0xd0, 0xcf, 0x61, 0x2b, 0x99, 0x81, 0x69, 0x59, 0x61, 0x26, + 0xfd, 0xa0, 0x43, 0x70, 0xf4, 0x1a, 0x47, 0x67, 0x6e, 0xe8, 0x9d, 0x85, 0x6e, 0xe4, 0xce, 0x48, + 0x27, 0xfd, 0x90, 0x32, 0xc0, 0xfe, 0xda, 0x80, 0xed, 0x57, 0xe1, 0xd8, 0x15, 0xe1, 0x2c, 0xa8, + 0x3f, 0x81, 0x8d, 0x44, 0x14, 0x6a, 0xdc, 0x38, 0x65, 0xda, 0x79, 0x99, 0x4d, 0x02, 0xdd, 0x26, + 0x72, 0x18, 0x3d, 0x03, 0x94, 0xd7, 0xa5, 0x8c, 0x55, 0xec, 0x5f, 0x19, 0x60, 0x0d, 0x71, 0xdc, + 0x9f, 0x06, 0xe7, 0xee, 0xd4, 0xc1, 0xa3, 0xd7, 0x2f, 0x30, 0x21, 0xee, 0x04, 0x9f, 0x84, 0x31, + 0x65, 0xb7, 0xc8, 0x51, 0x96, 0xc6, 0x39, 0x4d, 0x32, 0x93, 0x6c, 0x52, 0x32, 0x39, 0x09, 0x63, + 0xc6, 0xa3, 0xe6, 0x68, 0xb8, 0x7d, 0x02, 0x1f, 0x2c, 0xd4, 0xa1, 0x14, 0xab, 0xbf, 0x18, 0x80, + 0x86, 0x38, 0xee, 0x49, 0xc9, 0x9f, 0xb2, 0xf9, 0x0c, 0xb6, 0x64, 0x48, 0x4c, 0x65, 0x75, 0x94, + 0x22, 0xa1, 0x0c, 0x52, 0xfa, 0x53, 0x4e, 0x7e, 0x10, 0x7b, 0x17, 0xde, 0x88, 0xc9, 0x5f, 0x5c, + 0x87, 0x98, 0x51, 0xaf, 0x39, 0x1a, 0xbe, 0x82, 0x5b, 0xf7, 0xe1, 0xbe, 0xa6, 0x63, 0x29, 0xb6, + 0x7f, 0x37, 0xa0, 0x3d, 0xc4, 0x71, 0x66, 0x50, 0xca, 0x95, 0x7e, 0xff, 0x8d, 0x8f, 0x23, 0x25, + 0x51, 0xcb, 0x10, 0xfa, 0x18, 0x9a, 0xf2, 0xc7, 0xd3, 0x65, 0xcc, 0xa1, 0x34, 0xb8, 0xb5, 0x35, + 0x94, 0x90, 0x42, 0xab, 0x54, 0x57, 0xb3, 0x4a, 0x4d, 0xb7, 0xca, 0x31, 0x6c, 0xe7, 0xb8, 0x94, + 0xb2, 0xc9, 0x2f, 0x0d, 0x40, 0x7d, 0xdd, 0x03, 0x74, 0xce, 0x46, 0x21, 0xe7, 0x9c, 0xf5, 0xd6, + 0x74, 0xeb, 0x2d, 0x5f, 0xdf, 0xdf, 0x1a, 0x70, 0xbf, 0x7f, 0x17, 0x0b, 0xac, 0xf9, 0xed, 0xda, + 0xdb, 0xf9, 0xad, 0xfd, 0x6b, 0x5d, 0x13, 0xb2, 0x9a, 0x8f, 0xd0, 0xa2, 0xa9, 0x58, 0x86, 0x88, + 0x62, 0x9b, 0x87, 0x57, 0xb0, 0xc7, 0xd7, 0x06, 0xec, 0xe8, 0x5a, 0x94, 0x32, 0xc8, 0x53, 0x68, + 0x28, 0xd3, 0x88, 0xfa, 0x78, 0x93, 0x45, 0xd4, 0x01, 0xf6, 0xcf, 0xe0, 0x01, 0xdf, 0x86, 0x94, + 0x30, 0x4a, 0x8e, 0xea, 0x9a, 0x4e, 0xf5, 0xf7, 0x06, 0xec, 0x16, 0x4e, 0xff, 0x8e, 0xd8, 0xfe, + 0xc3, 0x00, 0xb3, 0xeb, 0xc6, 0xa3, 0xcb, 0x61, 0x81, 0x17, 0x68, 0xd3, 0x1b, 0x6f, 0x39, 0xfd, + 0x0a, 0xd1, 0x52, 0x94, 0x23, 0x2a, 0xab, 0xe5, 0x88, 0x82, 0x5d, 0xf0, 0x57, 0xf0, 0xfe, 0x02, + 0x36, 0xa5, 0xec, 0x6b, 0xc2, 0xfa, 0x70, 0x3e, 0x1a, 0x61, 0x92, 0x38, 0x77, 0x22, 0xd2, 0xf2, + 0xc7, 0x77, 0xc4, 0x6c, 0xb7, 0xb0, 0xe9, 0x08, 0xc9, 0x1e, 0x40, 0xc3, 0xc1, 0xc4, 0x9b, 0xf8, + 0x94, 0x9e, 0xa8, 0x93, 0x8c, 0xe9, 0x38, 0xa9, 0x93, 0x5c, 0x5a, 0xc1, 0x55, 0xba, 0xd0, 0x94, + 0xa7, 0x2a, 0x95, 0xec, 0x7e, 0x9c, 0x6e, 0xc8, 0xba, 0xd7, 0x83, 0xf1, 0xed, 0xf4, 0xf9, 0x6b, + 0x05, 0xaa, 0xb4, 0x33, 0xb2, 0x61, 0xeb, 0x34, 0x0a, 0x2e, 0xbc, 0x29, 0x3e, 0xbd, 0x0c, 0xe2, + 0x40, 0x4c, 0xa4, 0x60, 0x74, 0x0f, 0xf3, 0xd2, 0x1b, 0x5d, 0xf9, 0xee, 0x0c, 0x27, 0x7b, 0x98, + 0x44, 0x96, 0x54, 0xa8, 0x28, 0x2a, 0x3c, 0x04, 0xe8, 0x45, 0xd8, 0x8d, 0xf1, 0x17, 0xde, 0x0c, + 0x8b, 0xd5, 0x95, 0x10, 0xaa, 0xe2, 0xe9, 0x65, 0xe0, 0xe3, 0x97, 0xf3, 0xd9, 0x39, 0x8e, 0x92, + 0x12, 0x21, 0x41, 0x68, 0x07, 0x6a, 0xc7, 0x33, 0xd7, 0x9b, 0x9a, 0xf7, 0x58, 0x1b, 0x17, 0x28, + 0xda, 0xf5, 0xa2, 0xf8, 0xd2, 0x5c, 0xe7, 0x28, 0x13, 0xa8, 0x86, 0x7c, 0xee, 0x41, 0x68, 0x6e, + 0x70, 0x0d, 0x13, 0x99, 0xee, 0x76, 0x9f, 0xbb, 0x24, 0x7e, 0x1e, 0x4c, 0x3c, 0x9f, 0x29, 0xb3, + 0xc9, 0x77, 0xbb, 0x0a, 0x48, 0xf5, 0x49, 0x81, 0x41, 0x68, 0x02, 0xd7, 0x47, 0x82, 0x28, 0xa3, + 0xb4, 0x3b, 0x31, 0xeb, 0xbc, 0x40, 0x66, 0x08, 0xb5, 0x44, 0x1f, 0xfb, 0x63, 0x1c, 0x99, 0x5b, + 0xac, 0x4d, 0x48, 0xe9, 0xb8, 0xe7, 0xde, 0xcc, 0x8b, 0xcd, 0x86, 0x34, 0x8e, 0x21, 0xd4, 0x2f, + 0x07, 0xa4, 0x3b, 0x0d, 0x46, 0x57, 0x66, 0x73, 0xcf, 0xd8, 0xdf, 0x70, 0x12, 0x91, 0x97, 0xe4, + 0x89, 0x47, 0x62, 0x1c, 0x0d, 0x42, 0xb3, 0xc5, 0x6d, 0x98, 0x21, 0xf6, 0x28, 0xdd, 0x30, 0x73, + 0x87, 0x28, 0x79, 0xc6, 0x62, 0xa7, 0x70, 0x51, 0x6d, 0x80, 0xf7, 0x65, 0x5e, 0xca, 0x70, 0xfb, + 0x8f, 0x06, 0x6c, 0x8b, 0xaf, 0x90, 0xee, 0xf5, 0x4b, 0x77, 0x86, 0xc5, 0xe9, 0x90, 0x22, 0x54, + 0x4c, 0x4e, 0x87, 0x89, 0x8c, 0x8e, 0x00, 0x4e, 0xdd, 0x89, 0xe7, 0xcb, 0x55, 0xec, 0xa3, 0x82, + 0xdd, 0xb2, 0x83, 0xbf, 0x9c, 0x63, 0x12, 0x67, 0x7d, 0x1d, 0x69, 0xdc, 0x0a, 0x95, 0xe6, 0x4f, + 0xbc, 0xf8, 0x2b, 0x9a, 0x91, 0x10, 0xed, 0x41, 0x8d, 0x2a, 0x9e, 0x24, 0x38, 0x99, 0x11, 0x6f, + 0x40, 0xc7, 0x05, 0x0a, 0x7e, 0xbb, 0x50, 0x41, 0x12, 0x06, 0x3e, 0xc1, 0x0b, 0x34, 0x4c, 0x6c, + 0x30, 0x9f, 0x11, 0x91, 0xe5, 0x52, 0xd9, 0xfe, 0xaf, 0x01, 0x5b, 0x87, 0xd3, 0x98, 0x67, 0xc6, + 0x5b, 0x85, 0x6a, 0x3e, 0x52, 0x2a, 0x7a, 0xa4, 0xc8, 0xf1, 0x59, 0xcd, 0xc5, 0x67, 0x1a, 0x45, + 0x35, 0x39, 0x8a, 0x32, 0x5f, 0xe5, 0xc1, 0x95, 0xf8, 0x6a, 0x71, 0x74, 0xed, 0x40, 0x8d, 0x27, + 0x07, 0x1e, 0x5a, 0xb5, 0x34, 0x2b, 0x88, 0x93, 0xcc, 0x58, 0x84, 0x54, 0x2a, 0xdb, 0x87, 0xd0, + 0x90, 0xd8, 0x97, 0xf1, 0x4b, 0xfb, 0x0f, 0x06, 0xd4, 0x93, 0xd5, 0x4d, 0x0a, 0xb6, 0x64, 0x28, + 0x43, 0x37, 0xd4, 0xdd, 0xf8, 0x9d, 0xec, 0xd9, 0x15, 0xd5, 0xb3, 0xed, 0xbf, 0x19, 0xb0, 0x95, + 0xe9, 0x74, 0xcb, 0x70, 0xab, 0x14, 0x85, 0x5b, 0xce, 0x37, 0x2b, 0x77, 0xe1, 0x9b, 0xd5, 0x9c, + 0x6f, 0xfe, 0xdb, 0x00, 0x38, 0x1c, 0x8f, 0x13, 0xcf, 0x5c, 0x6e, 0xd8, 0x9c, 0x07, 0xae, 0xe9, + 0x1e, 0xb8, 0xa8, 0x0a, 0x20, 0xa8, 0x4a, 0x5e, 0x59, 0x7d, 0x87, 0x1e, 0xf9, 0x39, 0xd4, 0x53, + 0xce, 0xa5, 0xfc, 0xf1, 0x77, 0x06, 0x6c, 0xb1, 0xb4, 0xbc, 0x2c, 0xa2, 0x3f, 0x86, 0xe6, 0xb1, + 0x3f, 0x3e, 0xf2, 0x88, 0x7b, 0x3e, 0xe5, 0xd5, 0x4f, 0x1c, 0xb8, 0x54, 0x74, 0x79, 0x82, 0x53, + 0xf8, 0x54, 0xf5, 0x08, 0x93, 0xb4, 0x29, 0xc5, 0xe8, 0x02, 0x9a, 0xaf, 0xfc, 0x95, 0x28, 0x2d, + 0x4f, 0x52, 0xb2, 0xaa, 0x95, 0x9c, 0xaa, 0x3d, 0x68, 0x29, 0xdf, 0x29, 0xa5, 0xec, 0x9f, 0x0d, + 0x76, 0xa3, 0x98, 0x4e, 0xc3, 0x72, 0x82, 0x1a, 0xf1, 0xc6, 0xdd, 0x54, 0x9a, 0x02, 0x76, 0xb6, + 0xb4, 0xf4, 0x2f, 0xe7, 0x33, 0x91, 0xed, 0x15, 0xcc, 0xfe, 0x0a, 0x36, 0x53, 0x99, 0x46, 0x39, + 0xfd, 0x2f, 0x54, 0x52, 0xa2, 0x9c, 0xb5, 0x3f, 0x82, 0x76, 0x17, 0x4f, 0x3c, 0x5f, 0xf7, 0x12, + 0x0d, 0x2f, 0xf0, 0xa7, 0x4a, 0x91, 0x3f, 0xd9, 0xff, 0xe4, 0x85, 0x5a, 0xb6, 0x50, 0xa9, 0x0c, + 0x75, 0x00, 0x90, 0xcd, 0x21, 0xf2, 0x54, 0x8b, 0x8f, 0xc8, 0x16, 0x51, 0xea, 0xf2, 0xff, 0x48, + 0x59, 0xa7, 0xec, 0x64, 0x9b, 0x7e, 0x33, 0xd9, 0xff, 0xee, 0xc2, 0x3a, 0x15, 0xcf, 0xbc, 0xb7, + 0xdf, 0x00, 0x1f, 0xb3, 0x53, 0x6a, 0x6e, 0x46, 0x12, 0xa2, 0xef, 0x4a, 0xcb, 0x28, 0x6a, 0x88, + 0x46, 0x3e, 0xeb, 0x61, 0x5f, 0x40, 0x23, 0xbb, 0xa9, 0xbf, 0x9d, 0x4a, 0x37, 0xc6, 0x50, 0x57, + 0x7e, 0x8d, 0x28, 0xb7, 0xb0, 0x8f, 0xff, 0x53, 0xe7, 0xb5, 0x07, 0x7d, 0x9a, 0x56, 0x56, 0x76, + 0x45, 0xb9, 0xc3, 0x47, 0xa9, 0x97, 0xbd, 0xd6, 0x7b, 0x05, 0x28, 0x09, 0x51, 0x0f, 0x9a, 0xea, + 0x8d, 0x24, 0xda, 0x15, 0xde, 0x9d, 0xbf, 0x33, 0xb5, 0xcc, 0xe2, 0x06, 0x12, 0xa2, 0x9f, 0xc3, + 0xee, 0x82, 0x9b, 0x40, 0xb4, 0xc7, 0x07, 0x2d, 0xbe, 0xac, 0xb4, 0x3e, 0x5c, 0xd2, 0x83, 0x84, + 0x94, 0xa0, 0xf4, 0x7e, 0x92, 0x10, 0x54, 0x9f, 0x73, 0x12, 0x82, 0xf9, 0x87, 0x96, 0x1f, 0xb1, + 0x12, 0x9f, 0xbe, 0x5c, 0xa0, 0xcc, 0x0e, 0xf2, 0xf3, 0x88, 0xf5, 0xa0, 0x08, 0xe6, 0xc3, 0xe5, + 0x8b, 0xfb, 0x64, 0x78, 0xee, 0x99, 0x22, 0x19, 0xae, 0xbd, 0x20, 0x3c, 0x63, 0x5b, 0x7a, 0xe5, + 0x3a, 0xd2, 0x4c, 0xbf, 0x94, 0xbb, 0xe6, 0xb2, 0xde, 0x5f, 0xd0, 0x42, 0x42, 0xe4, 0xb0, 0x80, + 0xc9, 0xdf, 0x4c, 0xa0, 0x6f, 0xc8, 0x5a, 0xe7, 0xaf, 0x08, 0xac, 0x6f, 0xde, 0xd0, 0x4a, 0x42, + 0x34, 0x60, 0x19, 0x58, 0x9d, 0xb0, 0x58, 0x05, 0x36, 0x9b, 0xb5, 0xa8, 0x89, 0x84, 0xe8, 0x27, + 0xf0, 0x5e, 0xe1, 0xd1, 0x1e, 0x3d, 0x14, 0xb1, 0xb6, 0xe0, 0x16, 0xc3, 0xfa, 0xd6, 0x8d, 0xed, + 0xdc, 0x80, 0xc3, 0x62, 0x03, 0x0e, 0x17, 0x1a, 0xb0, 0xe8, 0x7e, 0xf6, 0x29, 0x34, 0x94, 0x0b, + 0x4a, 0xf4, 0x20, 0xed, 0xab, 0xdc, 0xc0, 0x5a, 0xbb, 0x85, 0x38, 0x77, 0x42, 0xe9, 0x74, 0x96, + 0x8b, 0x32, 0x91, 0xc1, 0x72, 0x51, 0x96, 0x66, 0xa1, 0x5e, 0x7a, 0xd4, 0x17, 0x27, 0x9b, 0x24, + 0xca, 0xb4, 0x93, 0x98, 0x65, 0x16, 0x37, 0x90, 0x10, 0x3d, 0x61, 0x6f, 0x4b, 0xe2, 0xce, 0x01, + 0xdd, 0xe7, 0xfd, 0x94, 0x0b, 0x0d, 0x6b, 0x47, 0x07, 0x49, 0x88, 0x7e, 0x00, 0x9b, 0xe9, 0xee, + 0x1d, 0x21, 0xe1, 0xa9, 0xd2, 0x61, 0xc6, 0xba, 0xaf, 0x61, 0x24, 0x44, 0x9f, 0xc0, 0x46, 0xa2, + 0x04, 0xda, 0x56, 0x95, 0xa2, 0x63, 0x50, 0x1e, 0x22, 0x21, 0xea, 0xc0, 0xba, 0xd8, 0x94, 0x21, + 0x91, 0xba, 0xb2, 0x7d, 0xa9, 0xb5, 0x9d, 0x43, 0xb8, 0x62, 0x59, 0x8d, 0x45, 0xf9, 0xb4, 0x9c, + 0x29, 0xa6, 0x6e, 0x36, 0x3e, 0x85, 0xba, 0xb4, 0xff, 0x48, 0x16, 0x42, 0xdd, 0xfa, 0x24, 0x0b, + 0x91, 0xdf, 0xa8, 0x3c, 0x85, 0x86, 0x52, 0x53, 0x51, 0x16, 0xf7, 0xca, 0x56, 0xc4, 0xda, 0x2d, + 0xc4, 0xd3, 0xa8, 0x51, 0x0a, 0x8d, 0x14, 0x35, 0xf9, 0x92, 0x26, 0x45, 0x8d, 0x5e, 0x9b, 0x9e, + 0x00, 0x64, 0xd9, 0x2a, 0x59, 0x50, 0xa5, 0xfc, 0x58, 0x3b, 0x3a, 0x48, 0xc2, 0x6e, 0xe3, 0xa7, + 0xf5, 0x0e, 0x7b, 0x77, 0xff, 0x21, 0xfd, 0x73, 0x7e, 0x8f, 0xbd, 0x90, 0x7f, 0xff, 0x7f, 0x01, + 0x00, 0x00, 0xff, 0xff, 0xb3, 0xba, 0x11, 0x76, 0x90, 0x1f, 0x00, 0x00, } diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index dc2751c21..a404a0c9e 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -1,5 +1,6 @@ syntax = "proto3"; import "Open_IM/pkg/proto/sdk_ws/ws.proto"; +import "Open_IM/pkg/proto/conversation/conversation.proto"; option go_package = "./user;user"; package user; @@ -75,25 +76,8 @@ message SetGlobalRecvMessageOptResp{ CommonResp commonResp = 1; } -message Conversation{ - string OwnerUserID = 1; - string ConversationID = 2; - int32 RecvMsgOpt = 3; - int32 ConversationType = 4; - string UserID = 5; - string GroupID = 6; - int32 UnreadCount = 7; - int64 DraftTextTime = 8; - bool IsPinned = 9; - string AttachedInfo = 10; - bool IsPrivateChat = 11; - int32 GroupAtType = 12; - bool IsNotInGroup = 13; - string Ex = 14; -} - message SetConversationReq{ - Conversation Conversation = 1; + conversation.Conversation Conversation = 1; int32 notificationType = 2; string OperationID = 3; } @@ -122,7 +106,7 @@ message GetConversationReq{ message GetConversationResp{ CommonResp commonResp = 1; - Conversation Conversation = 2; + conversation.Conversation Conversation = 2; } message GetConversationsReq{ @@ -133,7 +117,7 @@ message GetConversationsReq{ message GetConversationsResp{ CommonResp commonResp = 1; - repeated Conversation Conversations = 2; + repeated conversation.Conversation Conversations = 2; } message GetAllConversationsReq{ @@ -143,11 +127,11 @@ message GetAllConversationsReq{ message GetAllConversationsResp{ CommonResp commonResp = 1; - repeated Conversation Conversations = 2; + repeated conversation.Conversation Conversations = 2; } message BatchSetConversationsReq{ - repeated Conversation Conversations = 1; + repeated conversation.Conversation Conversations = 1; string OwnerUserID = 2; int32 notificationType = 3; string OperationID = 4;