wfz 3 年 前
コミット
92973d4218

+ 304 - 221
api/chat/chat.pb.go

@@ -10,6 +10,7 @@ import (
 	common "git.ikuban.com/server/pw-protobuf/api/common"
 	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
 	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
 	reflect "reflect"
 	sync "sync"
 )
@@ -590,6 +591,61 @@ func (x *CreateChatRoomParam) GetPersonType2() string {
 	return ""
 }
 
+type SetBlackChatParam struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	PersonIdentifyId string `protobuf:"bytes,1,opt,name=personIdentifyId,proto3" json:"personIdentifyId"` // 拉黑者的身份ID
+	RoomId           int64  `protobuf:"varint,2,opt,name=roomId,proto3" json:"roomId"`                    // 房间ID
+}
+
+func (x *SetBlackChatParam) Reset() {
+	*x = SetBlackChatParam{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_chat_proto_msgTypes[7]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *SetBlackChatParam) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SetBlackChatParam) ProtoMessage() {}
+
+func (x *SetBlackChatParam) ProtoReflect() protoreflect.Message {
+	mi := &file_chat_proto_msgTypes[7]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SetBlackChatParam.ProtoReflect.Descriptor instead.
+func (*SetBlackChatParam) Descriptor() ([]byte, []int) {
+	return file_chat_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *SetBlackChatParam) GetPersonIdentifyId() string {
+	if x != nil {
+		return x.PersonIdentifyId
+	}
+	return ""
+}
+
+func (x *SetBlackChatParam) GetRoomId() int64 {
+	if x != nil {
+		return x.RoomId
+	}
+	return 0
+}
+
 type ReceiveRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -606,7 +662,7 @@ type ReceiveRequest struct {
 func (x *ReceiveRequest) Reset() {
 	*x = ReceiveRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_chat_proto_msgTypes[7]
+		mi := &file_chat_proto_msgTypes[8]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -619,7 +675,7 @@ func (x *ReceiveRequest) String() string {
 func (*ReceiveRequest) ProtoMessage() {}
 
 func (x *ReceiveRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_chat_proto_msgTypes[7]
+	mi := &file_chat_proto_msgTypes[8]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -632,7 +688,7 @@ func (x *ReceiveRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ReceiveRequest.ProtoReflect.Descriptor instead.
 func (*ReceiveRequest) Descriptor() ([]byte, []int) {
-	return file_chat_proto_rawDescGZIP(), []int{7}
+	return file_chat_proto_rawDescGZIP(), []int{8}
 }
 
 func (x *ReceiveRequest) GetMethod() string {
@@ -686,7 +742,7 @@ type ReceiveReply struct {
 func (x *ReceiveReply) Reset() {
 	*x = ReceiveReply{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_chat_proto_msgTypes[8]
+		mi := &file_chat_proto_msgTypes[9]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -699,7 +755,7 @@ func (x *ReceiveReply) String() string {
 func (*ReceiveReply) ProtoMessage() {}
 
 func (x *ReceiveReply) ProtoReflect() protoreflect.Message {
-	mi := &file_chat_proto_msgTypes[8]
+	mi := &file_chat_proto_msgTypes[9]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -712,7 +768,7 @@ func (x *ReceiveReply) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ReceiveReply.ProtoReflect.Descriptor instead.
 func (*ReceiveReply) Descriptor() ([]byte, []int) {
-	return file_chat_proto_rawDescGZIP(), []int{8}
+	return file_chat_proto_rawDescGZIP(), []int{9}
 }
 
 type CheckUserPartnerIsRelationshipReply struct {
@@ -727,7 +783,7 @@ type CheckUserPartnerIsRelationshipReply struct {
 func (x *CheckUserPartnerIsRelationshipReply) Reset() {
 	*x = CheckUserPartnerIsRelationshipReply{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_chat_proto_msgTypes[9]
+		mi := &file_chat_proto_msgTypes[10]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -740,7 +796,7 @@ func (x *CheckUserPartnerIsRelationshipReply) String() string {
 func (*CheckUserPartnerIsRelationshipReply) ProtoMessage() {}
 
 func (x *CheckUserPartnerIsRelationshipReply) ProtoReflect() protoreflect.Message {
-	mi := &file_chat_proto_msgTypes[9]
+	mi := &file_chat_proto_msgTypes[10]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -753,7 +809,7 @@ func (x *CheckUserPartnerIsRelationshipReply) ProtoReflect() protoreflect.Messag
 
 // Deprecated: Use CheckUserPartnerIsRelationshipReply.ProtoReflect.Descriptor instead.
 func (*CheckUserPartnerIsRelationshipReply) Descriptor() ([]byte, []int) {
-	return file_chat_proto_rawDescGZIP(), []int{9}
+	return file_chat_proto_rawDescGZIP(), []int{10}
 }
 
 func (x *CheckUserPartnerIsRelationshipReply) GetIsBuildRelationship() bool {
@@ -781,7 +837,7 @@ type RoomReply struct {
 func (x *RoomReply) Reset() {
 	*x = RoomReply{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_chat_proto_msgTypes[10]
+		mi := &file_chat_proto_msgTypes[11]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -794,7 +850,7 @@ func (x *RoomReply) String() string {
 func (*RoomReply) ProtoMessage() {}
 
 func (x *RoomReply) ProtoReflect() protoreflect.Message {
-	mi := &file_chat_proto_msgTypes[10]
+	mi := &file_chat_proto_msgTypes[11]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -807,7 +863,7 @@ func (x *RoomReply) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RoomReply.ProtoReflect.Descriptor instead.
 func (*RoomReply) Descriptor() ([]byte, []int) {
-	return file_chat_proto_rawDescGZIP(), []int{10}
+	return file_chat_proto_rawDescGZIP(), []int{11}
 }
 
 func (x *RoomReply) GetRoomId() int64 {
@@ -830,7 +886,7 @@ type FindChatRoomMsgRequest struct {
 func (x *FindChatRoomMsgRequest) Reset() {
 	*x = FindChatRoomMsgRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_chat_proto_msgTypes[11]
+		mi := &file_chat_proto_msgTypes[12]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -843,7 +899,7 @@ func (x *FindChatRoomMsgRequest) String() string {
 func (*FindChatRoomMsgRequest) ProtoMessage() {}
 
 func (x *FindChatRoomMsgRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_chat_proto_msgTypes[11]
+	mi := &file_chat_proto_msgTypes[12]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -856,7 +912,7 @@ func (x *FindChatRoomMsgRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use FindChatRoomMsgRequest.ProtoReflect.Descriptor instead.
 func (*FindChatRoomMsgRequest) Descriptor() ([]byte, []int) {
-	return file_chat_proto_rawDescGZIP(), []int{11}
+	return file_chat_proto_rawDescGZIP(), []int{12}
 }
 
 func (x *FindChatRoomMsgRequest) GetRoomId() int64 {
@@ -895,7 +951,7 @@ type FindChatRecordListRequest struct {
 func (x *FindChatRecordListRequest) Reset() {
 	*x = FindChatRecordListRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_chat_proto_msgTypes[12]
+		mi := &file_chat_proto_msgTypes[13]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -908,7 +964,7 @@ func (x *FindChatRecordListRequest) String() string {
 func (*FindChatRecordListRequest) ProtoMessage() {}
 
 func (x *FindChatRecordListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_chat_proto_msgTypes[12]
+	mi := &file_chat_proto_msgTypes[13]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -921,7 +977,7 @@ func (x *FindChatRecordListRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use FindChatRecordListRequest.ProtoReflect.Descriptor instead.
 func (*FindChatRecordListRequest) Descriptor() ([]byte, []int) {
-	return file_chat_proto_rawDescGZIP(), []int{12}
+	return file_chat_proto_rawDescGZIP(), []int{13}
 }
 
 func (x *FindChatRecordListRequest) GetNextId() int64 {
@@ -963,180 +1019,191 @@ var File_chat_proto protoreflect.FileDescriptor
 
 var file_chat_proto_rawDesc = []byte{
 	0x0a, 0x0a, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, 0x70,
-	0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x1a, 0x17, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d,
-	0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
-	0xc0, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x52,
-	0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16,
-	0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
-	0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1e,
-	0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x49, 0x64, 0x12, 0x26,
-	0x0a, 0x0e, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79,
-	0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f,
-	0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x57, 0x69, 0x74, 0x68,
-	0x69, 0x6e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
-	0x52, 0x10, 0x69, 0x73, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44,
-	0x61, 0x79, 0x22, 0x95, 0x01, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x52,
-	0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16,
-	0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
-	0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1e,
-	0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x49, 0x64, 0x12, 0x2a,
-	0x0a, 0x10, 0x69, 0x73, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44,
-	0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x57, 0x69, 0x74, 0x68,
-	0x69, 0x6e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x22, 0x5b, 0x0a, 0x15, 0x55, 0x73,
+	0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f,
+	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc0, 0x01, 0x0a,
+	0x1a, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d,
+	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e,
+	0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x78,
+	0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x49,
+	0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x69,
+	0x73, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x04, 0x20,
+	0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x52, 0x65,
+	0x70, 0x6c, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x53,
+	0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69,
+	0x73, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x22,
+	0x95, 0x01, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d,
+	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e,
+	0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x78,
+	0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x49,
+	0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x69,
+	0x73, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x18,
+	0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x53,
+	0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x22, 0x5b, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x46,
+	0x69, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79,
+	0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16,
+	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f,
+	0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06,
+	0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65,
+	0x78, 0x74, 0x49, 0x64, 0x22, 0xe0, 0x01, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6f,
+	0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x54,
+	0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x6f,
+	0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49,
+	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49,
+	0x64, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x03,
+	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x12,
+	0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
+	0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20,
+	0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a,
+	0x0b, 0x6c, 0x69, 0x6b, 0x65, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01,
+	0x28, 0x03, 0x52, 0x0b, 0x6c, 0x69, 0x6b, 0x65, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12,
+	0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52,
+	0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x18, 0x50, 0x61, 0x72, 0x74, 0x6e,
 	0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
-	0x70, 0x6c, 0x79, 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28,
-	0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x55, 0x73, 0x65,
-	0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12,
-	0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
-	0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x22, 0xe0, 0x01, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72,
-	0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73,
-	0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65,
+	0x70, 0x6c, 0x79, 0x12, 0x2d, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28,
+	0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x50, 0x61, 0x72,
+	0x74, 0x6e, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69,
+	0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x22, 0xbb, 0x02, 0x0a, 0x0f, 0x50,
+	0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24,
+	0x0a, 0x0d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x53, 0x65, 0x6e,
+	0x64, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64,
+	0x12, 0x1c, 0x0a, 0x09, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20,
+	0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x20,
+	0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
+	0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01,
+	0x28, 0x03, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07,
+	0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62,
+	0x65, 0x6e, 0x65, 0x66, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65,
+	0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09,
+	0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69,
+	0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69,
+	0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20,
+	0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x67, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65,
+	0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d,
+	0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x31, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x31, 0x12, 0x2c,
+	0x0a, 0x11, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79,
+	0x49, 0x44, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x65, 0x72, 0x73, 0x6f,
+	0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x49, 0x44, 0x31, 0x12, 0x20, 0x0a, 0x0b,
+	0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x31, 0x12, 0x1c,
+	0x0a, 0x09, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x09, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x32, 0x12, 0x2c, 0x0a, 0x11,
+	0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x49, 0x44,
+	0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49,
+	0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x49, 0x44, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x65,
+	0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x0b, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x32, 0x22, 0x57, 0x0a, 0x11,
+	0x53, 0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61,
+	0x6d, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74,
+	0x69, 0x66, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x65, 0x72,
+	0x73, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x49, 0x64, 0x12, 0x16, 0x0a,
+	0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72,
+	0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0xac, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76,
+	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68,
+	0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64,
+	0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04,
+	0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65,
+	0x74, 0x54, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x65, 0x62, 0x73,
+	0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73,
+	0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65,
 	0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73,
-	0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73,
-	0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75,
-	0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4e,
-	0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
-	0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e,
-	0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65,
-	0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65,
-	0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x69, 0x6b, 0x65, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18,
-	0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6c, 0x69, 0x6b, 0x65, 0x61, 0x62, 0x69, 0x6c, 0x69,
-	0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01,
-	0x28, 0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x18, 0x50, 0x61,
-	0x72, 0x74, 0x6e, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73,
-	0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2d, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01,
-	0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e,
-	0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52,
-	0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x22, 0xbb, 0x02,
-	0x0a, 0x0f, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66,
-	0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x64, 0x4e,
-	0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e,
-	0x53, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f,
-	0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f,
-	0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d,
-	0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75,
-	0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
-	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74,
-	0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18,
-	0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12,
-	0x18, 0x0a, 0x07, 0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03,
-	0x52, 0x07, 0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70,
-	0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a,
-	0x03, 0x73, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12,
-	0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a,
-	0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65,
-	0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x67, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x13,
-	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x61,
-	0x72, 0x61, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x31,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64,
-	0x31, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74,
-	0x69, 0x66, 0x79, 0x49, 0x44, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x65,
-	0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x49, 0x44, 0x31, 0x12,
-	0x20, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x31, 0x18, 0x03,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65,
-	0x31, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x32, 0x18, 0x04,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x32, 0x12,
-	0x2c, 0x0a, 0x11, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66,
-	0x79, 0x49, 0x44, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x65, 0x72, 0x73,
-	0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x49, 0x44, 0x32, 0x12, 0x20, 0x0a,
-	0x0b, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x32, 0x18, 0x06, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x32, 0x22,
-	0xac, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61,
-	0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e,
-	0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22,
-	0x0a, 0x0c, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x61, 0x67, 0x18, 0x04,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54,
-	0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65,
-	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79,
-	0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x06,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x0e,
-	0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x6f,
-	0x0a, 0x23, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x6e,
-	0x65, 0x72, 0x49, 0x73, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70,
-	0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x73, 0x42, 0x75, 0x69, 0x6c, 0x64,
-	0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x08, 0x52, 0x13, 0x69, 0x73, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x6c, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49,
-	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22,
-	0x23, 0x0a, 0x09, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06,
-	0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x6f,
-	0x6f, 0x6d, 0x49, 0x64, 0x22, 0x6c, 0x0a, 0x16, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74,
-	0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16,
-	0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
-	0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e,
-	0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73,
-	0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e,
-	0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e,
-	0x49, 0x44, 0x22, 0x9f, 0x01, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52,
-	0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
-	0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73,
-	0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
-	0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
-	0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73,
-	0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65,
-	0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73,
-	0x6f, 0x6e, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73,
-	0x6f, 0x6e, 0x49, 0x44, 0x32, 0xd3, 0x05, 0x0a, 0x04, 0x43, 0x68, 0x61, 0x74, 0x12, 0x7a, 0x0a,
-	0x1e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65,
-	0x72, 0x49, 0x73, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x12,
-	0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x55, 0x73, 0x65,
-	0x72, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74,
-	0x69, 0x66, 0x79, 0x49, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x2d, 0x2e, 0x61, 0x70, 0x69,
-	0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x50,
-	0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x73, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-	0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x44, 0x0a, 0x0e, 0x43, 0x72, 0x65,
-	0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x1d, 0x2e, 0x61, 0x70,
-	0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61,
-	0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x13, 0x2e, 0x61, 0x70, 0x69,
-	0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12,
-	0x5f, 0x0a, 0x14, 0x46, 0x69, 0x6e, 0x64, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x65, 0x72,
-	0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f,
-	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x41, 0x6e, 0x64,
-	0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e,
-	0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x6e, 0x6c, 0x69, 0x6e,
-	0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79,
-	0x12, 0x61, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x52,
-	0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68,
-	0x61, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x6f,
-	0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e,
+	0x6f, 0x6e, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73,
+	0x6f, 0x6e, 0x49, 0x64, 0x22, 0x0e, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52,
+	0x65, 0x70, 0x6c, 0x79, 0x22, 0x6f, 0x0a, 0x23, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65,
+	0x72, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x73, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x13, 0x69,
+	0x73, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68,
+	0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x73, 0x42, 0x75, 0x69, 0x6c,
+	0x64, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x12, 0x16, 0x0a,
+	0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72,
+	0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x09, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x70,
+	0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x6c, 0x0a, 0x16, 0x46, 0x69,
+	0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a,
+	0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08,
+	0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+	0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x9f, 0x01, 0x0a, 0x19, 0x46, 0x69, 0x6e,
+	0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x16,
+	0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
+	0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64,
+	0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1e,
+	0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a,
+	0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x32, 0x9a, 0x06, 0x0a, 0x04, 0x43,
+	0x68, 0x61, 0x74, 0x12, 0x7a, 0x0a, 0x1e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72,
+	0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x73, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x73, 0x68, 0x69, 0x70, 0x12, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
+	0x6f, 0x6e, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65,
+	0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x49, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d,
+	0x1a, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63,
+	0x6b, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x73, 0x52, 0x65,
+	0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12,
+	0x44, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f,
+	0x6d, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x43, 0x72, 0x65,
+	0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d,
+	0x1a, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d,
+	0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x5f, 0x0a, 0x14, 0x46, 0x69, 0x6e, 0x64, 0x4f, 0x6e, 0x6c,
+	0x69, 0x6e, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x2e,
+	0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50,
+	0x61, 0x67, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
+	0x2e, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73,
+	0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x61, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65,
+	0x72, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x2e,
 	0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72,
+	0x46, 0x69, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x50,
+	0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69,
+	0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x10, 0x55, 0x73, 0x65,
+	0x72, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e,
+	0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e,
+	0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+	0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72,
 	0x46, 0x69, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c,
-	0x79, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x52,
-	0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68,
-	0x61, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x4c,
-	0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69,
-	0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x6f,
-	0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x3d, 0x0a,
-	0x07, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63,
-	0x68, 0x61, 0x74, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x52, 0x65,
-	0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x12,
-	0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69,
-	0x73, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x46, 0x69,
-	0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f,
-	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c,
-	0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0f, 0x46, 0x69,
-	0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x12, 0x20, 0x2e,
-	0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61,
-	0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
-	0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61,
-	0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x22, 0x00, 0x42, 0x3d, 0x0a, 0x08, 0x61, 0x70,
-	0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x50, 0x01, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x2e, 0x69, 0x6b,
-	0x75, 0x62, 0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f,
-	0x70, 0x77, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x70, 0x69, 0x2f,
-	0x63, 0x68, 0x61, 0x74, 0x3b, 0x63, 0x68, 0x61, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x33,
+	0x79, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x12, 0x18,
+	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76,
+	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63,
+	0x68, 0x61, 0x74, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79,
+	0x22, 0x00, 0x12, 0x5c, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65,
+	0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63,
+	0x68, 0x61, 0x74, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f,
+	0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e,
+	0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x52,
+	0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00,
+	0x12, 0x4e, 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d,
+	0x4d, 0x73, 0x67, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x46,
+	0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
+	0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x22, 0x00,
+	0x12, 0x45, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x74,
+	0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x42,
+	0x6c, 0x61, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e,
+	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+	0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x3d, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x2e, 0x63,
+	0x68, 0x61, 0x74, 0x50, 0x01, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x2e, 0x69, 0x6b, 0x75, 0x62, 0x61,
+	0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x77, 0x2d,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x68, 0x61,
+	0x74, 0x3b, 0x63, 0x68, 0x61, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -1151,7 +1218,7 @@ func file_chat_proto_rawDescGZIP() []byte {
 	return file_chat_proto_rawDescData
 }
 
-var file_chat_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
+var file_chat_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
 var file_chat_proto_goTypes = []interface{}{
 	(*PartnerFindRoomListRequest)(nil),           // 0: api.chat.PartnerFindRoomListRequest
 	(*UserFindRoomListRequest)(nil),              // 1: api.chat.UserFindRoomListRequest
@@ -1160,39 +1227,43 @@ var file_chat_proto_goTypes = []interface{}{
 	(*PartnerFindRoomListReply)(nil),             // 4: api.chat.PartnerFindRoomListReply
 	(*PartnerRoomInfo)(nil),                      // 5: api.chat.PartnerRoomInfo
 	(*CreateChatRoomParam)(nil),                  // 6: api.chat.CreateChatRoomParam
-	(*ReceiveRequest)(nil),                       // 7: api.chat.ReceiveRequest
-	(*ReceiveReply)(nil),                         // 8: api.chat.ReceiveReply
-	(*CheckUserPartnerIsRelationshipReply)(nil),  // 9: api.chat.CheckUserPartnerIsRelationshipReply
-	(*RoomReply)(nil),                            // 10: api.chat.RoomReply
-	(*FindChatRoomMsgRequest)(nil),               // 11: api.chat.FindChatRoomMsgRequest
-	(*FindChatRecordListRequest)(nil),            // 12: api.chat.FindChatRecordListRequest
-	(*common.UserAndPartnerIdentifyIdParam)(nil), // 13: api.common.UserAndPartnerIdentifyIdParam
-	(*common.ListPageAndPersonRequest)(nil),      // 14: api.common.ListPageAndPersonRequest
-	(*common.OnlinePersonListReply)(nil),         // 15: api.common.OnlinePersonListReply
-	(*common.ChatRecordListReply)(nil),           // 16: api.common.ChatRecordListReply
-	(*common.ChatRoomMsg)(nil),                   // 17: api.common.ChatRoomMsg
+	(*SetBlackChatParam)(nil),                    // 7: api.chat.SetBlackChatParam
+	(*ReceiveRequest)(nil),                       // 8: api.chat.ReceiveRequest
+	(*ReceiveReply)(nil),                         // 9: api.chat.ReceiveReply
+	(*CheckUserPartnerIsRelationshipReply)(nil),  // 10: api.chat.CheckUserPartnerIsRelationshipReply
+	(*RoomReply)(nil),                            // 11: api.chat.RoomReply
+	(*FindChatRoomMsgRequest)(nil),               // 12: api.chat.FindChatRoomMsgRequest
+	(*FindChatRecordListRequest)(nil),            // 13: api.chat.FindChatRecordListRequest
+	(*common.UserAndPartnerIdentifyIdParam)(nil), // 14: api.common.UserAndPartnerIdentifyIdParam
+	(*common.ListPageAndPersonRequest)(nil),      // 15: api.common.ListPageAndPersonRequest
+	(*common.OnlinePersonListReply)(nil),         // 16: api.common.OnlinePersonListReply
+	(*common.ChatRecordListReply)(nil),           // 17: api.common.ChatRecordListReply
+	(*common.ChatRoomMsg)(nil),                   // 18: api.common.ChatRoomMsg
+	(*emptypb.Empty)(nil),                        // 19: google.protobuf.Empty
 }
 var file_chat_proto_depIdxs = []int32{
 	3,  // 0: api.chat.UserFindRoomListReply.list:type_name -> api.chat.UserRoomInfo
 	5,  // 1: api.chat.PartnerFindRoomListReply.list:type_name -> api.chat.PartnerRoomInfo
-	13, // 2: api.chat.Chat.CheckUserPartnerIsRelationship:input_type -> api.common.UserAndPartnerIdentifyIdParam
+	14, // 2: api.chat.Chat.CheckUserPartnerIsRelationship:input_type -> api.common.UserAndPartnerIdentifyIdParam
 	6,  // 3: api.chat.Chat.CreateChatRoom:input_type -> api.chat.CreateChatRoomParam
-	14, // 4: api.chat.Chat.FindOnlinePersonList:input_type -> api.common.ListPageAndPersonRequest
+	15, // 4: api.chat.Chat.FindOnlinePersonList:input_type -> api.common.ListPageAndPersonRequest
 	0,  // 5: api.chat.Chat.PartnerFindRoomList:input_type -> api.chat.PartnerFindRoomListRequest
 	1,  // 6: api.chat.Chat.UserFindRoomList:input_type -> api.chat.UserFindRoomListRequest
-	7,  // 7: api.chat.Chat.Receive:input_type -> api.chat.ReceiveRequest
-	12, // 8: api.chat.Chat.FindChatRecordList:input_type -> api.chat.FindChatRecordListRequest
-	11, // 9: api.chat.Chat.FindChatRoomMsg:input_type -> api.chat.FindChatRoomMsgRequest
-	9,  // 10: api.chat.Chat.CheckUserPartnerIsRelationship:output_type -> api.chat.CheckUserPartnerIsRelationshipReply
-	10, // 11: api.chat.Chat.CreateChatRoom:output_type -> api.chat.RoomReply
-	15, // 12: api.chat.Chat.FindOnlinePersonList:output_type -> api.common.OnlinePersonListReply
-	4,  // 13: api.chat.Chat.PartnerFindRoomList:output_type -> api.chat.PartnerFindRoomListReply
-	2,  // 14: api.chat.Chat.UserFindRoomList:output_type -> api.chat.UserFindRoomListReply
-	8,  // 15: api.chat.Chat.Receive:output_type -> api.chat.ReceiveReply
-	16, // 16: api.chat.Chat.FindChatRecordList:output_type -> api.common.ChatRecordListReply
-	17, // 17: api.chat.Chat.FindChatRoomMsg:output_type -> api.common.ChatRoomMsg
-	10, // [10:18] is the sub-list for method output_type
-	2,  // [2:10] is the sub-list for method input_type
+	8,  // 7: api.chat.Chat.Receive:input_type -> api.chat.ReceiveRequest
+	13, // 8: api.chat.Chat.FindChatRecordList:input_type -> api.chat.FindChatRecordListRequest
+	12, // 9: api.chat.Chat.FindChatRoomMsg:input_type -> api.chat.FindChatRoomMsgRequest
+	7,  // 10: api.chat.Chat.SetBlackChat:input_type -> api.chat.SetBlackChatParam
+	10, // 11: api.chat.Chat.CheckUserPartnerIsRelationship:output_type -> api.chat.CheckUserPartnerIsRelationshipReply
+	11, // 12: api.chat.Chat.CreateChatRoom:output_type -> api.chat.RoomReply
+	16, // 13: api.chat.Chat.FindOnlinePersonList:output_type -> api.common.OnlinePersonListReply
+	4,  // 14: api.chat.Chat.PartnerFindRoomList:output_type -> api.chat.PartnerFindRoomListReply
+	2,  // 15: api.chat.Chat.UserFindRoomList:output_type -> api.chat.UserFindRoomListReply
+	9,  // 16: api.chat.Chat.Receive:output_type -> api.chat.ReceiveReply
+	17, // 17: api.chat.Chat.FindChatRecordList:output_type -> api.common.ChatRecordListReply
+	18, // 18: api.chat.Chat.FindChatRoomMsg:output_type -> api.common.ChatRoomMsg
+	19, // 19: api.chat.Chat.SetBlackChat:output_type -> google.protobuf.Empty
+	11, // [11:20] is the sub-list for method output_type
+	2,  // [2:11] is the sub-list for method input_type
 	2,  // [2:2] is the sub-list for extension type_name
 	2,  // [2:2] is the sub-list for extension extendee
 	0,  // [0:2] is the sub-list for field type_name
@@ -1289,7 +1360,7 @@ func file_chat_proto_init() {
 			}
 		}
 		file_chat_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ReceiveRequest); i {
+			switch v := v.(*SetBlackChatParam); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1301,7 +1372,7 @@ func file_chat_proto_init() {
 			}
 		}
 		file_chat_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ReceiveReply); i {
+			switch v := v.(*ReceiveRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1313,7 +1384,7 @@ func file_chat_proto_init() {
 			}
 		}
 		file_chat_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CheckUserPartnerIsRelationshipReply); i {
+			switch v := v.(*ReceiveReply); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1325,7 +1396,7 @@ func file_chat_proto_init() {
 			}
 		}
 		file_chat_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RoomReply); i {
+			switch v := v.(*CheckUserPartnerIsRelationshipReply); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1337,7 +1408,7 @@ func file_chat_proto_init() {
 			}
 		}
 		file_chat_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*FindChatRoomMsgRequest); i {
+			switch v := v.(*RoomReply); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1349,6 +1420,18 @@ func file_chat_proto_init() {
 			}
 		}
 		file_chat_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*FindChatRoomMsgRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_chat_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*FindChatRecordListRequest); i {
 			case 0:
 				return &v.state
@@ -1367,7 +1450,7 @@ func file_chat_proto_init() {
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_chat_proto_rawDesc,
 			NumEnums:      0,
-			NumMessages:   13,
+			NumMessages:   14,
 			NumExtensions: 0,
 			NumServices:   1,
 		},

+ 7 - 1
api/chat/chat.proto

@@ -4,7 +4,7 @@ package api.chat;
 
 //import "google/api/annotations.proto";
 //import "google/protobuf/struct.proto";
-//import "google/protobuf/empty.proto";
+import "google/protobuf/empty.proto";
 import "api/common/common.proto";
 
 option go_package = "git.ikuban.com/server/pw-protobuf/api/chat;chat";
@@ -27,6 +27,8 @@ service Chat {
   rpc FindChatRecordList (FindChatRecordListRequest) returns (common.ChatRecordListReply){};
   // 房间信息
   rpc FindChatRoomMsg (FindChatRoomMsgRequest) returns (common.ChatRoomMsg){};
+  // 拉黑
+  rpc SetBlackChat (SetBlackChatParam) returns (google.protobuf.Empty){};
 }
 
 message PartnerFindRoomListRequest {
@@ -87,6 +89,10 @@ message CreateChatRoomParam {
   string personType2 = 6; // 类型
 }
 
+message SetBlackChatParam {
+  string personIdentifyId = 1; // 拉黑者的身份ID
+  int64 roomId = 2; // 房间ID
+}
 
 message ReceiveRequest{
   string method = 1;

+ 39 - 0
api/chat/chat_grpc.pb.go

@@ -8,6 +8,7 @@ import (
 	grpc "google.golang.org/grpc"
 	codes "google.golang.org/grpc/codes"
 	status "google.golang.org/grpc/status"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
 )
 
 // This is a compile-time assertion to ensure that this generated file
@@ -34,6 +35,8 @@ type ChatClient interface {
 	FindChatRecordList(ctx context.Context, in *FindChatRecordListRequest, opts ...grpc.CallOption) (*common.ChatRecordListReply, error)
 	// 房间信息
 	FindChatRoomMsg(ctx context.Context, in *FindChatRoomMsgRequest, opts ...grpc.CallOption) (*common.ChatRoomMsg, error)
+	// 拉黑
+	SetBlackChat(ctx context.Context, in *SetBlackChatParam, opts ...grpc.CallOption) (*emptypb.Empty, error)
 }
 
 type chatClient struct {
@@ -116,6 +119,15 @@ func (c *chatClient) FindChatRoomMsg(ctx context.Context, in *FindChatRoomMsgReq
 	return out, nil
 }
 
+func (c *chatClient) SetBlackChat(ctx context.Context, in *SetBlackChatParam, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, "/api.chat.Chat/SetBlackChat", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 // ChatServer is the server API for Chat service.
 // All implementations must embed UnimplementedChatServer
 // for forward compatibility
@@ -135,6 +147,8 @@ type ChatServer interface {
 	FindChatRecordList(context.Context, *FindChatRecordListRequest) (*common.ChatRecordListReply, error)
 	// 房间信息
 	FindChatRoomMsg(context.Context, *FindChatRoomMsgRequest) (*common.ChatRoomMsg, error)
+	// 拉黑
+	SetBlackChat(context.Context, *SetBlackChatParam) (*emptypb.Empty, error)
 	mustEmbedUnimplementedChatServer()
 }
 
@@ -166,6 +180,9 @@ func (UnimplementedChatServer) FindChatRecordList(context.Context, *FindChatReco
 func (UnimplementedChatServer) FindChatRoomMsg(context.Context, *FindChatRoomMsgRequest) (*common.ChatRoomMsg, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method FindChatRoomMsg not implemented")
 }
+func (UnimplementedChatServer) SetBlackChat(context.Context, *SetBlackChatParam) (*emptypb.Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SetBlackChat not implemented")
+}
 func (UnimplementedChatServer) mustEmbedUnimplementedChatServer() {}
 
 // UnsafeChatServer may be embedded to opt out of forward compatibility for this service.
@@ -323,6 +340,24 @@ func _Chat_FindChatRoomMsg_Handler(srv interface{}, ctx context.Context, dec fun
 	return interceptor(ctx, in, info, handler)
 }
 
+func _Chat_SetBlackChat_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SetBlackChatParam)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ChatServer).SetBlackChat(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.chat.Chat/SetBlackChat",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ChatServer).SetBlackChat(ctx, req.(*SetBlackChatParam))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 // Chat_ServiceDesc is the grpc.ServiceDesc for Chat service.
 // It's only intended for direct use with grpc.RegisterService,
 // and not to be introspected or modified (even as a copy)
@@ -362,6 +397,10 @@ var Chat_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "FindChatRoomMsg",
 			Handler:    _Chat_FindChatRoomMsg_Handler,
 		},
+		{
+			MethodName: "SetBlackChat",
+			Handler:    _Chat_SetBlackChat_Handler,
+		},
 	},
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "chat.proto",

+ 165 - 102
api/common/common.pb.go

@@ -2712,6 +2712,53 @@ func (x *FindChatRoomMsgRequest) GetRoomId() int64 {
 	return 0
 }
 
+type RoomIDRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	RoomId int64 `protobuf:"varint,1,opt,name=roomId,proto3" json:"roomId"`
+}
+
+func (x *RoomIDRequest) Reset() {
+	*x = RoomIDRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_common_proto_msgTypes[38]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *RoomIDRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RoomIDRequest) ProtoMessage() {}
+
+func (x *RoomIDRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_common_proto_msgTypes[38]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RoomIDRequest.ProtoReflect.Descriptor instead.
+func (*RoomIDRequest) Descriptor() ([]byte, []int) {
+	return file_common_proto_rawDescGZIP(), []int{38}
+}
+
+func (x *RoomIDRequest) GetRoomId() int64 {
+	if x != nil {
+		return x.RoomId
+	}
+	return 0
+}
+
 type FindChatRecordListRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2725,7 +2772,7 @@ type FindChatRecordListRequest struct {
 func (x *FindChatRecordListRequest) Reset() {
 	*x = FindChatRecordListRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_common_proto_msgTypes[38]
+		mi := &file_common_proto_msgTypes[39]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -2738,7 +2785,7 @@ func (x *FindChatRecordListRequest) String() string {
 func (*FindChatRecordListRequest) ProtoMessage() {}
 
 func (x *FindChatRecordListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_common_proto_msgTypes[38]
+	mi := &file_common_proto_msgTypes[39]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -2751,7 +2798,7 @@ func (x *FindChatRecordListRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use FindChatRecordListRequest.ProtoReflect.Descriptor instead.
 func (*FindChatRecordListRequest) Descriptor() ([]byte, []int) {
-	return file_common_proto_rawDescGZIP(), []int{38}
+	return file_common_proto_rawDescGZIP(), []int{39}
 }
 
 func (x *FindChatRecordListRequest) GetNextId() int64 {
@@ -2786,7 +2833,7 @@ type IsLike struct {
 func (x *IsLike) Reset() {
 	*x = IsLike{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_common_proto_msgTypes[39]
+		mi := &file_common_proto_msgTypes[40]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -2799,7 +2846,7 @@ func (x *IsLike) String() string {
 func (*IsLike) ProtoMessage() {}
 
 func (x *IsLike) ProtoReflect() protoreflect.Message {
-	mi := &file_common_proto_msgTypes[39]
+	mi := &file_common_proto_msgTypes[40]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -2812,7 +2859,7 @@ func (x *IsLike) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use IsLike.ProtoReflect.Descriptor instead.
 func (*IsLike) Descriptor() ([]byte, []int) {
-	return file_common_proto_rawDescGZIP(), []int{39}
+	return file_common_proto_rawDescGZIP(), []int{40}
 }
 
 func (x *IsLike) GetIsLike() bool {
@@ -2835,7 +2882,7 @@ type BalanceRequest struct {
 func (x *BalanceRequest) Reset() {
 	*x = BalanceRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_common_proto_msgTypes[40]
+		mi := &file_common_proto_msgTypes[41]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -2848,7 +2895,7 @@ func (x *BalanceRequest) String() string {
 func (*BalanceRequest) ProtoMessage() {}
 
 func (x *BalanceRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_common_proto_msgTypes[40]
+	mi := &file_common_proto_msgTypes[41]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -2861,7 +2908,7 @@ func (x *BalanceRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use BalanceRequest.ProtoReflect.Descriptor instead.
 func (*BalanceRequest) Descriptor() ([]byte, []int) {
-	return file_common_proto_rawDescGZIP(), []int{40}
+	return file_common_proto_rawDescGZIP(), []int{41}
 }
 
 func (x *BalanceRequest) GetPersonID() string {
@@ -2896,7 +2943,7 @@ type RandomNum struct {
 func (x *RandomNum) Reset() {
 	*x = RandomNum{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_common_proto_msgTypes[41]
+		mi := &file_common_proto_msgTypes[42]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -2909,7 +2956,7 @@ func (x *RandomNum) String() string {
 func (*RandomNum) ProtoMessage() {}
 
 func (x *RandomNum) ProtoReflect() protoreflect.Message {
-	mi := &file_common_proto_msgTypes[41]
+	mi := &file_common_proto_msgTypes[42]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -2922,7 +2969,7 @@ func (x *RandomNum) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RandomNum.ProtoReflect.Descriptor instead.
 func (*RandomNum) Descriptor() ([]byte, []int) {
-	return file_common_proto_rawDescGZIP(), []int{41}
+	return file_common_proto_rawDescGZIP(), []int{42}
 }
 
 func (x *RandomNum) GetNum() int64 {
@@ -2944,7 +2991,7 @@ type RandomNumAndSex struct {
 func (x *RandomNumAndSex) Reset() {
 	*x = RandomNumAndSex{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_common_proto_msgTypes[42]
+		mi := &file_common_proto_msgTypes[43]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -2957,7 +3004,7 @@ func (x *RandomNumAndSex) String() string {
 func (*RandomNumAndSex) ProtoMessage() {}
 
 func (x *RandomNumAndSex) ProtoReflect() protoreflect.Message {
-	mi := &file_common_proto_msgTypes[42]
+	mi := &file_common_proto_msgTypes[43]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -2970,7 +3017,7 @@ func (x *RandomNumAndSex) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RandomNumAndSex.ProtoReflect.Descriptor instead.
 func (*RandomNumAndSex) Descriptor() ([]byte, []int) {
-	return file_common_proto_rawDescGZIP(), []int{42}
+	return file_common_proto_rawDescGZIP(), []int{43}
 }
 
 func (x *RandomNumAndSex) GetNum() int64 {
@@ -3000,7 +3047,7 @@ type MemeRequest struct {
 func (x *MemeRequest) Reset() {
 	*x = MemeRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_common_proto_msgTypes[43]
+		mi := &file_common_proto_msgTypes[44]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -3013,7 +3060,7 @@ func (x *MemeRequest) String() string {
 func (*MemeRequest) ProtoMessage() {}
 
 func (x *MemeRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_common_proto_msgTypes[43]
+	mi := &file_common_proto_msgTypes[44]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -3026,7 +3073,7 @@ func (x *MemeRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use MemeRequest.ProtoReflect.Descriptor instead.
 func (*MemeRequest) Descriptor() ([]byte, []int) {
-	return file_common_proto_rawDescGZIP(), []int{43}
+	return file_common_proto_rawDescGZIP(), []int{44}
 }
 
 func (x *MemeRequest) GetNextId() int64 {
@@ -3061,7 +3108,7 @@ type CommonTextList struct {
 func (x *CommonTextList) Reset() {
 	*x = CommonTextList{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_common_proto_msgTypes[44]
+		mi := &file_common_proto_msgTypes[45]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -3074,7 +3121,7 @@ func (x *CommonTextList) String() string {
 func (*CommonTextList) ProtoMessage() {}
 
 func (x *CommonTextList) ProtoReflect() protoreflect.Message {
-	mi := &file_common_proto_msgTypes[44]
+	mi := &file_common_proto_msgTypes[45]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -3087,7 +3134,7 @@ func (x *CommonTextList) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CommonTextList.ProtoReflect.Descriptor instead.
 func (*CommonTextList) Descriptor() ([]byte, []int) {
-	return file_common_proto_rawDescGZIP(), []int{44}
+	return file_common_proto_rawDescGZIP(), []int{45}
 }
 
 func (x *CommonTextList) GetList() []string {
@@ -3108,7 +3155,7 @@ type MemeTitleList struct {
 func (x *MemeTitleList) Reset() {
 	*x = MemeTitleList{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_common_proto_msgTypes[45]
+		mi := &file_common_proto_msgTypes[46]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -3121,7 +3168,7 @@ func (x *MemeTitleList) String() string {
 func (*MemeTitleList) ProtoMessage() {}
 
 func (x *MemeTitleList) ProtoReflect() protoreflect.Message {
-	mi := &file_common_proto_msgTypes[45]
+	mi := &file_common_proto_msgTypes[46]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -3134,7 +3181,7 @@ func (x *MemeTitleList) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use MemeTitleList.ProtoReflect.Descriptor instead.
 func (*MemeTitleList) Descriptor() ([]byte, []int) {
-	return file_common_proto_rawDescGZIP(), []int{45}
+	return file_common_proto_rawDescGZIP(), []int{46}
 }
 
 func (x *MemeTitleList) GetList() []*MemeTitle {
@@ -3156,7 +3203,7 @@ type MemeTitle struct {
 func (x *MemeTitle) Reset() {
 	*x = MemeTitle{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_common_proto_msgTypes[46]
+		mi := &file_common_proto_msgTypes[47]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -3169,7 +3216,7 @@ func (x *MemeTitle) String() string {
 func (*MemeTitle) ProtoMessage() {}
 
 func (x *MemeTitle) ProtoReflect() protoreflect.Message {
-	mi := &file_common_proto_msgTypes[46]
+	mi := &file_common_proto_msgTypes[47]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -3182,7 +3229,7 @@ func (x *MemeTitle) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use MemeTitle.ProtoReflect.Descriptor instead.
 func (*MemeTitle) Descriptor() ([]byte, []int) {
-	return file_common_proto_rawDescGZIP(), []int{46}
+	return file_common_proto_rawDescGZIP(), []int{47}
 }
 
 func (x *MemeTitle) GetName() string {
@@ -3211,7 +3258,7 @@ type MemeList struct {
 func (x *MemeList) Reset() {
 	*x = MemeList{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_common_proto_msgTypes[47]
+		mi := &file_common_proto_msgTypes[48]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -3224,7 +3271,7 @@ func (x *MemeList) String() string {
 func (*MemeList) ProtoMessage() {}
 
 func (x *MemeList) ProtoReflect() protoreflect.Message {
-	mi := &file_common_proto_msgTypes[47]
+	mi := &file_common_proto_msgTypes[48]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -3237,7 +3284,7 @@ func (x *MemeList) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use MemeList.ProtoReflect.Descriptor instead.
 func (*MemeList) Descriptor() ([]byte, []int) {
-	return file_common_proto_rawDescGZIP(), []int{47}
+	return file_common_proto_rawDescGZIP(), []int{48}
 }
 
 func (x *MemeList) GetList() []string {
@@ -3266,7 +3313,7 @@ type ChatTopicList struct {
 func (x *ChatTopicList) Reset() {
 	*x = ChatTopicList{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_common_proto_msgTypes[48]
+		mi := &file_common_proto_msgTypes[49]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -3279,7 +3326,7 @@ func (x *ChatTopicList) String() string {
 func (*ChatTopicList) ProtoMessage() {}
 
 func (x *ChatTopicList) ProtoReflect() protoreflect.Message {
-	mi := &file_common_proto_msgTypes[48]
+	mi := &file_common_proto_msgTypes[49]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -3292,7 +3339,7 @@ func (x *ChatTopicList) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ChatTopicList.ProtoReflect.Descriptor instead.
 func (*ChatTopicList) Descriptor() ([]byte, []int) {
-	return file_common_proto_rawDescGZIP(), []int{48}
+	return file_common_proto_rawDescGZIP(), []int{49}
 }
 
 func (x *ChatTopicList) GetList() []string {
@@ -3619,54 +3666,57 @@ var file_common_proto_rawDesc = []byte{
 	0x72, 0x69, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x22, 0x30, 0x0a, 0x16, 0x46, 0x69, 0x6e, 0x64, 0x43,
 	0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
 	0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x63, 0x0a, 0x19, 0x46, 0x69, 0x6e,
-	0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52,
+	0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x27, 0x0a, 0x0d, 0x52, 0x6f, 0x6f,
+	0x6d, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f,
+	0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d,
+	0x49, 0x64, 0x22, 0x63, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65,
+	0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+	0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
+	0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65,
+	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12,
+	0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
+	0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x20, 0x0a, 0x06, 0x49, 0x73, 0x4c, 0x69, 0x6b,
+	0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4c, 0x69, 0x6b, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x08, 0x52, 0x06, 0x69, 0x73, 0x4c, 0x69, 0x6b, 0x65, 0x22, 0x66, 0x0a, 0x0e, 0x42, 0x61, 0x6c,
+	0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70,
+	0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
+	0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x6f,
+	0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65, 0x72,
+	0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e,
+	0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63,
+	0x65, 0x22, 0x1d, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x10,
+	0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d,
+	0x22, 0x35, 0x0a, 0x0f, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x41, 0x6e, 0x64,
+	0x53, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
+	0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x22, 0x51, 0x0a, 0x0b, 0x4d, 0x65, 0x6d, 0x65, 0x52,
 	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64,
 	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x16,
 	0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
-	0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64,
-	0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x20,
-	0x0a, 0x06, 0x49, 0x73, 0x4c, 0x69, 0x6b, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4c, 0x69,
-	0x6b, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4c, 0x69, 0x6b, 0x65,
-	0x22, 0x66, 0x0a, 0x0e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e,
-	0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18,
-	0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
-	0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x1d, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x64,
-	0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x35, 0x0a, 0x0f, 0x52, 0x61, 0x6e, 0x64, 0x6f,
-	0x6d, 0x4e, 0x75, 0x6d, 0x41, 0x6e, 0x64, 0x53, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75,
-	0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03,
-	0x73, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x22, 0x51,
-	0x0a, 0x0b, 0x4d, 0x65, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a,
-	0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e,
-	0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a,
-	0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70,
-	0x65, 0x22, 0x24, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x4c,
-	0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28,
-	0x09, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x3a, 0x0a, 0x0d, 0x4d, 0x65, 0x6d, 0x65, 0x54,
-	0x69, 0x74, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74,
-	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d,
-	0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x04, 0x6c,
-	0x69, 0x73, 0x74, 0x22, 0x33, 0x0a, 0x09, 0x4d, 0x65, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65,
-	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
-	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x36, 0x0a, 0x08, 0x4d, 0x65, 0x6d, 0x65,
-	0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03,
-	0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74,
-	0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64,
-	0x22, 0x3b, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73,
-	0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52,
-	0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x42, 0x43, 0x0a,
-	0x0a, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x01, 0x5a, 0x33, 0x67,
-	0x69, 0x74, 0x2e, 0x69, 0x6b, 0x75, 0x62, 0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65,
-	0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x77, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
-	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x3b, 0x63, 0x6f, 0x6d, 0x6d,
-	0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x24, 0x0a, 0x0e, 0x43, 0x6f,
+	0x6d, 0x6d, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04,
+	0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74,
+	0x22, 0x3a, 0x0a, 0x0d, 0x4d, 0x65, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x4c, 0x69, 0x73,
+	0x74, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
+	0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x6d,
+	0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x33, 0x0a, 0x09,
+	0x4d, 0x65, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a,
+	0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70,
+	0x65, 0x22, 0x36, 0x0a, 0x08, 0x4d, 0x65, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a,
+	0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x73,
+	0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x0d, 0x43, 0x68, 0x61,
+	0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69,
+	0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x16,
+	0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
+	0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x42, 0x43, 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f,
+	0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x2e, 0x69, 0x6b, 0x75, 0x62,
+	0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x77,
+	0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f,
+	0x6d, 0x6d, 0x6f, 0x6e, 0x3b, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x33,
 }
 
 var (
@@ -3681,7 +3731,7 @@ func file_common_proto_rawDescGZIP() []byte {
 	return file_common_proto_rawDescData
 }
 
-var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 49)
+var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 50)
 var file_common_proto_goTypes = []interface{}{
 	(*UserAndPartnerIdentifyIdParam)(nil), // 0: api.common.UserAndPartnerIdentifyIdParam
 	(*UserAndPartnerParam)(nil),           // 1: api.common.UserAndPartnerParam
@@ -3721,17 +3771,18 @@ var file_common_proto_goTypes = []interface{}{
 	(*ChatIsReadInfo)(nil),                // 35: api.common.ChatIsReadInfo
 	(*Message)(nil),                       // 36: api.common.Message
 	(*FindChatRoomMsgRequest)(nil),        // 37: api.common.FindChatRoomMsgRequest
-	(*FindChatRecordListRequest)(nil),     // 38: api.common.FindChatRecordListRequest
-	(*IsLike)(nil),                        // 39: api.common.IsLike
-	(*BalanceRequest)(nil),                // 40: api.common.BalanceRequest
-	(*RandomNum)(nil),                     // 41: api.common.RandomNum
-	(*RandomNumAndSex)(nil),               // 42: api.common.RandomNumAndSex
-	(*MemeRequest)(nil),                   // 43: api.common.MemeRequest
-	(*CommonTextList)(nil),                // 44: api.common.CommonTextList
-	(*MemeTitleList)(nil),                 // 45: api.common.MemeTitleList
-	(*MemeTitle)(nil),                     // 46: api.common.MemeTitle
-	(*MemeList)(nil),                      // 47: api.common.MemeList
-	(*ChatTopicList)(nil),                 // 48: api.common.ChatTopicList
+	(*RoomIDRequest)(nil),                 // 38: api.common.RoomIDRequest
+	(*FindChatRecordListRequest)(nil),     // 39: api.common.FindChatRecordListRequest
+	(*IsLike)(nil),                        // 40: api.common.IsLike
+	(*BalanceRequest)(nil),                // 41: api.common.BalanceRequest
+	(*RandomNum)(nil),                     // 42: api.common.RandomNum
+	(*RandomNumAndSex)(nil),               // 43: api.common.RandomNumAndSex
+	(*MemeRequest)(nil),                   // 44: api.common.MemeRequest
+	(*CommonTextList)(nil),                // 45: api.common.CommonTextList
+	(*MemeTitleList)(nil),                 // 46: api.common.MemeTitleList
+	(*MemeTitle)(nil),                     // 47: api.common.MemeTitle
+	(*MemeList)(nil),                      // 48: api.common.MemeList
+	(*ChatTopicList)(nil),                 // 49: api.common.ChatTopicList
 }
 var file_common_proto_depIdxs = []int32{
 	25, // 0: api.common.HomeInfo.tagList:type_name -> api.common.TagList
@@ -3742,7 +3793,7 @@ var file_common_proto_depIdxs = []int32{
 	33, // 5: api.common.ChatRoomMsg.self:type_name -> api.common.ChatPersonMsg
 	33, // 6: api.common.ChatRoomMsg.other:type_name -> api.common.ChatPersonMsg
 	36, // 7: api.common.ChatRecordInfo.message:type_name -> api.common.Message
-	46, // 8: api.common.MemeTitleList.list:type_name -> api.common.MemeTitle
+	47, // 8: api.common.MemeTitleList.list:type_name -> api.common.MemeTitle
 	9,  // [9:9] is the sub-list for method output_type
 	9,  // [9:9] is the sub-list for method input_type
 	9,  // [9:9] is the sub-list for extension type_name
@@ -4213,7 +4264,7 @@ func file_common_proto_init() {
 			}
 		}
 		file_common_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*FindChatRecordListRequest); i {
+			switch v := v.(*RoomIDRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -4225,7 +4276,7 @@ func file_common_proto_init() {
 			}
 		}
 		file_common_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*IsLike); i {
+			switch v := v.(*FindChatRecordListRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -4237,7 +4288,7 @@ func file_common_proto_init() {
 			}
 		}
 		file_common_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*BalanceRequest); i {
+			switch v := v.(*IsLike); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -4249,7 +4300,7 @@ func file_common_proto_init() {
 			}
 		}
 		file_common_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RandomNum); i {
+			switch v := v.(*BalanceRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -4261,7 +4312,7 @@ func file_common_proto_init() {
 			}
 		}
 		file_common_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RandomNumAndSex); i {
+			switch v := v.(*RandomNum); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -4273,7 +4324,7 @@ func file_common_proto_init() {
 			}
 		}
 		file_common_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MemeRequest); i {
+			switch v := v.(*RandomNumAndSex); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -4285,7 +4336,7 @@ func file_common_proto_init() {
 			}
 		}
 		file_common_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CommonTextList); i {
+			switch v := v.(*MemeRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -4297,7 +4348,7 @@ func file_common_proto_init() {
 			}
 		}
 		file_common_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MemeTitleList); i {
+			switch v := v.(*CommonTextList); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -4309,7 +4360,7 @@ func file_common_proto_init() {
 			}
 		}
 		file_common_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MemeTitle); i {
+			switch v := v.(*MemeTitleList); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -4321,7 +4372,7 @@ func file_common_proto_init() {
 			}
 		}
 		file_common_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MemeList); i {
+			switch v := v.(*MemeTitle); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -4333,6 +4384,18 @@ func file_common_proto_init() {
 			}
 		}
 		file_common_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*MemeList); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_common_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*ChatTopicList); i {
 			case 0:
 				return &v.state
@@ -4351,7 +4414,7 @@ func file_common_proto_init() {
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_common_proto_rawDesc,
 			NumEnums:      0,
-			NumMessages:   49,
+			NumMessages:   50,
 			NumExtensions: 0,
 			NumServices:   0,
 		},

+ 3 - 0
api/common/common.proto

@@ -278,6 +278,9 @@ message FindChatRoomMsgRequest{
   int64 roomId = 1;
 }
 
+message RoomIDRequest{
+  int64 roomId = 1;
+}
 
 message FindChatRecordListRequest{
   int64 nextId = 1;

+ 76 - 66
api/user/user.pb.go

@@ -737,7 +737,7 @@ var file_user_proto_rawDesc = []byte{
 	0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65,
 	0x72, 0x49, 0x64, 0x22, 0x1e, 0x0a, 0x0a, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
 	0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
-	0x6b, 0x65, 0x79, 0x32, 0xf3, 0x1f, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x7e, 0x0a, 0x15,
+	0x6b, 0x65, 0x79, 0x32, 0xda, 0x20, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x7e, 0x0a, 0x15,
 	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
 	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
 	0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61,
@@ -992,11 +992,18 @@ var file_user_proto_rawDesc = []byte{
 	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x4c,
 	0x69, 0x73, 0x74, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x61, 0x70,
 	0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x6d, 0x65, 0x6d, 0x65,
-	0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x42, 0x3d, 0x0a, 0x08, 0x61, 0x70, 0x69,
-	0x2e, 0x75, 0x73, 0x65, 0x72, 0x50, 0x01, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x2e, 0x69, 0x6b, 0x75,
-	0x62, 0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70,
-	0x77, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75,
-	0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x65, 0x0a, 0x10, 0x55, 0x73, 0x65,
+	0x72, 0x53, 0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x74, 0x12, 0x19, 0x2e,
+	0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x49,
+	0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
+	0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75,
+	0x73, 0x65, 0x72, 0x2f, 0x73, 0x65, 0x74, 0x2f, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x3a, 0x01, 0x2a,
+	0x42, 0x3d, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x50, 0x01, 0x5a, 0x2f,
+	0x67, 0x69, 0x74, 0x2e, 0x69, 0x6b, 0x75, 0x62, 0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73,
+	0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x77, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+	0x66, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62,
+	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -1039,26 +1046,27 @@ var file_user_proto_goTypes = []interface{}{
 	(*common.ListPageAndSexRequest)(nil),             // 23: api.common.ListPageAndSexRequest
 	(*common.RandomNum)(nil),                         // 24: api.common.RandomNum
 	(*common.RandomNumAndSex)(nil),                   // 25: api.common.RandomNumAndSex
-	(*common.PersonMsg)(nil),                         // 26: api.common.PersonMsg
-	(*chat.CheckUserPartnerIsRelationshipReply)(nil), // 27: api.chat.CheckUserPartnerIsRelationshipReply
-	(*chat.RoomReply)(nil),                           // 28: api.chat.RoomReply
-	(*common.AddFriendMessageInfo)(nil),              // 29: api.common.AddFriendMessageInfo
-	(*common.HomeInfo)(nil),                          // 30: api.common.HomeInfo
-	(*common.PersonDBReply)(nil),                     // 31: api.common.PersonDBReply
-	(*statistics.LookAndLikeListReply)(nil),          // 32: api.statistics.LookAndLikeListReply
-	(*statistics.LookAndLikeMessageReply)(nil),       // 33: api.statistics.LookAndLikeMessageReply
-	(*common.WxConfResponse)(nil),                    // 34: api.common.WxConfResponse
-	(*common.TagListReply)(nil),                      // 35: api.common.TagListReply
-	(*common.OnlinePersonListReply)(nil),             // 36: api.common.OnlinePersonListReply
-	(*common.LookedAndLikedNum)(nil),                 // 37: api.common.LookedAndLikedNum
-	(*statistics.LookMessageReply)(nil),              // 38: api.statistics.LookMessageReply
-	(*common.ChatRecordListReply)(nil),               // 39: api.common.ChatRecordListReply
-	(*common.ChatRoomMsg)(nil),                       // 40: api.common.ChatRoomMsg
-	(*common.IsLike)(nil),                            // 41: api.common.IsLike
-	(*common.MemeList)(nil),                          // 42: api.common.MemeList
-	(*common.ChatTopicList)(nil),                     // 43: api.common.ChatTopicList
-	(*common.CommonTextList)(nil),                    // 44: api.common.CommonTextList
-	(*common.MemeTitleList)(nil),                     // 45: api.common.MemeTitleList
+	(*common.RoomIDRequest)(nil),                     // 26: api.common.RoomIDRequest
+	(*common.PersonMsg)(nil),                         // 27: api.common.PersonMsg
+	(*chat.CheckUserPartnerIsRelationshipReply)(nil), // 28: api.chat.CheckUserPartnerIsRelationshipReply
+	(*chat.RoomReply)(nil),                           // 29: api.chat.RoomReply
+	(*common.AddFriendMessageInfo)(nil),              // 30: api.common.AddFriendMessageInfo
+	(*common.HomeInfo)(nil),                          // 31: api.common.HomeInfo
+	(*common.PersonDBReply)(nil),                     // 32: api.common.PersonDBReply
+	(*statistics.LookAndLikeListReply)(nil),          // 33: api.statistics.LookAndLikeListReply
+	(*statistics.LookAndLikeMessageReply)(nil),       // 34: api.statistics.LookAndLikeMessageReply
+	(*common.WxConfResponse)(nil),                    // 35: api.common.WxConfResponse
+	(*common.TagListReply)(nil),                      // 36: api.common.TagListReply
+	(*common.OnlinePersonListReply)(nil),             // 37: api.common.OnlinePersonListReply
+	(*common.LookedAndLikedNum)(nil),                 // 38: api.common.LookedAndLikedNum
+	(*statistics.LookMessageReply)(nil),              // 39: api.statistics.LookMessageReply
+	(*common.ChatRecordListReply)(nil),               // 40: api.common.ChatRecordListReply
+	(*common.ChatRoomMsg)(nil),                       // 41: api.common.ChatRoomMsg
+	(*common.IsLike)(nil),                            // 42: api.common.IsLike
+	(*common.MemeList)(nil),                          // 43: api.common.MemeList
+	(*common.ChatTopicList)(nil),                     // 44: api.common.ChatTopicList
+	(*common.CommonTextList)(nil),                    // 45: api.common.CommonTextList
+	(*common.MemeTitleList)(nil),                     // 46: api.common.MemeTitleList
 }
 var file_user_proto_depIdxs = []int32{
 	7,  // 0: api.user.ChatCardInfo.tagList:type_name -> api.common.TagList
@@ -1101,46 +1109,48 @@ var file_user_proto_depIdxs = []int32{
 	24, // 37: api.user.User.RandomMeme:input_type -> api.common.RandomNum
 	25, // 38: api.user.User.RandomSwiftMessage:input_type -> api.common.RandomNumAndSex
 	9,  // 39: api.user.User.FindMemeTitle:input_type -> google.protobuf.Empty
-	9,  // 40: api.user.User.UpdateUserInformation:output_type -> google.protobuf.Empty
-	5,  // 41: api.user.User.GetUserInfo:output_type -> api.user.UserInfo
-	26, // 42: api.user.User.GetUserDBMsg:output_type -> api.common.PersonMsg
-	9,  // 43: api.user.User.SendPhoneCode:output_type -> google.protobuf.Empty
-	9,  // 44: api.user.User.CheckPhoneCode:output_type -> google.protobuf.Empty
-	27, // 45: api.user.User.CheckUserPartnerIsRelationship:output_type -> api.chat.CheckUserPartnerIsRelationshipReply
-	28, // 46: api.user.User.CreateUserPersonRoom:output_type -> api.chat.RoomReply
-	29, // 47: api.user.User.GetPartnerCircleInfo:output_type -> api.common.AddFriendMessageInfo
-	30, // 48: api.user.User.UserGetHomeInfo:output_type -> api.common.HomeInfo
-	31, // 49: api.user.User.FindUserDBList:output_type -> api.common.PersonDBReply
-	32, // 50: api.user.User.FindLookList:output_type -> api.statistics.LookAndLikeListReply
-	32, // 51: api.user.User.FindLikeList:output_type -> api.statistics.LookAndLikeListReply
-	32, // 52: api.user.User.FindLikedList:output_type -> api.statistics.LookAndLikeListReply
-	33, // 53: api.user.User.GetLookAndLikeStatisticsMessage:output_type -> api.statistics.LookAndLikeMessageReply
-	34, // 54: api.user.User.WxConf:output_type -> api.common.WxConfResponse
-	35, // 55: api.user.User.FindTagListBySex:output_type -> api.common.TagListReply
-	36, // 56: api.user.User.FindOnlineList:output_type -> api.common.OnlinePersonListReply
-	3,  // 57: api.user.User.FindWithinSevenDayRoomList:output_type -> api.user.UserFindChatListReply
-	3,  // 58: api.user.User.FindOverSevenDayRoomList:output_type -> api.user.UserFindChatListReply
-	37, // 59: api.user.User.UserGetPersonLikedAndLooked:output_type -> api.common.LookedAndLikedNum
-	2,  // 60: api.user.User.GetUserBalance:output_type -> api.user.UserBalance
-	38, // 61: api.user.User.GetUserLookNum:output_type -> api.statistics.LookMessageReply
-	39, // 62: api.user.User.FindChatRecordList:output_type -> api.common.ChatRecordListReply
-	40, // 63: api.user.User.FindChatRoomMsg:output_type -> api.common.ChatRoomMsg
-	41, // 64: api.user.User.GetUserIsLike:output_type -> api.common.IsLike
-	9,  // 65: api.user.User.UserFinishInformation:output_type -> google.protobuf.Empty
-	1,  // 66: api.user.User.UserInformationStatus:output_type -> api.user.InformationStatus
-	9,  // 67: api.user.User.UserGetInformationAward:output_type -> google.protobuf.Empty
-	0,  // 68: api.user.User.UserGetChatCard:output_type -> api.user.ChatCardInfo
-	9,  // 69: api.user.User.UserLike:output_type -> google.protobuf.Empty
-	9,  // 70: api.user.User.UserUnLike:output_type -> google.protobuf.Empty
-	9,  // 71: api.user.User.UnlockLookRecord:output_type -> google.protobuf.Empty
-	9,  // 72: api.user.User.SendMsgReduceCredit:output_type -> google.protobuf.Empty
-	42, // 73: api.user.User.FindMemeByType:output_type -> api.common.MemeList
-	43, // 74: api.user.User.FindChatTopic:output_type -> api.common.ChatTopicList
-	44, // 75: api.user.User.RandomMeme:output_type -> api.common.CommonTextList
-	44, // 76: api.user.User.RandomSwiftMessage:output_type -> api.common.CommonTextList
-	45, // 77: api.user.User.FindMemeTitle:output_type -> api.common.MemeTitleList
-	40, // [40:78] is the sub-list for method output_type
-	2,  // [2:40] is the sub-list for method input_type
+	26, // 40: api.user.User.UserSetBlackChat:input_type -> api.common.RoomIDRequest
+	9,  // 41: api.user.User.UpdateUserInformation:output_type -> google.protobuf.Empty
+	5,  // 42: api.user.User.GetUserInfo:output_type -> api.user.UserInfo
+	27, // 43: api.user.User.GetUserDBMsg:output_type -> api.common.PersonMsg
+	9,  // 44: api.user.User.SendPhoneCode:output_type -> google.protobuf.Empty
+	9,  // 45: api.user.User.CheckPhoneCode:output_type -> google.protobuf.Empty
+	28, // 46: api.user.User.CheckUserPartnerIsRelationship:output_type -> api.chat.CheckUserPartnerIsRelationshipReply
+	29, // 47: api.user.User.CreateUserPersonRoom:output_type -> api.chat.RoomReply
+	30, // 48: api.user.User.GetPartnerCircleInfo:output_type -> api.common.AddFriendMessageInfo
+	31, // 49: api.user.User.UserGetHomeInfo:output_type -> api.common.HomeInfo
+	32, // 50: api.user.User.FindUserDBList:output_type -> api.common.PersonDBReply
+	33, // 51: api.user.User.FindLookList:output_type -> api.statistics.LookAndLikeListReply
+	33, // 52: api.user.User.FindLikeList:output_type -> api.statistics.LookAndLikeListReply
+	33, // 53: api.user.User.FindLikedList:output_type -> api.statistics.LookAndLikeListReply
+	34, // 54: api.user.User.GetLookAndLikeStatisticsMessage:output_type -> api.statistics.LookAndLikeMessageReply
+	35, // 55: api.user.User.WxConf:output_type -> api.common.WxConfResponse
+	36, // 56: api.user.User.FindTagListBySex:output_type -> api.common.TagListReply
+	37, // 57: api.user.User.FindOnlineList:output_type -> api.common.OnlinePersonListReply
+	3,  // 58: api.user.User.FindWithinSevenDayRoomList:output_type -> api.user.UserFindChatListReply
+	3,  // 59: api.user.User.FindOverSevenDayRoomList:output_type -> api.user.UserFindChatListReply
+	38, // 60: api.user.User.UserGetPersonLikedAndLooked:output_type -> api.common.LookedAndLikedNum
+	2,  // 61: api.user.User.GetUserBalance:output_type -> api.user.UserBalance
+	39, // 62: api.user.User.GetUserLookNum:output_type -> api.statistics.LookMessageReply
+	40, // 63: api.user.User.FindChatRecordList:output_type -> api.common.ChatRecordListReply
+	41, // 64: api.user.User.FindChatRoomMsg:output_type -> api.common.ChatRoomMsg
+	42, // 65: api.user.User.GetUserIsLike:output_type -> api.common.IsLike
+	9,  // 66: api.user.User.UserFinishInformation:output_type -> google.protobuf.Empty
+	1,  // 67: api.user.User.UserInformationStatus:output_type -> api.user.InformationStatus
+	9,  // 68: api.user.User.UserGetInformationAward:output_type -> google.protobuf.Empty
+	0,  // 69: api.user.User.UserGetChatCard:output_type -> api.user.ChatCardInfo
+	9,  // 70: api.user.User.UserLike:output_type -> google.protobuf.Empty
+	9,  // 71: api.user.User.UserUnLike:output_type -> google.protobuf.Empty
+	9,  // 72: api.user.User.UnlockLookRecord:output_type -> google.protobuf.Empty
+	9,  // 73: api.user.User.SendMsgReduceCredit:output_type -> google.protobuf.Empty
+	43, // 74: api.user.User.FindMemeByType:output_type -> api.common.MemeList
+	44, // 75: api.user.User.FindChatTopic:output_type -> api.common.ChatTopicList
+	45, // 76: api.user.User.RandomMeme:output_type -> api.common.CommonTextList
+	45, // 77: api.user.User.RandomSwiftMessage:output_type -> api.common.CommonTextList
+	46, // 78: api.user.User.FindMemeTitle:output_type -> api.common.MemeTitleList
+	9,  // 79: api.user.User.UserSetBlackChat:output_type -> google.protobuf.Empty
+	41, // [41:80] is the sub-list for method output_type
+	2,  // [2:41] is the sub-list for method input_type
 	2,  // [2:2] is the sub-list for extension type_name
 	2,  // [2:2] is the sub-list for extension extendee
 	0,  // [0:2] is the sub-list for field type_name

+ 7 - 0
api/user/user.proto

@@ -265,6 +265,13 @@ service User {
       body:"*"
     };
   };
+  // 用户拉黑某人
+  rpc UserSetBlackChat (common.RoomIDRequest) returns (google.protobuf.Empty){
+    option (google.api.http) = {
+      post: "/api/user/set/black",
+      body:"*"
+    };
+  };
 }
 
 

+ 38 - 0
api/user/user_grpc.pb.go

@@ -97,6 +97,8 @@ type UserClient interface {
 	RandomSwiftMessage(ctx context.Context, in *common.RandomNumAndSex, opts ...grpc.CallOption) (*common.CommonTextList, error)
 	// 表情包分类名
 	FindMemeTitle(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*common.MemeTitleList, error)
+	// 用户拉黑某人
+	UserSetBlackChat(ctx context.Context, in *common.RoomIDRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
 }
 
 type userClient struct {
@@ -449,6 +451,15 @@ func (c *userClient) FindMemeTitle(ctx context.Context, in *emptypb.Empty, opts
 	return out, nil
 }
 
+func (c *userClient) UserSetBlackChat(ctx context.Context, in *common.RoomIDRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, "/api.user.User/UserSetBlackChat", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 // UserServer is the server API for User service.
 // All implementations must embed UnimplementedUserServer
 // for forward compatibility
@@ -528,6 +539,8 @@ type UserServer interface {
 	RandomSwiftMessage(context.Context, *common.RandomNumAndSex) (*common.CommonTextList, error)
 	// 表情包分类名
 	FindMemeTitle(context.Context, *emptypb.Empty) (*common.MemeTitleList, error)
+	// 用户拉黑某人
+	UserSetBlackChat(context.Context, *common.RoomIDRequest) (*emptypb.Empty, error)
 	mustEmbedUnimplementedUserServer()
 }
 
@@ -649,6 +662,9 @@ func (UnimplementedUserServer) RandomSwiftMessage(context.Context, *common.Rando
 func (UnimplementedUserServer) FindMemeTitle(context.Context, *emptypb.Empty) (*common.MemeTitleList, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method FindMemeTitle not implemented")
 }
+func (UnimplementedUserServer) UserSetBlackChat(context.Context, *common.RoomIDRequest) (*emptypb.Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UserSetBlackChat not implemented")
+}
 func (UnimplementedUserServer) mustEmbedUnimplementedUserServer() {}
 
 // UnsafeUserServer may be embedded to opt out of forward compatibility for this service.
@@ -1346,6 +1362,24 @@ func _User_FindMemeTitle_Handler(srv interface{}, ctx context.Context, dec func(
 	return interceptor(ctx, in, info, handler)
 }
 
+func _User_UserSetBlackChat_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(common.RoomIDRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(UserServer).UserSetBlackChat(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.user.User/UserSetBlackChat",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(UserServer).UserSetBlackChat(ctx, req.(*common.RoomIDRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 // User_ServiceDesc is the grpc.ServiceDesc for User service.
 // It's only intended for direct use with grpc.RegisterService,
 // and not to be introspected or modified (even as a copy)
@@ -1505,6 +1539,10 @@ var User_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "FindMemeTitle",
 			Handler:    _User_FindMemeTitle_Handler,
 		},
+		{
+			MethodName: "UserSetBlackChat",
+			Handler:    _User_UserSetBlackChat_Handler,
+		},
 	},
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "user.proto",

+ 43 - 0
api/user/user_http.pb.go

@@ -63,6 +63,7 @@ type UserHTTPServer interface {
 	UserGetPersonLikedAndLooked(context.Context, *common.PersonParam) (*common.LookedAndLikedNum, error)
 	UserInformationStatus(context.Context, *emptypb.Empty) (*InformationStatus, error)
 	UserLike(context.Context, *common.PersonParam) (*emptypb.Empty, error)
+	UserSetBlackChat(context.Context, *common.RoomIDRequest) (*emptypb.Empty, error)
 	UserUnLike(context.Context, *common.PersonParam) (*emptypb.Empty, error)
 	WxConf(context.Context, *common.WxConfReq) (*common.WxConfResponse, error)
 }
@@ -104,6 +105,7 @@ func RegisterUserHTTPServer(s *http.Server, srv UserHTTPServer) {
 	r.POST("/api/user/find/meme/random", _User_RandomMeme0_HTTP_Handler(srv))
 	r.POST("/api/user/find/topic/random", _User_RandomSwiftMessage0_HTTP_Handler(srv))
 	r.POST("/api/user/find/meme/title", _User_FindMemeTitle0_HTTP_Handler(srv))
+	r.POST("/api/user/set/black", _User_UserSetBlackChat0_HTTP_Handler(srv))
 }
 
 func _User_UpdateUserInformation0_HTTP_Handler(srv UserHTTPServer) func(ctx http.Context) error {
@@ -1051,6 +1053,33 @@ func _User_FindMemeTitle0_HTTP_Handler(srv UserHTTPServer) func(ctx http.Context
 	}
 }
 
+func _User_UserSetBlackChat0_HTTP_Handler(srv UserHTTPServer) func(ctx http.Context) error {
+	return func(ctx http.Context) error {
+		var in common.RoomIDRequest
+		if err := ctx.Bind(&in); err != nil {
+			return err
+		}
+		if err := ctx.BindQuery(&in); err != nil {
+			return err
+		}
+		http.SetOperation(ctx, "/api.user.User/UserSetBlackChat")
+		h := ctx.Middleware(func(ctx context.Context, req interface{}) (interface{}, error) {
+			return srv.UserSetBlackChat(ctx, req.(*common.RoomIDRequest))
+		})
+		out, err := h(ctx, &in)
+		if err != nil {
+			return err
+		}
+		success := &reply.SuccessReply{
+			Code: 0,
+		}
+		if out != nil {
+			success.Data = out
+		}
+		return ctx.Result(200, success)
+	}
+}
+
 type UserHTTPClient interface {
 	CheckPhoneCode(ctx context.Context, req *common.CheckPhoneCodeRequest, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
 	CheckUserPartnerIsRelationship(ctx context.Context, req *common.PartnerIDParam, opts ...http.CallOption) (rsp *chat.CheckUserPartnerIsRelationshipReply, err error)
@@ -1085,6 +1114,7 @@ type UserHTTPClient interface {
 	UserGetPersonLikedAndLooked(ctx context.Context, req *common.PersonParam, opts ...http.CallOption) (rsp *common.LookedAndLikedNum, err error)
 	UserInformationStatus(ctx context.Context, req *emptypb.Empty, opts ...http.CallOption) (rsp *InformationStatus, err error)
 	UserLike(ctx context.Context, req *common.PersonParam, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
+	UserSetBlackChat(ctx context.Context, req *common.RoomIDRequest, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
 	UserUnLike(ctx context.Context, req *common.PersonParam, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
 	WxConf(ctx context.Context, req *common.WxConfReq, opts ...http.CallOption) (rsp *common.WxConfResponse, err error)
 }
@@ -1526,6 +1556,19 @@ func (c *UserHTTPClientImpl) UserLike(ctx context.Context, in *common.PersonPara
 	return &out, err
 }
 
+func (c *UserHTTPClientImpl) UserSetBlackChat(ctx context.Context, in *common.RoomIDRequest, opts ...http.CallOption) (*emptypb.Empty, error) {
+	var out emptypb.Empty
+	pattern := "/api/user/set/black"
+	path := binding.EncodeURL(pattern, in, false)
+	opts = append(opts, http.Operation("/api.user.User/UserSetBlackChat"))
+	opts = append(opts, http.PathTemplate(pattern))
+	err := c.cc.Invoke(ctx, "POST", path, in, &out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return &out, err
+}
+
 func (c *UserHTTPClientImpl) UserUnLike(ctx context.Context, in *common.PersonParam, opts ...http.CallOption) (*emptypb.Empty, error) {
 	var out emptypb.Empty
 	pattern := "/api/user/unlike"

+ 6 - 0
js/api/chat/chat_pb.ts

@@ -74,6 +74,12 @@ export interface CreateChatRoomParam{
     /**  类型 */
     personType2?:string;
 }
+export interface SetBlackChatParam{
+    /**  拉黑者的身份ID */
+    personIdentifyId?:string;
+    /**  房间ID */
+    roomId?:number;
+}
 export interface ReceiveRequest{
     method?:string;
     data?:any;

+ 3 - 0
js/api/common/common_pb.ts

@@ -345,6 +345,9 @@ export interface Message{
 export interface FindChatRoomMsgRequest{
     roomId?:number;
 }
+export interface RoomIDRequest{
+    roomId?:number;
+}
 export interface FindChatRecordListRequest{
     nextId?:number;
     offset?:number;

+ 6 - 1
js/api/user/user_http_pb.ts

@@ -1,6 +1,6 @@
 // @ts-ignore
 import request from '@/libs/request';
-import {UpdateInformationRequest,PersonIDParam,PersonMsg,SendPhoneCodeRequest,CheckPhoneCodeRequest,PartnerIDParam,PersonParam,AddFriendMessageInfo,HomeInfo,PersonIDList,PersonDBReply,ListPageRequest,WxConfReq,WxConfResponse,SexReq,TagListReply,ListPage2Request,OnlinePersonListReply,LookedAndLikedNum,FindChatRecordListRequest,ChatRecordListReply,FindChatRoomMsgRequest,ChatRoomMsg,IsLike,MemeRequest,MemeList,ListPageAndSexRequest,ChatTopicList,RandomNum,CommonTextList,RandomNumAndSex,MemeTitleList} from "../common/common_pb";
+import {UpdateInformationRequest,PersonIDParam,PersonMsg,SendPhoneCodeRequest,CheckPhoneCodeRequest,PartnerIDParam,PersonParam,AddFriendMessageInfo,HomeInfo,PersonIDList,PersonDBReply,ListPageRequest,WxConfReq,WxConfResponse,SexReq,TagListReply,ListPage2Request,OnlinePersonListReply,LookedAndLikedNum,FindChatRecordListRequest,ChatRecordListReply,FindChatRoomMsgRequest,ChatRoomMsg,IsLike,MemeRequest,MemeList,ListPageAndSexRequest,ChatTopicList,RandomNum,CommonTextList,RandomNumAndSex,MemeTitleList,RoomIDRequest} from "../common/common_pb";
 import {UserInfo,KeyRequest,UserFindChatListReply,UserBalance,InformationStatus,ChatCardInfo} from "./user_pb";
 import {CheckUserPartnerIsRelationshipReply,RoomReply} from "../chat/chat_pb";
 import {LookAndLikeListReply,LookAndLikeMessageReply,LookMessageReply} from "../statistics/statistics_pb";
@@ -181,6 +181,11 @@ const UserService = {
 	const res = await request.post<{ data: MemeTitleList, code: string, message: string }>('/api/user/find/meme/title', req);
     return res.data.data;
   },
+  /**  用户拉黑某人 */
+  UserSetBlackChat: async (req?: RoomIDRequest) => {
+	const res = await request.post('/api/user/set/black', req);
+    return res.data.data;
+  },
 
 };