From b0b568a038baa5cf20735528928a8cdf74299ca4 Mon Sep 17 00:00:00 2001 From: gy <997485446@qq.com> Date: Wed, 1 Mar 2023 18:53:47 +0800 Subject: [PATCH] feat --- api/approval/approval.pb.go | 2070 ++++++++++++++++--------- api/approval/approval.proto | 42 + api/approval/approval.validator.pb.go | 20 + api/approval/approval_triple.pb.go | 90 ++ docs/env/prod/conf.ini | 17 +- go.mod | 4 +- pkg/model/approval.go | 59 +- pkg/model/approval_type.go | 12 +- pkg/model/bundle_pay_price.go | 91 ++ pkg/model/migration.go | 2 + pkg/serializer/approval.go | 9 + pkg/serializer/approval_type.go | 1 + pkg/service/approval.go | 39 +- 13 files changed, 1658 insertions(+), 798 deletions(-) create mode 100644 pkg/model/bundle_pay_price.go diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index 3067b9d..1a27c85 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -21,6 +21,217 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type CommonResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CommonResponse) Reset() { + *x = CommonResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommonResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommonResponse) ProtoMessage() {} + +func (x *CommonResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[0] + 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 CommonResponse.ProtoReflect.Descriptor instead. +func (*CommonResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{0} +} + +type ChangeBundlePayRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` + Status uint64 `protobuf:"varint,3,opt,name=Status,proto3" json:"Status,omitempty"` +} + +func (x *ChangeBundlePayRequest) Reset() { + *x = ChangeBundlePayRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeBundlePayRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeBundlePayRequest) ProtoMessage() {} + +func (x *ChangeBundlePayRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[1] + 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 ChangeBundlePayRequest.ProtoReflect.Descriptor instead. +func (*ChangeBundlePayRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{1} +} + +func (x *ChangeBundlePayRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *ChangeBundlePayRequest) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *ChangeBundlePayRequest) GetStatus() uint64 { + if x != nil { + return x.Status + } + return 0 +} + +type IsExistPayRightRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + UserId uint64 `protobuf:"varint,2,opt,name=UserId,json=userId,proto3" json:"UserId,omitempty"` + ShowUid string `protobuf:"bytes,3,opt,name=ShowUid,json=showUid,proto3" json:"ShowUid,omitempty"` +} + +func (x *IsExistPayRightRequest) Reset() { + *x = IsExistPayRightRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IsExistPayRightRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IsExistPayRightRequest) ProtoMessage() {} + +func (x *IsExistPayRightRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[2] + 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 IsExistPayRightRequest.ProtoReflect.Descriptor instead. +func (*IsExistPayRightRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{2} +} + +func (x *IsExistPayRightRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *IsExistPayRightRequest) GetUserId() uint64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *IsExistPayRightRequest) GetShowUid() string { + if x != nil { + return x.ShowUid + } + return "" +} + +type IsExistPayRightResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsPass bool `protobuf:"varint,1,opt,name=IsPass,json=isPass,proto3" json:"IsPass,omitempty"` +} + +func (x *IsExistPayRightResponse) Reset() { + *x = IsExistPayRightResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IsExistPayRightResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IsExistPayRightResponse) ProtoMessage() {} + +func (x *IsExistPayRightResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[3] + 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 IsExistPayRightResponse.ProtoReflect.Descriptor instead. +func (*IsExistPayRightResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{3} +} + +func (x *IsExistPayRightResponse) GetIsPass() bool { + if x != nil { + return x.IsPass + } + return false +} + type KeyInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -30,12 +241,13 @@ type KeyInfo struct { ApprovalName string `protobuf:"bytes,2,opt,name=ApprovalName,json=approvalName,proto3" json:"ApprovalName,omitempty"` ApprovalType string `protobuf:"bytes,3,opt,name=ApprovalType,json=approvalType,proto3" json:"ApprovalType,omitempty"` ApprovalValue string `protobuf:"bytes,4,opt,name=ApprovalValue,json=approvalValue,proto3" json:"ApprovalValue,omitempty"` + ApprovalMark bool `protobuf:"varint,5,opt,name=ApprovalMark,json=approvalMark,proto3" json:"ApprovalMark,omitempty"` } func (x *KeyInfo) Reset() { *x = KeyInfo{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[0] + mi := &file_api_approval_approval_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48,7 +260,7 @@ func (x *KeyInfo) String() string { func (*KeyInfo) ProtoMessage() {} func (x *KeyInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[0] + mi := &file_api_approval_approval_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61,7 +273,7 @@ func (x *KeyInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use KeyInfo.ProtoReflect.Descriptor instead. func (*KeyInfo) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{0} + return file_api_approval_approval_proto_rawDescGZIP(), []int{4} } func (x *KeyInfo) GetApprovalKey() string { @@ -92,6 +304,13 @@ func (x *KeyInfo) GetApprovalValue() string { return "" } +func (x *KeyInfo) GetApprovalMark() bool { + if x != nil { + return x.ApprovalMark + } + return false +} + type UpdateEhApplyIDRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -105,7 +324,7 @@ type UpdateEhApplyIDRequest struct { func (x *UpdateEhApplyIDRequest) Reset() { *x = UpdateEhApplyIDRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[1] + mi := &file_api_approval_approval_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -118,7 +337,7 @@ func (x *UpdateEhApplyIDRequest) String() string { func (*UpdateEhApplyIDRequest) ProtoMessage() {} func (x *UpdateEhApplyIDRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[1] + mi := &file_api_approval_approval_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -131,7 +350,7 @@ func (x *UpdateEhApplyIDRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateEhApplyIDRequest.ProtoReflect.Descriptor instead. func (*UpdateEhApplyIDRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{1} + return file_api_approval_approval_proto_rawDescGZIP(), []int{5} } func (x *UpdateEhApplyIDRequest) GetDomain() string { @@ -164,7 +383,7 @@ type UpdateEhApplyIDResponse struct { func (x *UpdateEhApplyIDResponse) Reset() { *x = UpdateEhApplyIDResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[2] + mi := &file_api_approval_approval_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -177,7 +396,7 @@ func (x *UpdateEhApplyIDResponse) String() string { func (*UpdateEhApplyIDResponse) ProtoMessage() {} func (x *UpdateEhApplyIDResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[2] + mi := &file_api_approval_approval_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -190,7 +409,7 @@ func (x *UpdateEhApplyIDResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateEhApplyIDResponse.ProtoReflect.Descriptor instead. func (*UpdateEhApplyIDResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{2} + return file_api_approval_approval_proto_rawDescGZIP(), []int{6} } type UsedNumByUserRequest struct { @@ -205,7 +424,7 @@ type UsedNumByUserRequest struct { func (x *UsedNumByUserRequest) Reset() { *x = UsedNumByUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[3] + mi := &file_api_approval_approval_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -218,7 +437,7 @@ func (x *UsedNumByUserRequest) String() string { func (*UsedNumByUserRequest) ProtoMessage() {} func (x *UsedNumByUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[3] + mi := &file_api_approval_approval_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -231,7 +450,7 @@ func (x *UsedNumByUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UsedNumByUserRequest.ProtoReflect.Descriptor instead. func (*UsedNumByUserRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{3} + return file_api_approval_approval_proto_rawDescGZIP(), []int{7} } func (x *UsedNumByUserRequest) GetDomain() string { @@ -259,7 +478,7 @@ type UsedNumByUserResponse struct { func (x *UsedNumByUserResponse) Reset() { *x = UsedNumByUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[4] + mi := &file_api_approval_approval_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -272,7 +491,7 @@ func (x *UsedNumByUserResponse) String() string { func (*UsedNumByUserResponse) ProtoMessage() {} func (x *UsedNumByUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[4] + mi := &file_api_approval_approval_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -285,7 +504,7 @@ func (x *UsedNumByUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UsedNumByUserResponse.ProtoReflect.Descriptor instead. func (*UsedNumByUserResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{4} + return file_api_approval_approval_proto_rawDescGZIP(), []int{8} } func (x *UsedNumByUserResponse) GetTotal() uint64 { @@ -307,7 +526,7 @@ type NowLevelByInfoRequest struct { func (x *NowLevelByInfoRequest) Reset() { *x = NowLevelByInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[5] + mi := &file_api_approval_approval_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -320,7 +539,7 @@ func (x *NowLevelByInfoRequest) String() string { func (*NowLevelByInfoRequest) ProtoMessage() {} func (x *NowLevelByInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[5] + mi := &file_api_approval_approval_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -333,7 +552,7 @@ func (x *NowLevelByInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use NowLevelByInfoRequest.ProtoReflect.Descriptor instead. func (*NowLevelByInfoRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{5} + return file_api_approval_approval_proto_rawDescGZIP(), []int{9} } func (x *NowLevelByInfoRequest) GetDomain() string { @@ -364,7 +583,7 @@ type WorkFlowResponse struct { func (x *WorkFlowResponse) Reset() { *x = WorkFlowResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[6] + mi := &file_api_approval_approval_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -377,7 +596,7 @@ func (x *WorkFlowResponse) String() string { func (*WorkFlowResponse) ProtoMessage() {} func (x *WorkFlowResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[6] + mi := &file_api_approval_approval_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -390,7 +609,7 @@ func (x *WorkFlowResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkFlowResponse.ProtoReflect.Descriptor instead. func (*WorkFlowResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{6} + return file_api_approval_approval_proto_rawDescGZIP(), []int{10} } func (x *WorkFlowResponse) GetID() uint64 { @@ -435,7 +654,7 @@ type CommonRequest struct { func (x *CommonRequest) Reset() { *x = CommonRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[7] + mi := &file_api_approval_approval_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -448,7 +667,7 @@ func (x *CommonRequest) String() string { func (*CommonRequest) ProtoMessage() {} func (x *CommonRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[7] + mi := &file_api_approval_approval_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -461,7 +680,7 @@ func (x *CommonRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonRequest.ProtoReflect.Descriptor instead. func (*CommonRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{7} + return file_api_approval_approval_proto_rawDescGZIP(), []int{11} } func (x *CommonRequest) GetDomain() string { @@ -511,7 +730,7 @@ type CreateTypeRequest struct { func (x *CreateTypeRequest) Reset() { *x = CreateTypeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[8] + mi := &file_api_approval_approval_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -524,7 +743,7 @@ func (x *CreateTypeRequest) String() string { func (*CreateTypeRequest) ProtoMessage() {} func (x *CreateTypeRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[8] + mi := &file_api_approval_approval_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -537,7 +756,7 @@ func (x *CreateTypeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateTypeRequest.ProtoReflect.Descriptor instead. func (*CreateTypeRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{8} + return file_api_approval_approval_proto_rawDescGZIP(), []int{12} } func (x *CreateTypeRequest) GetDomain() string { @@ -608,14 +827,15 @@ type TypeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Domain string `protobuf:"bytes,2,opt,name=Domain,proto3" json:"Domain,omitempty"` + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Domain string `protobuf:"bytes,2,opt,name=Domain,proto3" json:"Domain,omitempty"` + Keyword string `protobuf:"bytes,3,opt,name=Keyword,proto3" json:"Keyword,omitempty"` } func (x *TypeResponse) Reset() { *x = TypeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[9] + mi := &file_api_approval_approval_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -628,7 +848,7 @@ func (x *TypeResponse) String() string { func (*TypeResponse) ProtoMessage() {} func (x *TypeResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[9] + mi := &file_api_approval_approval_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -641,7 +861,7 @@ func (x *TypeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use TypeResponse.ProtoReflect.Descriptor instead. func (*TypeResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{9} + return file_api_approval_approval_proto_rawDescGZIP(), []int{13} } func (x *TypeResponse) GetID() uint64 { @@ -658,6 +878,13 @@ func (x *TypeResponse) GetDomain() string { return "" } +func (x *TypeResponse) GetKeyword() string { + if x != nil { + return x.Keyword + } + return "" +} + type AllTypeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -670,7 +897,7 @@ type AllTypeResponse struct { func (x *AllTypeResponse) Reset() { *x = AllTypeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[10] + mi := &file_api_approval_approval_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -683,7 +910,7 @@ func (x *AllTypeResponse) String() string { func (*AllTypeResponse) ProtoMessage() {} func (x *AllTypeResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[10] + mi := &file_api_approval_approval_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -696,7 +923,7 @@ func (x *AllTypeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AllTypeResponse.ProtoReflect.Descriptor instead. func (*AllTypeResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{10} + return file_api_approval_approval_proto_rawDescGZIP(), []int{14} } func (x *AllTypeResponse) GetData() []*CreateTypeRequest { @@ -727,7 +954,7 @@ type CreateTypeGroupRequest struct { func (x *CreateTypeGroupRequest) Reset() { *x = CreateTypeGroupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[11] + mi := &file_api_approval_approval_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -740,7 +967,7 @@ func (x *CreateTypeGroupRequest) String() string { func (*CreateTypeGroupRequest) ProtoMessage() {} func (x *CreateTypeGroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[11] + mi := &file_api_approval_approval_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -753,7 +980,7 @@ func (x *CreateTypeGroupRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateTypeGroupRequest.ProtoReflect.Descriptor instead. func (*CreateTypeGroupRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{11} + return file_api_approval_approval_proto_rawDescGZIP(), []int{15} } func (x *CreateTypeGroupRequest) GetID() uint64 { @@ -796,7 +1023,7 @@ type AllGroupResponse struct { func (x *AllGroupResponse) Reset() { *x = AllGroupResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[12] + mi := &file_api_approval_approval_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -809,7 +1036,7 @@ func (x *AllGroupResponse) String() string { func (*AllGroupResponse) ProtoMessage() {} func (x *AllGroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[12] + mi := &file_api_approval_approval_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -822,7 +1049,7 @@ func (x *AllGroupResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AllGroupResponse.ProtoReflect.Descriptor instead. func (*AllGroupResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{12} + return file_api_approval_approval_proto_rawDescGZIP(), []int{16} } func (x *AllGroupResponse) GetData() []*CreateTypeGroupRequest { @@ -855,7 +1082,7 @@ type StatusRequest struct { func (x *StatusRequest) Reset() { *x = StatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[13] + mi := &file_api_approval_approval_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -868,7 +1095,7 @@ func (x *StatusRequest) String() string { func (*StatusRequest) ProtoMessage() {} func (x *StatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[13] + mi := &file_api_approval_approval_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -881,7 +1108,7 @@ func (x *StatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusRequest.ProtoReflect.Descriptor instead. func (*StatusRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{13} + return file_api_approval_approval_proto_rawDescGZIP(), []int{17} } func (x *StatusRequest) GetDomain() string { @@ -935,7 +1162,7 @@ type StatusResponse struct { func (x *StatusResponse) Reset() { *x = StatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[14] + mi := &file_api_approval_approval_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -948,7 +1175,7 @@ func (x *StatusResponse) String() string { func (*StatusResponse) ProtoMessage() {} func (x *StatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[14] + mi := &file_api_approval_approval_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -961,7 +1188,7 @@ func (x *StatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusResponse.ProtoReflect.Descriptor instead. func (*StatusResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{14} + return file_api_approval_approval_proto_rawDescGZIP(), []int{18} } type ListRequest struct { @@ -969,18 +1196,19 @@ type ListRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - PageSize uint64 `protobuf:"varint,2,opt,name=PageSize,proto3" json:"PageSize,omitempty"` // - Page uint64 `protobuf:"varint,3,opt,name=Page,proto3" json:"Page,omitempty"` // - Status uint64 `protobuf:"varint,4,opt,name=Status,json=status,proto3" json:"Status,omitempty"` //0待审批 1-审批成功 2-拒绝 4-是所有 - Type string `protobuf:"bytes,5,opt,name=Type,json=type,proto3" json:"Type,omitempty"` //类型 - UserID uint64 `protobuf:"varint,6,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` // + Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + PageSize uint64 `protobuf:"varint,2,opt,name=PageSize,proto3" json:"PageSize,omitempty"` // + Page uint64 `protobuf:"varint,3,opt,name=Page,proto3" json:"Page,omitempty"` // + Status uint64 `protobuf:"varint,4,opt,name=Status,json=status,proto3" json:"Status,omitempty"` //0待审批 1-审批成功 2-拒绝 4-是所有 + Type string `protobuf:"bytes,5,opt,name=Type,json=type,proto3" json:"Type,omitempty"` //类型 + UserID uint64 `protobuf:"varint,6,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` // + ApprovedBossId uint64 `protobuf:"varint,7,opt,name=ApprovedBossId,json=approvedBossId,proto3" json:"ApprovedBossId,omitempty"` // } func (x *ListRequest) Reset() { *x = ListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[15] + mi := &file_api_approval_approval_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -993,7 +1221,7 @@ func (x *ListRequest) String() string { func (*ListRequest) ProtoMessage() {} func (x *ListRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[15] + mi := &file_api_approval_approval_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1006,7 +1234,7 @@ func (x *ListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRequest.ProtoReflect.Descriptor instead. func (*ListRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{15} + return file_api_approval_approval_proto_rawDescGZIP(), []int{19} } func (x *ListRequest) GetDomain() string { @@ -1051,6 +1279,13 @@ func (x *ListRequest) GetUserID() uint64 { return 0 } +func (x *ListRequest) GetApprovedBossId() uint64 { + if x != nil { + return x.ApprovedBossId + } + return 0 +} + type ListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1063,7 +1298,7 @@ type ListResponse struct { func (x *ListResponse) Reset() { *x = ListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[16] + mi := &file_api_approval_approval_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1076,7 +1311,7 @@ func (x *ListResponse) String() string { func (*ListResponse) ProtoMessage() {} func (x *ListResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[16] + mi := &file_api_approval_approval_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1089,7 +1324,7 @@ func (x *ListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListResponse.ProtoReflect.Descriptor instead. func (*ListResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{16} + return file_api_approval_approval_proto_rawDescGZIP(), []int{20} } func (x *ListResponse) GetCount() uint64 { @@ -1119,7 +1354,7 @@ type ViewedRequest struct { func (x *ViewedRequest) Reset() { *x = ViewedRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[17] + mi := &file_api_approval_approval_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1132,7 +1367,7 @@ func (x *ViewedRequest) String() string { func (*ViewedRequest) ProtoMessage() {} func (x *ViewedRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[17] + mi := &file_api_approval_approval_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1145,7 +1380,7 @@ func (x *ViewedRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ViewedRequest.ProtoReflect.Descriptor instead. func (*ViewedRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{17} + return file_api_approval_approval_proto_rawDescGZIP(), []int{21} } func (x *ViewedRequest) GetDomain() string { @@ -1182,7 +1417,7 @@ type InformationRequest struct { func (x *InformationRequest) Reset() { *x = InformationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[18] + mi := &file_api_approval_approval_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1195,7 +1430,7 @@ func (x *InformationRequest) String() string { func (*InformationRequest) ProtoMessage() {} func (x *InformationRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[18] + mi := &file_api_approval_approval_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1208,7 +1443,7 @@ func (x *InformationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InformationRequest.ProtoReflect.Descriptor instead. func (*InformationRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{18} + return file_api_approval_approval_proto_rawDescGZIP(), []int{22} } func (x *InformationRequest) GetDomain() string { @@ -1246,7 +1481,7 @@ type Information struct { func (x *Information) Reset() { *x = Information{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[19] + mi := &file_api_approval_approval_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1259,7 +1494,7 @@ func (x *Information) String() string { func (*Information) ProtoMessage() {} func (x *Information) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[19] + mi := &file_api_approval_approval_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1272,7 +1507,7 @@ func (x *Information) ProtoReflect() protoreflect.Message { // Deprecated: Use Information.ProtoReflect.Descriptor instead. func (*Information) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{19} + return file_api_approval_approval_proto_rawDescGZIP(), []int{23} } func (x *Information) GetTotal() uint64 { @@ -1316,7 +1551,7 @@ type InformationResponse struct { func (x *InformationResponse) Reset() { *x = InformationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[20] + mi := &file_api_approval_approval_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1329,7 +1564,7 @@ func (x *InformationResponse) String() string { func (*InformationResponse) ProtoMessage() {} func (x *InformationResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[20] + mi := &file_api_approval_approval_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1342,7 +1577,7 @@ func (x *InformationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use InformationResponse.ProtoReflect.Descriptor instead. func (*InformationResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{20} + return file_api_approval_approval_proto_rawDescGZIP(), []int{24} } func (x *InformationResponse) GetMySubmitInfo() *Information { @@ -1380,7 +1615,7 @@ type Bundle struct { func (x *Bundle) Reset() { *x = Bundle{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[21] + mi := &file_api_approval_approval_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1393,7 +1628,7 @@ func (x *Bundle) String() string { func (*Bundle) ProtoMessage() {} func (x *Bundle) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[21] + mi := &file_api_approval_approval_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1406,7 +1641,7 @@ func (x *Bundle) ProtoReflect() protoreflect.Message { // Deprecated: Use Bundle.ProtoReflect.Descriptor instead. func (*Bundle) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{21} + return file_api_approval_approval_proto_rawDescGZIP(), []int{25} } func (x *Bundle) GetID() uint64 { @@ -1450,7 +1685,7 @@ type Show struct { func (x *Show) Reset() { *x = Show{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[22] + mi := &file_api_approval_approval_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1463,7 +1698,7 @@ func (x *Show) String() string { func (*Show) ProtoMessage() {} func (x *Show) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[22] + mi := &file_api_approval_approval_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1476,7 +1711,7 @@ func (x *Show) ProtoReflect() protoreflect.Message { // Deprecated: Use Show.ProtoReflect.Descriptor instead. func (*Show) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{22} + return file_api_approval_approval_proto_rawDescGZIP(), []int{26} } func (x *Show) GetID() uint64 { @@ -1520,7 +1755,7 @@ type ApprovalWork struct { func (x *ApprovalWork) Reset() { *x = ApprovalWork{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[23] + mi := &file_api_approval_approval_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1533,7 +1768,7 @@ func (x *ApprovalWork) String() string { func (*ApprovalWork) ProtoMessage() {} func (x *ApprovalWork) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[23] + mi := &file_api_approval_approval_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1546,7 +1781,7 @@ func (x *ApprovalWork) ProtoReflect() protoreflect.Message { // Deprecated: Use ApprovalWork.ProtoReflect.Descriptor instead. func (*ApprovalWork) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{23} + return file_api_approval_approval_proto_rawDescGZIP(), []int{27} } func (x *ApprovalWork) GetID() uint64 { @@ -1634,7 +1869,7 @@ type Work struct { func (x *Work) Reset() { *x = Work{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[24] + mi := &file_api_approval_approval_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1647,7 +1882,7 @@ func (x *Work) String() string { func (*Work) ProtoMessage() {} func (x *Work) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[24] + mi := &file_api_approval_approval_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1660,7 +1895,7 @@ func (x *Work) ProtoReflect() protoreflect.Message { // Deprecated: Use Work.ProtoReflect.Descriptor instead. func (*Work) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{24} + return file_api_approval_approval_proto_rawDescGZIP(), []int{28} } func (x *Work) GetID() uint64 { @@ -1717,7 +1952,7 @@ type ApprovalExhibition struct { func (x *ApprovalExhibition) Reset() { *x = ApprovalExhibition{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[25] + mi := &file_api_approval_approval_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1730,7 +1965,7 @@ func (x *ApprovalExhibition) String() string { func (*ApprovalExhibition) ProtoMessage() {} func (x *ApprovalExhibition) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[25] + mi := &file_api_approval_approval_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1743,7 +1978,7 @@ func (x *ApprovalExhibition) ProtoReflect() protoreflect.Message { // Deprecated: Use ApprovalExhibition.ProtoReflect.Descriptor instead. func (*ApprovalExhibition) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{25} + return file_api_approval_approval_proto_rawDescGZIP(), []int{29} } func (x *ApprovalExhibition) GetID() uint64 { @@ -1826,7 +2061,7 @@ type Exhibition struct { func (x *Exhibition) Reset() { *x = Exhibition{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[26] + mi := &file_api_approval_approval_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1839,7 +2074,7 @@ func (x *Exhibition) String() string { func (*Exhibition) ProtoMessage() {} func (x *Exhibition) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[26] + mi := &file_api_approval_approval_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1852,7 +2087,7 @@ func (x *Exhibition) ProtoReflect() protoreflect.Message { // Deprecated: Use Exhibition.ProtoReflect.Descriptor instead. func (*Exhibition) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{26} + return file_api_approval_approval_proto_rawDescGZIP(), []int{30} } func (x *Exhibition) GetID() uint64 { @@ -1862,46 +2097,173 @@ func (x *Exhibition) GetID() uint64 { return 0 } -func (x *Exhibition) GetReceivedAt() string { +func (x *Exhibition) GetReceivedAt() string { + if x != nil { + return x.ReceivedAt + } + return "" +} + +func (x *Exhibition) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *Exhibition) GetPidApprovalID() uint64 { + if x != nil { + return x.PidApprovalID + } + return 0 +} + +func (x *Exhibition) GetApprovalExhibitions() []*ApprovalExhibition { + if x != nil { + return x.ApprovalExhibitions + } + return nil +} + +func (x *Exhibition) GetNum() uint64 { + if x != nil { + return x.Num + } + return 0 +} + +func (x *Exhibition) GetApplyID() string { + if x != nil { + return x.ApplyID + } + return "" +} + +type BundlePayPrice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShowUid string `protobuf:"bytes,1,opt,name=ShowUid,json=showUid,proto3" json:"ShowUid,omitempty"` + ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + ShowName string `protobuf:"bytes,3,opt,name=ShowName,json=showName,proto3" json:"ShowName,omitempty"` + ReceivedAt string `protobuf:"bytes,4,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` + ShowDate string `protobuf:"bytes,5,opt,name=ShowDate,json=showDate,proto3" json:"ShowDate,omitempty"` + ShowLowPrice string `protobuf:"bytes,6,opt,name=ShowLowPrice,json=showLowPrice,proto3" json:"ShowLowPrice,omitempty"` + ArtworkNum uint64 `protobuf:"varint,7,opt,name=ArtworkNum,json=artworkNum,proto3" json:"ArtworkNum,omitempty"` + ArtworkSize string `protobuf:"bytes,8,opt,name=ArtworkSize,json=artworkSize,proto3" json:"ArtworkSize,omitempty"` + ShowAddress string `protobuf:"bytes,9,opt,name=ShowAddress,json=showAddress,proto3" json:"ShowAddress,omitempty"` + ID uint64 `protobuf:"varint,10,opt,name=ID,proto3" json:"ID,omitempty"` + Status uint64 `protobuf:"varint,11,opt,name=Status,proto3" json:"Status,omitempty"` +} + +func (x *BundlePayPrice) Reset() { + *x = BundlePayPrice{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BundlePayPrice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BundlePayPrice) ProtoMessage() {} + +func (x *BundlePayPrice) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[31] + 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 BundlePayPrice.ProtoReflect.Descriptor instead. +func (*BundlePayPrice) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{31} +} + +func (x *BundlePayPrice) GetShowUid() string { + if x != nil { + return x.ShowUid + } + return "" +} + +func (x *BundlePayPrice) GetApprovalID() uint64 { + if x != nil { + return x.ApprovalID + } + return 0 +} + +func (x *BundlePayPrice) GetShowName() string { + if x != nil { + return x.ShowName + } + return "" +} + +func (x *BundlePayPrice) GetReceivedAt() string { + if x != nil { + return x.ReceivedAt + } + return "" +} + +func (x *BundlePayPrice) GetShowDate() string { if x != nil { - return x.ReceivedAt + return x.ShowDate } return "" } -func (x *Exhibition) GetAddress() string { +func (x *BundlePayPrice) GetShowLowPrice() string { if x != nil { - return x.Address + return x.ShowLowPrice } return "" } -func (x *Exhibition) GetPidApprovalID() uint64 { +func (x *BundlePayPrice) GetArtworkNum() uint64 { if x != nil { - return x.PidApprovalID + return x.ArtworkNum } return 0 } -func (x *Exhibition) GetApprovalExhibitions() []*ApprovalExhibition { +func (x *BundlePayPrice) GetArtworkSize() string { if x != nil { - return x.ApprovalExhibitions + return x.ArtworkSize } - return nil + return "" } -func (x *Exhibition) GetNum() uint64 { +func (x *BundlePayPrice) GetShowAddress() string { if x != nil { - return x.Num + return x.ShowAddress + } + return "" +} + +func (x *BundlePayPrice) GetID() uint64 { + if x != nil { + return x.ID } return 0 } -func (x *Exhibition) GetApplyID() string { +func (x *BundlePayPrice) GetStatus() uint64 { if x != nil { - return x.ApplyID + return x.Status } - return "" + return 0 } type CreateRequest struct { @@ -1909,37 +2271,40 @@ type CreateRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - Status uint64 `protobuf:"varint,3,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - Type string `protobuf:"bytes,4,opt,name=Type,json=type,proto3" json:"Type,omitempty"` - SubmitterID uint64 `protobuf:"varint,7,opt,name=SubmitterID,json=submitterID,proto3" json:"SubmitterID,omitempty"` //审批人 - SubmitterName string `protobuf:"bytes,8,opt,name=SubmitterName,json=submitterName,proto3" json:"SubmitterName,omitempty"` - CopyUsers []*CopyUser `protobuf:"bytes,9,rep,name=CopyUsers,json=copyName,proto3" json:"CopyUsers,omitempty"` //抄送人 - Content string `protobuf:"bytes,10,opt,name=Content,json=content,proto3" json:"Content,omitempty"` //申请内容 - Reply string `protobuf:"bytes,11,opt,name=Reply,json=reply,proto3" json:"Reply,omitempty"` //回复 - CanView bool `protobuf:"varint,12,opt,name=CanView,json=canView,proto3" json:"CanView,omitempty"` //是否可以阅读 - Work *Work `protobuf:"bytes,13,opt,name=Work,json=work,proto3" json:"Work,omitempty"` - Show *Show `protobuf:"bytes,14,opt,name=Show,json=show,proto3" json:"Show,omitempty"` - Exhibition *Exhibition `protobuf:"bytes,15,opt,name=Exhibition,json=exhibition,proto3" json:"Exhibition,omitempty"` - Bundle *Bundle `protobuf:"bytes,16,opt,name=Bundle,json=bundle,proto3" json:"Bundle,omitempty"` - ApprovalUsers []*ApprovalUser `protobuf:"bytes,17,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` //审批的人 - CanApproval bool `protobuf:"varint,18,opt,name=CanApproval,json=canApproval,proto3" json:"CanApproval,omitempty"` //审批的人 - WorkFlows []*WorkFlow `protobuf:"bytes,19,rep,name=WorkFlows,json=workFlows,proto3" json:"WorkFlows,omitempty"` //审批的人 - AllStatus uint64 `protobuf:"varint,20,opt,name=AllStatus,json=allStatus,proto3" json:"AllStatus,omitempty"` //状态 0 1 2 3已阅读 4-待阅读 - NowUserId uint64 `protobuf:"varint,21,opt,name=NowUserId,json=nowUserId,proto3" json:"NowUserId,omitempty"` - NowUserName string `protobuf:"bytes,22,opt,name=NowUserName,json=nowUserName,proto3" json:"NowUserName,omitempty"` - Level uint64 `protobuf:"varint,23,opt,name=Level,json=level,proto3" json:"Level,omitempty"` - NowLevel uint64 `protobuf:"varint,24,opt,name=NowLevel,json=nowLevel,proto3" json:"NowLevel,omitempty"` - CreatedAt string `protobuf:"bytes,25,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` - CustomizeInfo []*KeyInfo `protobuf:"bytes,26,rep,name=CustomizeInfo,json=customizeInfo,proto3" json:"CustomizeInfo,omitempty"` - IsCustom uint64 `protobuf:"varint,27,opt,name=IsCustom,json=isCustom,proto3" json:"IsCustom,omitempty"` + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + Status uint64 `protobuf:"varint,3,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + Type string `protobuf:"bytes,4,opt,name=Type,json=type,proto3" json:"Type,omitempty"` + SubmitterID uint64 `protobuf:"varint,7,opt,name=SubmitterID,json=submitterID,proto3" json:"SubmitterID,omitempty"` //审批人 + SubmitterName string `protobuf:"bytes,8,opt,name=SubmitterName,json=submitterName,proto3" json:"SubmitterName,omitempty"` + CopyUsers []*CopyUser `protobuf:"bytes,9,rep,name=CopyUsers,json=copyName,proto3" json:"CopyUsers,omitempty"` //抄送人 + Content string `protobuf:"bytes,10,opt,name=Content,json=content,proto3" json:"Content,omitempty"` //申请内容 + Reply string `protobuf:"bytes,11,opt,name=Reply,json=reply,proto3" json:"Reply,omitempty"` //回复 + CanView bool `protobuf:"varint,12,opt,name=CanView,json=canView,proto3" json:"CanView,omitempty"` //是否可以阅读 + Work *Work `protobuf:"bytes,13,opt,name=Work,json=work,proto3" json:"Work,omitempty"` + Show *Show `protobuf:"bytes,14,opt,name=Show,json=show,proto3" json:"Show,omitempty"` + Exhibition *Exhibition `protobuf:"bytes,15,opt,name=Exhibition,json=exhibition,proto3" json:"Exhibition,omitempty"` + Bundle *Bundle `protobuf:"bytes,16,opt,name=Bundle,json=bundle,proto3" json:"Bundle,omitempty"` + ApprovalUsers []*ApprovalUser `protobuf:"bytes,17,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` //审批的人 + CanApproval bool `protobuf:"varint,18,opt,name=CanApproval,json=canApproval,proto3" json:"CanApproval,omitempty"` //审批的人 + WorkFlows []*WorkFlow `protobuf:"bytes,19,rep,name=WorkFlows,json=workFlows,proto3" json:"WorkFlows,omitempty"` //审批的人 + AllStatus uint64 `protobuf:"varint,20,opt,name=AllStatus,json=allStatus,proto3" json:"AllStatus,omitempty"` //状态 0 1 2 3已阅读 4-待阅读 + NowUserId uint64 `protobuf:"varint,21,opt,name=NowUserId,json=nowUserId,proto3" json:"NowUserId,omitempty"` + NowUserName string `protobuf:"bytes,22,opt,name=NowUserName,json=nowUserName,proto3" json:"NowUserName,omitempty"` + Level uint64 `protobuf:"varint,23,opt,name=Level,json=level,proto3" json:"Level,omitempty"` + NowLevel uint64 `protobuf:"varint,24,opt,name=NowLevel,json=nowLevel,proto3" json:"NowLevel,omitempty"` + CreatedAt string `protobuf:"bytes,25,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` + CustomizeInfo []*KeyInfo `protobuf:"bytes,26,rep,name=CustomizeInfo,json=customizeInfo,proto3" json:"CustomizeInfo,omitempty"` + IsCustom uint64 `protobuf:"varint,27,opt,name=IsCustom,json=isCustom,proto3" json:"IsCustom,omitempty"` + TypeName string `protobuf:"bytes,28,opt,name=TypeName,json=typeName,proto3" json:"TypeName,omitempty"` + GroupName string `protobuf:"bytes,29,opt,name=GroupName,json=groupName,proto3" json:"GroupName,omitempty"` + BundlePayPrice *BundlePayPrice `protobuf:"bytes,30,opt,name=BundlePayPrice,json=bundlePayPrice,proto3" json:"BundlePayPrice,omitempty"` } func (x *CreateRequest) Reset() { *x = CreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[27] + mi := &file_api_approval_approval_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1952,7 +2317,7 @@ func (x *CreateRequest) String() string { func (*CreateRequest) ProtoMessage() {} func (x *CreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[27] + mi := &file_api_approval_approval_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1965,7 +2330,7 @@ func (x *CreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRequest.ProtoReflect.Descriptor instead. func (*CreateRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{27} + return file_api_approval_approval_proto_rawDescGZIP(), []int{32} } func (x *CreateRequest) GetID() uint64 { @@ -2143,6 +2508,27 @@ func (x *CreateRequest) GetIsCustom() uint64 { return 0 } +func (x *CreateRequest) GetTypeName() string { + if x != nil { + return x.TypeName + } + return "" +} + +func (x *CreateRequest) GetGroupName() string { + if x != nil { + return x.GroupName + } + return "" +} + +func (x *CreateRequest) GetBundlePayPrice() *BundlePayPrice { + if x != nil { + return x.BundlePayPrice + } + return nil +} + type WorkFlow struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2160,7 +2546,7 @@ type WorkFlow struct { func (x *WorkFlow) Reset() { *x = WorkFlow{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[28] + mi := &file_api_approval_approval_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2173,7 +2559,7 @@ func (x *WorkFlow) String() string { func (*WorkFlow) ProtoMessage() {} func (x *WorkFlow) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[28] + mi := &file_api_approval_approval_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2186,7 +2572,7 @@ func (x *WorkFlow) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkFlow.ProtoReflect.Descriptor instead. func (*WorkFlow) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{28} + return file_api_approval_approval_proto_rawDescGZIP(), []int{33} } func (x *WorkFlow) GetID() uint64 { @@ -2251,7 +2637,7 @@ type DetailRequest struct { func (x *DetailRequest) Reset() { *x = DetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[29] + mi := &file_api_approval_approval_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2264,7 +2650,7 @@ func (x *DetailRequest) String() string { func (*DetailRequest) ProtoMessage() {} func (x *DetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[29] + mi := &file_api_approval_approval_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2277,7 +2663,7 @@ func (x *DetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DetailRequest.ProtoReflect.Descriptor instead. func (*DetailRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{29} + return file_api_approval_approval_proto_rawDescGZIP(), []int{34} } func (x *DetailRequest) GetID() uint64 { @@ -2313,7 +2699,7 @@ type RemoveRequest struct { func (x *RemoveRequest) Reset() { *x = RemoveRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[30] + mi := &file_api_approval_approval_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2326,7 +2712,7 @@ func (x *RemoveRequest) String() string { func (*RemoveRequest) ProtoMessage() {} func (x *RemoveRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[30] + mi := &file_api_approval_approval_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2339,7 +2725,7 @@ func (x *RemoveRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveRequest.ProtoReflect.Descriptor instead. func (*RemoveRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{30} + return file_api_approval_approval_proto_rawDescGZIP(), []int{35} } func (x *RemoveRequest) GetIDs() []uint64 { @@ -2368,7 +2754,7 @@ type ApprovalResponse struct { func (x *ApprovalResponse) Reset() { *x = ApprovalResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[31] + mi := &file_api_approval_approval_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2381,7 +2767,7 @@ func (x *ApprovalResponse) String() string { func (*ApprovalResponse) ProtoMessage() {} func (x *ApprovalResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[31] + mi := &file_api_approval_approval_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2394,7 +2780,7 @@ func (x *ApprovalResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ApprovalResponse.ProtoReflect.Descriptor instead. func (*ApprovalResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{31} + return file_api_approval_approval_proto_rawDescGZIP(), []int{36} } func (x *ApprovalResponse) GetID() uint64 { @@ -2422,7 +2808,7 @@ type RemoveResponse struct { func (x *RemoveResponse) Reset() { *x = RemoveResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[32] + mi := &file_api_approval_approval_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2435,7 +2821,7 @@ func (x *RemoveResponse) String() string { func (*RemoveResponse) ProtoMessage() {} func (x *RemoveResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[32] + mi := &file_api_approval_approval_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2448,7 +2834,7 @@ func (x *RemoveResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveResponse.ProtoReflect.Descriptor instead. func (*RemoveResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{32} + return file_api_approval_approval_proto_rawDescGZIP(), []int{37} } func (x *RemoveResponse) GetSuccess() bool { @@ -2469,7 +2855,7 @@ type ApprovalExhibitionRemove struct { func (x *ApprovalExhibitionRemove) Reset() { *x = ApprovalExhibitionRemove{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[33] + mi := &file_api_approval_approval_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2482,7 +2868,7 @@ func (x *ApprovalExhibitionRemove) String() string { func (*ApprovalExhibitionRemove) ProtoMessage() {} func (x *ApprovalExhibitionRemove) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[33] + mi := &file_api_approval_approval_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2495,7 +2881,7 @@ func (x *ApprovalExhibitionRemove) ProtoReflect() protoreflect.Message { // Deprecated: Use ApprovalExhibitionRemove.ProtoReflect.Descriptor instead. func (*ApprovalExhibitionRemove) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{33} + return file_api_approval_approval_proto_rawDescGZIP(), []int{38} } func (x *ApprovalExhibitionRemove) GetSuccess() bool { @@ -2525,7 +2911,7 @@ type ApprovalExhibitionRequest struct { func (x *ApprovalExhibitionRequest) Reset() { *x = ApprovalExhibitionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[34] + mi := &file_api_approval_approval_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2538,7 +2924,7 @@ func (x *ApprovalExhibitionRequest) String() string { func (*ApprovalExhibitionRequest) ProtoMessage() {} func (x *ApprovalExhibitionRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[34] + mi := &file_api_approval_approval_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2551,7 +2937,7 @@ func (x *ApprovalExhibitionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApprovalExhibitionRequest.ProtoReflect.Descriptor instead. func (*ApprovalExhibitionRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{34} + return file_api_approval_approval_proto_rawDescGZIP(), []int{39} } func (x *ApprovalExhibitionRequest) GetID() uint64 { @@ -2636,7 +3022,7 @@ type ApprovalExhibitionDetail struct { func (x *ApprovalExhibitionDetail) Reset() { *x = ApprovalExhibitionDetail{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[35] + mi := &file_api_approval_approval_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2649,7 +3035,7 @@ func (x *ApprovalExhibitionDetail) String() string { func (*ApprovalExhibitionDetail) ProtoMessage() {} func (x *ApprovalExhibitionDetail) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[35] + mi := &file_api_approval_approval_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2662,7 +3048,7 @@ func (x *ApprovalExhibitionDetail) ProtoReflect() protoreflect.Message { // Deprecated: Use ApprovalExhibitionDetail.ProtoReflect.Descriptor instead. func (*ApprovalExhibitionDetail) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{35} + return file_api_approval_approval_proto_rawDescGZIP(), []int{40} } func (x *ApprovalExhibitionDetail) GetID() uint64 { @@ -2692,7 +3078,7 @@ type CopyUser struct { func (x *CopyUser) Reset() { *x = CopyUser{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[36] + mi := &file_api_approval_approval_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2705,7 +3091,7 @@ func (x *CopyUser) String() string { func (*CopyUser) ProtoMessage() {} func (x *CopyUser) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[36] + mi := &file_api_approval_approval_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2718,7 +3104,7 @@ func (x *CopyUser) ProtoReflect() protoreflect.Message { // Deprecated: Use CopyUser.ProtoReflect.Descriptor instead. func (*CopyUser) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{36} + return file_api_approval_approval_proto_rawDescGZIP(), []int{41} } func (x *CopyUser) GetID() uint64 { @@ -2755,7 +3141,7 @@ type ApprovalUser struct { func (x *ApprovalUser) Reset() { *x = ApprovalUser{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[37] + mi := &file_api_approval_approval_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2768,7 +3154,7 @@ func (x *ApprovalUser) String() string { func (*ApprovalUser) ProtoMessage() {} func (x *ApprovalUser) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[37] + mi := &file_api_approval_approval_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2781,7 +3167,7 @@ func (x *ApprovalUser) ProtoReflect() protoreflect.Message { // Deprecated: Use ApprovalUser.ProtoReflect.Descriptor instead. func (*ApprovalUser) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{37} + return file_api_approval_approval_proto_rawDescGZIP(), []int{42} } func (x *ApprovalUser) GetID() uint64 { @@ -2825,7 +3211,7 @@ type SettingRequest struct { func (x *SettingRequest) Reset() { *x = SettingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[38] + mi := &file_api_approval_approval_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2838,7 +3224,7 @@ func (x *SettingRequest) String() string { func (*SettingRequest) ProtoMessage() {} func (x *SettingRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[38] + mi := &file_api_approval_approval_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2851,7 +3237,7 @@ func (x *SettingRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SettingRequest.ProtoReflect.Descriptor instead. func (*SettingRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{38} + return file_api_approval_approval_proto_rawDescGZIP(), []int{43} } func (x *SettingRequest) GetID() uint64 { @@ -2936,7 +3322,7 @@ type DetailSettingRequest struct { func (x *DetailSettingRequest) Reset() { *x = DetailSettingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[39] + mi := &file_api_approval_approval_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2949,7 +3335,7 @@ func (x *DetailSettingRequest) String() string { func (*DetailSettingRequest) ProtoMessage() {} func (x *DetailSettingRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[39] + mi := &file_api_approval_approval_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2962,7 +3348,7 @@ func (x *DetailSettingRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DetailSettingRequest.ProtoReflect.Descriptor instead. func (*DetailSettingRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{39} + return file_api_approval_approval_proto_rawDescGZIP(), []int{44} } func (x *DetailSettingRequest) GetKeyWord() string { @@ -2991,7 +3377,7 @@ type SettingResponse struct { func (x *SettingResponse) Reset() { *x = SettingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[40] + mi := &file_api_approval_approval_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3004,7 +3390,7 @@ func (x *SettingResponse) String() string { func (*SettingResponse) ProtoMessage() {} func (x *SettingResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[40] + mi := &file_api_approval_approval_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3017,7 +3403,7 @@ func (x *SettingResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SettingResponse.ProtoReflect.Descriptor instead. func (*SettingResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{40} + return file_api_approval_approval_proto_rawDescGZIP(), []int{45} } func (x *SettingResponse) GetID() uint64 { @@ -3043,473 +3429,535 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x77, 0x69, 0x74, 0x6b, 0x6f, 0x77, 0x2f, 0x67, 0x6f, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x40, 0x76, 0x30, 0x2e, 0x33, 0x2e, 0x32, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x99, 0x01, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x4b, 0x65, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x6a, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x10, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x62, 0x0a, 0x16, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, + 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x22, 0x19, - 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, - 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x0a, 0x14, 0x55, 0x73, 0x65, - 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, - 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x15, 0x55, - 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x4f, 0x0a, 0x15, 0x4e, 0x6f, - 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x22, 0x31, 0x0a, 0x17, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, + 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x50, 0x61, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x22, 0xbd, 0x01, 0x0a, 0x07, 0x4b, 0x65, + 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x22, 0x6a, 0x0a, 0x16, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x22, 0x68, 0x0a, 0x10, 0x57, - 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, - 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x71, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, + 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x50, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x22, 0x4f, 0x0a, 0x15, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x44, 0x22, 0x68, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x71, 0x0a, 0x0d, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, + 0x86, 0x02, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x14, 0x0a, + 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x4b, + 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, + 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x2d, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x49, + 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x0c, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x58, 0x0a, 0x0f, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, + 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, + 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, + 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x2f, 0x0a, + 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x5e, + 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xac, + 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, + 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x27, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0f, + 0xe2, 0xdf, 0x1f, 0x0b, 0x10, 0x00, 0x18, 0x04, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x38, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x10, 0x0a, + 0x0e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xd0, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x25, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, 0x01, 0x52, 0x06, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x6f, 0x73, 0x73, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x6f, 0x73, 0x73, + 0x49, 0x64, 0x22, 0x51, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x0d, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, - 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x50, 0x61, - 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x86, 0x02, 0x0a, 0x11, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, - 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x2d, - 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x1a, 0x0a, - 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0x36, 0x0a, 0x0c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, - 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x58, 0x0a, 0x0f, 0x41, 0x6c, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x04, - 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, - 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x58, 0x0a, 0x12, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x85, 0x01, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x6f, 0x69, 0x6e, 0x67, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x6f, 0x69, 0x6e, + 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x61, + 0x69, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, + 0x61, 0x69, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xc2, 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x39, 0x0a, 0x0c, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6d, + 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x0c, 0x53, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x4d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x0a, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x7e, 0x0a, + 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4e, 0x75, 0x6d, 0x22, 0x4c, 0x0a, + 0x04, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, + 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x74, 0x22, 0xb8, 0x02, 0x0a, 0x0c, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, + 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x57, 0x6f, + 0x72, 0x6b, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, + 0x6f, 0x76, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0d, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, + 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x22, 0xae, 0x01, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, + 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3c, 0x0a, 0x0d, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x22, 0xa6, 0x02, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x22, + 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, + 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, + 0x22, 0xf8, 0x01, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x69, 0x64, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0d, 0x70, 0x69, 0x64, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, + 0x4e, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6e, 0x75, + 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x22, 0xd2, 0x02, 0x0a, 0x0e, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x77, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, + 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x68, 0x6f, + 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0xfd, 0x07, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, + 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x21, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x39, 0x58, 0x01, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, + 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09, + 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, + 0x07, 0x43, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x63, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x04, 0x53, + 0x68, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, + 0x34, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x45, + 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, + 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x43, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, + 0x30, 0x0a, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x13, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, + 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x52, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x22, 0xaa, 0x01, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, + 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, + 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x4f, 0x0a, + 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x04, - 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x5e, 0x0a, - 0x10, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x34, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xac, 0x01, - 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, - 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x27, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0f, 0xe2, - 0xdf, 0x1f, 0x0b, 0x10, 0x00, 0x18, 0x04, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x38, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x10, 0x0a, 0x0e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa8, - 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, - 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, - 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, 0x01, 0x52, 0x06, 0x64, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x04, 0x50, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x51, 0x0a, 0x0c, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x0d, - 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x58, 0x0a, - 0x12, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1e, 0x0a, - 0x0a, 0x44, 0x6f, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0a, 0x64, 0x6f, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x22, 0x0a, - 0x0c, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x61, 0x69, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x61, 0x69, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, - 0xc2, 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x4d, 0x79, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0c, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x35, 0x0a, - 0x0a, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x7e, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a, - 0x0a, 0x08, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x4e, 0x75, 0x6d, 0x22, 0x4c, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, - 0x6f, 0x77, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x77, - 0x41, 0x74, 0x22, 0xb8, 0x02, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, - 0x6f, 0x72, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x12, - 0x24, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, - 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x22, 0xae, 0x01, - 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, - 0x72, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, - 0x6b, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x22, 0xa6, - 0x02, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, - 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x50, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x53, - 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x69, 0x64, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, - 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x70, 0x69, 0x64, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x4e, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x13, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x49, 0x44, 0x22, 0x81, 0x07, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x02, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, - 0x31, 0x58, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x39, 0x58, 0x01, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, - 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, - 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, - 0x18, 0x0a, 0x07, 0x43, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x63, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x04, 0x57, 0x6f, 0x72, - 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x22, 0x0a, - 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x04, 0x73, 0x68, 0x6f, - 0x77, 0x12, 0x34, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, - 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x12, 0x30, 0x0a, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x13, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, - 0x6f, 0x77, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x15, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x20, 0x0a, 0x0b, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x6f, 0x77, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0xaa, 0x01, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x46, - 0x6c, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, - 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x4f, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x04, 0x52, 0x03, 0x49, 0x44, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, - 0x3c, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x2a, 0x0a, - 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x39, + 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x03, 0x49, 0x44, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3c, 0x0a, 0x10, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, + 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x22, 0x34, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, + 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x34, 0x0a, 0x18, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, - 0xe3, 0x02, 0x0a, 0x19, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, - 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, - 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, - 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, - 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x42, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, - 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x4a, 0x0a, 0x08, 0x43, 0x6f, 0x70, - 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x56, - 0x69, 0x65, 0x77, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x56, - 0x69, 0x65, 0x77, 0x65, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, - 0xf1, 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, - 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, - 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, - 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, - 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x22, 0x48, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, - 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, - 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3b, 0x0a, - 0x0f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, - 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x32, 0x84, 0x0b, 0x0a, 0x08, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, - 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, - 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, - 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, - 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, + 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x19, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, + 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, + 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, + 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, + 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, + 0x42, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x22, 0x4a, 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, + 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x22, + 0x48, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, + 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xf1, 0x02, 0x0a, 0x0e, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, + 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, + 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x48, 0x0a, + 0x14, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3b, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x32, 0xaf, 0x0c, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, + 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, + 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, + 0x44, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, + 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x3b, 0x0a, 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, + 0x0a, 0x0e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, + 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x4c, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, + 0x06, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, + 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x4b, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, + 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x41, 0x6c, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, - 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, + 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, + 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, + 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x4f, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, + 0x61, 0x79, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x43, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x3f, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, - 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x41, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3524,117 +3972,127 @@ func file_api_approval_approval_proto_rawDescGZIP() []byte { return file_api_approval_approval_proto_rawDescData } -var file_api_approval_approval_proto_msgTypes = make([]protoimpl.MessageInfo, 41) +var file_api_approval_approval_proto_msgTypes = make([]protoimpl.MessageInfo, 46) var file_api_approval_approval_proto_goTypes = []interface{}{ - (*KeyInfo)(nil), // 0: approval.KeyInfo - (*UpdateEhApplyIDRequest)(nil), // 1: approval.UpdateEhApplyIDRequest - (*UpdateEhApplyIDResponse)(nil), // 2: approval.UpdateEhApplyIDResponse - (*UsedNumByUserRequest)(nil), // 3: approval.UsedNumByUserRequest - (*UsedNumByUserResponse)(nil), // 4: approval.UsedNumByUserResponse - (*NowLevelByInfoRequest)(nil), // 5: approval.NowLevelByInfoRequest - (*WorkFlowResponse)(nil), // 6: approval.WorkFlowResponse - (*CommonRequest)(nil), // 7: approval.CommonRequest - (*CreateTypeRequest)(nil), // 8: approval.CreateTypeRequest - (*TypeResponse)(nil), // 9: approval.TypeResponse - (*AllTypeResponse)(nil), // 10: approval.AllTypeResponse - (*CreateTypeGroupRequest)(nil), // 11: approval.CreateTypeGroupRequest - (*AllGroupResponse)(nil), // 12: approval.AllGroupResponse - (*StatusRequest)(nil), // 13: approval.StatusRequest - (*StatusResponse)(nil), // 14: approval.StatusResponse - (*ListRequest)(nil), // 15: approval.ListRequest - (*ListResponse)(nil), // 16: approval.ListResponse - (*ViewedRequest)(nil), // 17: approval.ViewedRequest - (*InformationRequest)(nil), // 18: approval.InformationRequest - (*Information)(nil), // 19: approval.Information - (*InformationResponse)(nil), // 20: approval.InformationResponse - (*Bundle)(nil), // 21: approval.Bundle - (*Show)(nil), // 22: approval.Show - (*ApprovalWork)(nil), // 23: approval.ApprovalWork - (*Work)(nil), // 24: approval.Work - (*ApprovalExhibition)(nil), // 25: approval.ApprovalExhibition - (*Exhibition)(nil), // 26: approval.Exhibition - (*CreateRequest)(nil), // 27: approval.CreateRequest - (*WorkFlow)(nil), // 28: approval.WorkFlow - (*DetailRequest)(nil), // 29: approval.DetailRequest - (*RemoveRequest)(nil), // 30: approval.RemoveRequest - (*ApprovalResponse)(nil), // 31: approval.ApprovalResponse - (*RemoveResponse)(nil), // 32: approval.RemoveResponse - (*ApprovalExhibitionRemove)(nil), // 33: approval.ApprovalExhibitionRemove - (*ApprovalExhibitionRequest)(nil), // 34: approval.ApprovalExhibitionRequest - (*ApprovalExhibitionDetail)(nil), // 35: approval.ApprovalExhibitionDetail - (*CopyUser)(nil), // 36: approval.CopyUser - (*ApprovalUser)(nil), // 37: approval.ApprovalUser - (*SettingRequest)(nil), // 38: approval.SettingRequest - (*DetailSettingRequest)(nil), // 39: approval.DetailSettingRequest - (*SettingResponse)(nil), // 40: approval.SettingResponse + (*CommonResponse)(nil), // 0: approval.CommonResponse + (*ChangeBundlePayRequest)(nil), // 1: approval.ChangeBundlePayRequest + (*IsExistPayRightRequest)(nil), // 2: approval.IsExistPayRightRequest + (*IsExistPayRightResponse)(nil), // 3: approval.IsExistPayRightResponse + (*KeyInfo)(nil), // 4: approval.KeyInfo + (*UpdateEhApplyIDRequest)(nil), // 5: approval.UpdateEhApplyIDRequest + (*UpdateEhApplyIDResponse)(nil), // 6: approval.UpdateEhApplyIDResponse + (*UsedNumByUserRequest)(nil), // 7: approval.UsedNumByUserRequest + (*UsedNumByUserResponse)(nil), // 8: approval.UsedNumByUserResponse + (*NowLevelByInfoRequest)(nil), // 9: approval.NowLevelByInfoRequest + (*WorkFlowResponse)(nil), // 10: approval.WorkFlowResponse + (*CommonRequest)(nil), // 11: approval.CommonRequest + (*CreateTypeRequest)(nil), // 12: approval.CreateTypeRequest + (*TypeResponse)(nil), // 13: approval.TypeResponse + (*AllTypeResponse)(nil), // 14: approval.AllTypeResponse + (*CreateTypeGroupRequest)(nil), // 15: approval.CreateTypeGroupRequest + (*AllGroupResponse)(nil), // 16: approval.AllGroupResponse + (*StatusRequest)(nil), // 17: approval.StatusRequest + (*StatusResponse)(nil), // 18: approval.StatusResponse + (*ListRequest)(nil), // 19: approval.ListRequest + (*ListResponse)(nil), // 20: approval.ListResponse + (*ViewedRequest)(nil), // 21: approval.ViewedRequest + (*InformationRequest)(nil), // 22: approval.InformationRequest + (*Information)(nil), // 23: approval.Information + (*InformationResponse)(nil), // 24: approval.InformationResponse + (*Bundle)(nil), // 25: approval.Bundle + (*Show)(nil), // 26: approval.Show + (*ApprovalWork)(nil), // 27: approval.ApprovalWork + (*Work)(nil), // 28: approval.Work + (*ApprovalExhibition)(nil), // 29: approval.ApprovalExhibition + (*Exhibition)(nil), // 30: approval.Exhibition + (*BundlePayPrice)(nil), // 31: approval.BundlePayPrice + (*CreateRequest)(nil), // 32: approval.CreateRequest + (*WorkFlow)(nil), // 33: approval.WorkFlow + (*DetailRequest)(nil), // 34: approval.DetailRequest + (*RemoveRequest)(nil), // 35: approval.RemoveRequest + (*ApprovalResponse)(nil), // 36: approval.ApprovalResponse + (*RemoveResponse)(nil), // 37: approval.RemoveResponse + (*ApprovalExhibitionRemove)(nil), // 38: approval.ApprovalExhibitionRemove + (*ApprovalExhibitionRequest)(nil), // 39: approval.ApprovalExhibitionRequest + (*ApprovalExhibitionDetail)(nil), // 40: approval.ApprovalExhibitionDetail + (*CopyUser)(nil), // 41: approval.CopyUser + (*ApprovalUser)(nil), // 42: approval.ApprovalUser + (*SettingRequest)(nil), // 43: approval.SettingRequest + (*DetailSettingRequest)(nil), // 44: approval.DetailSettingRequest + (*SettingResponse)(nil), // 45: approval.SettingResponse } var file_api_approval_approval_proto_depIdxs = []int32{ - 0, // 0: approval.CreateTypeRequest.KeyInfos:type_name -> approval.KeyInfo - 8, // 1: approval.AllTypeResponse.Data:type_name -> approval.CreateTypeRequest - 8, // 2: approval.CreateTypeGroupRequest.List:type_name -> approval.CreateTypeRequest - 11, // 3: approval.AllGroupResponse.Data:type_name -> approval.CreateTypeGroupRequest - 27, // 4: approval.ListResponse.data:type_name -> approval.CreateRequest - 19, // 5: approval.InformationResponse.MySubmitInfo:type_name -> approval.Information - 19, // 6: approval.InformationResponse.SubmitMeInfo:type_name -> approval.Information - 19, // 7: approval.InformationResponse.DomainInfo:type_name -> approval.Information - 23, // 8: approval.Work.ApprovalWorks:type_name -> approval.ApprovalWork - 25, // 9: approval.Exhibition.ApprovalExhibitions:type_name -> approval.ApprovalExhibition - 36, // 10: approval.CreateRequest.CopyUsers:type_name -> approval.CopyUser - 24, // 11: approval.CreateRequest.Work:type_name -> approval.Work - 22, // 12: approval.CreateRequest.Show:type_name -> approval.Show - 26, // 13: approval.CreateRequest.Exhibition:type_name -> approval.Exhibition - 21, // 14: approval.CreateRequest.Bundle:type_name -> approval.Bundle - 37, // 15: approval.CreateRequest.ApprovalUsers:type_name -> approval.ApprovalUser - 28, // 16: approval.CreateRequest.WorkFlows:type_name -> approval.WorkFlow - 0, // 17: approval.CreateRequest.CustomizeInfo:type_name -> approval.KeyInfo - 36, // 18: approval.SettingRequest.CopyUsers:type_name -> approval.CopyUser - 37, // 19: approval.SettingRequest.ApprovalUsers:type_name -> approval.ApprovalUser - 0, // 20: approval.SettingRequest.CustomizeInfo:type_name -> approval.KeyInfo - 27, // 21: approval.Approval.Create:input_type -> approval.CreateRequest - 3, // 22: approval.Approval.UsedNumByUser:input_type -> approval.UsedNumByUserRequest - 1, // 23: approval.Approval.UpdateExhibitionApplyID:input_type -> approval.UpdateEhApplyIDRequest - 29, // 24: approval.Approval.Detail:input_type -> approval.DetailRequest - 27, // 25: approval.Approval.Update:input_type -> approval.CreateRequest - 30, // 26: approval.Approval.Remove:input_type -> approval.RemoveRequest - 15, // 27: approval.Approval.MyWork:input_type -> approval.ListRequest - 15, // 28: approval.Approval.MySubmit:input_type -> approval.ListRequest - 5, // 29: approval.Approval.NowLevelByInfo:input_type -> approval.NowLevelByInfoRequest - 18, // 30: approval.Approval.Information:input_type -> approval.InformationRequest - 17, // 31: approval.Approval.Viewed:input_type -> approval.ViewedRequest - 13, // 32: approval.Approval.SetStatus:input_type -> approval.StatusRequest - 39, // 33: approval.Approval.DetailSetting:input_type -> approval.DetailSettingRequest - 38, // 34: approval.Approval.UpdateSetting:input_type -> approval.SettingRequest - 8, // 35: approval.Approval.CreateType:input_type -> approval.CreateTypeRequest - 9, // 36: approval.Approval.DetailType:input_type -> approval.TypeResponse - 8, // 37: approval.Approval.UpdateType:input_type -> approval.CreateTypeRequest - 7, // 38: approval.Approval.AllType:input_type -> approval.CommonRequest - 30, // 39: approval.Approval.RemoveType:input_type -> approval.RemoveRequest - 7, // 40: approval.Approval.AllGroup:input_type -> approval.CommonRequest - 31, // 41: approval.Approval.Create:output_type -> approval.ApprovalResponse - 4, // 42: approval.Approval.UsedNumByUser:output_type -> approval.UsedNumByUserResponse - 2, // 43: approval.Approval.UpdateExhibitionApplyID:output_type -> approval.UpdateEhApplyIDResponse - 27, // 44: approval.Approval.Detail:output_type -> approval.CreateRequest - 31, // 45: approval.Approval.Update:output_type -> approval.ApprovalResponse - 32, // 46: approval.Approval.Remove:output_type -> approval.RemoveResponse - 16, // 47: approval.Approval.MyWork:output_type -> approval.ListResponse - 16, // 48: approval.Approval.MySubmit:output_type -> approval.ListResponse - 6, // 49: approval.Approval.NowLevelByInfo:output_type -> approval.WorkFlowResponse - 20, // 50: approval.Approval.Information:output_type -> approval.InformationResponse - 31, // 51: approval.Approval.Viewed:output_type -> approval.ApprovalResponse - 14, // 52: approval.Approval.SetStatus:output_type -> approval.StatusResponse - 38, // 53: approval.Approval.DetailSetting:output_type -> approval.SettingRequest - 40, // 54: approval.Approval.UpdateSetting:output_type -> approval.SettingResponse - 9, // 55: approval.Approval.CreateType:output_type -> approval.TypeResponse - 8, // 56: approval.Approval.DetailType:output_type -> approval.CreateTypeRequest - 9, // 57: approval.Approval.UpdateType:output_type -> approval.TypeResponse - 10, // 58: approval.Approval.AllType:output_type -> approval.AllTypeResponse - 14, // 59: approval.Approval.RemoveType:output_type -> approval.StatusResponse - 12, // 60: approval.Approval.AllGroup:output_type -> approval.AllGroupResponse - 41, // [41:61] is the sub-list for method output_type - 21, // [21:41] is the sub-list for method input_type - 21, // [21:21] is the sub-list for extension type_name - 21, // [21:21] is the sub-list for extension extendee - 0, // [0:21] is the sub-list for field type_name + 4, // 0: approval.CreateTypeRequest.KeyInfos:type_name -> approval.KeyInfo + 12, // 1: approval.AllTypeResponse.Data:type_name -> approval.CreateTypeRequest + 12, // 2: approval.CreateTypeGroupRequest.List:type_name -> approval.CreateTypeRequest + 15, // 3: approval.AllGroupResponse.Data:type_name -> approval.CreateTypeGroupRequest + 32, // 4: approval.ListResponse.data:type_name -> approval.CreateRequest + 23, // 5: approval.InformationResponse.MySubmitInfo:type_name -> approval.Information + 23, // 6: approval.InformationResponse.SubmitMeInfo:type_name -> approval.Information + 23, // 7: approval.InformationResponse.DomainInfo:type_name -> approval.Information + 27, // 8: approval.Work.ApprovalWorks:type_name -> approval.ApprovalWork + 29, // 9: approval.Exhibition.ApprovalExhibitions:type_name -> approval.ApprovalExhibition + 41, // 10: approval.CreateRequest.CopyUsers:type_name -> approval.CopyUser + 28, // 11: approval.CreateRequest.Work:type_name -> approval.Work + 26, // 12: approval.CreateRequest.Show:type_name -> approval.Show + 30, // 13: approval.CreateRequest.Exhibition:type_name -> approval.Exhibition + 25, // 14: approval.CreateRequest.Bundle:type_name -> approval.Bundle + 42, // 15: approval.CreateRequest.ApprovalUsers:type_name -> approval.ApprovalUser + 33, // 16: approval.CreateRequest.WorkFlows:type_name -> approval.WorkFlow + 4, // 17: approval.CreateRequest.CustomizeInfo:type_name -> approval.KeyInfo + 31, // 18: approval.CreateRequest.BundlePayPrice:type_name -> approval.BundlePayPrice + 41, // 19: approval.SettingRequest.CopyUsers:type_name -> approval.CopyUser + 42, // 20: approval.SettingRequest.ApprovalUsers:type_name -> approval.ApprovalUser + 4, // 21: approval.SettingRequest.CustomizeInfo:type_name -> approval.KeyInfo + 32, // 22: approval.Approval.Create:input_type -> approval.CreateRequest + 7, // 23: approval.Approval.UsedNumByUser:input_type -> approval.UsedNumByUserRequest + 5, // 24: approval.Approval.UpdateExhibitionApplyID:input_type -> approval.UpdateEhApplyIDRequest + 34, // 25: approval.Approval.Detail:input_type -> approval.DetailRequest + 32, // 26: approval.Approval.Update:input_type -> approval.CreateRequest + 35, // 27: approval.Approval.Remove:input_type -> approval.RemoveRequest + 19, // 28: approval.Approval.MyWork:input_type -> approval.ListRequest + 19, // 29: approval.Approval.MySubmit:input_type -> approval.ListRequest + 9, // 30: approval.Approval.NowLevelByInfo:input_type -> approval.NowLevelByInfoRequest + 22, // 31: approval.Approval.Information:input_type -> approval.InformationRequest + 21, // 32: approval.Approval.Viewed:input_type -> approval.ViewedRequest + 17, // 33: approval.Approval.SetStatus:input_type -> approval.StatusRequest + 44, // 34: approval.Approval.DetailSetting:input_type -> approval.DetailSettingRequest + 43, // 35: approval.Approval.UpdateSetting:input_type -> approval.SettingRequest + 2, // 36: approval.Approval.IsExistPayRight:input_type -> approval.IsExistPayRightRequest + 1, // 37: approval.Approval.ChangeBundlePay:input_type -> approval.ChangeBundlePayRequest + 12, // 38: approval.Approval.CreateType:input_type -> approval.CreateTypeRequest + 13, // 39: approval.Approval.DetailType:input_type -> approval.TypeResponse + 12, // 40: approval.Approval.UpdateType:input_type -> approval.CreateTypeRequest + 11, // 41: approval.Approval.AllType:input_type -> approval.CommonRequest + 35, // 42: approval.Approval.RemoveType:input_type -> approval.RemoveRequest + 11, // 43: approval.Approval.AllGroup:input_type -> approval.CommonRequest + 36, // 44: approval.Approval.Create:output_type -> approval.ApprovalResponse + 8, // 45: approval.Approval.UsedNumByUser:output_type -> approval.UsedNumByUserResponse + 6, // 46: approval.Approval.UpdateExhibitionApplyID:output_type -> approval.UpdateEhApplyIDResponse + 32, // 47: approval.Approval.Detail:output_type -> approval.CreateRequest + 36, // 48: approval.Approval.Update:output_type -> approval.ApprovalResponse + 37, // 49: approval.Approval.Remove:output_type -> approval.RemoveResponse + 20, // 50: approval.Approval.MyWork:output_type -> approval.ListResponse + 20, // 51: approval.Approval.MySubmit:output_type -> approval.ListResponse + 10, // 52: approval.Approval.NowLevelByInfo:output_type -> approval.WorkFlowResponse + 24, // 53: approval.Approval.Information:output_type -> approval.InformationResponse + 36, // 54: approval.Approval.Viewed:output_type -> approval.ApprovalResponse + 18, // 55: approval.Approval.SetStatus:output_type -> approval.StatusResponse + 43, // 56: approval.Approval.DetailSetting:output_type -> approval.SettingRequest + 45, // 57: approval.Approval.UpdateSetting:output_type -> approval.SettingResponse + 3, // 58: approval.Approval.IsExistPayRight:output_type -> approval.IsExistPayRightResponse + 0, // 59: approval.Approval.ChangeBundlePay:output_type -> approval.CommonResponse + 13, // 60: approval.Approval.CreateType:output_type -> approval.TypeResponse + 12, // 61: approval.Approval.DetailType:output_type -> approval.CreateTypeRequest + 13, // 62: approval.Approval.UpdateType:output_type -> approval.TypeResponse + 14, // 63: approval.Approval.AllType:output_type -> approval.AllTypeResponse + 18, // 64: approval.Approval.RemoveType:output_type -> approval.StatusResponse + 16, // 65: approval.Approval.AllGroup:output_type -> approval.AllGroupResponse + 44, // [44:66] is the sub-list for method output_type + 22, // [22:44] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name } func init() { file_api_approval_approval_proto_init() } @@ -3644,7 +4102,7 @@ func file_api_approval_approval_proto_init() { } if !protoimpl.UnsafeEnabled { file_api_approval_approval_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KeyInfo); i { + switch v := v.(*CommonResponse); i { case 0: return &v.state case 1: @@ -3656,7 +4114,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateEhApplyIDRequest); i { + switch v := v.(*ChangeBundlePayRequest); i { case 0: return &v.state case 1: @@ -3668,7 +4126,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateEhApplyIDResponse); i { + switch v := v.(*IsExistPayRightRequest); i { case 0: return &v.state case 1: @@ -3680,7 +4138,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UsedNumByUserRequest); i { + switch v := v.(*IsExistPayRightResponse); i { case 0: return &v.state case 1: @@ -3692,7 +4150,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UsedNumByUserResponse); i { + switch v := v.(*KeyInfo); i { case 0: return &v.state case 1: @@ -3704,7 +4162,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NowLevelByInfoRequest); i { + switch v := v.(*UpdateEhApplyIDRequest); i { case 0: return &v.state case 1: @@ -3716,7 +4174,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkFlowResponse); i { + switch v := v.(*UpdateEhApplyIDResponse); i { case 0: return &v.state case 1: @@ -3728,7 +4186,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommonRequest); i { + switch v := v.(*UsedNumByUserRequest); i { case 0: return &v.state case 1: @@ -3740,7 +4198,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateTypeRequest); i { + switch v := v.(*UsedNumByUserResponse); i { case 0: return &v.state case 1: @@ -3752,7 +4210,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TypeResponse); i { + switch v := v.(*NowLevelByInfoRequest); i { case 0: return &v.state case 1: @@ -3764,7 +4222,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AllTypeResponse); i { + switch v := v.(*WorkFlowResponse); i { case 0: return &v.state case 1: @@ -3776,7 +4234,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateTypeGroupRequest); i { + switch v := v.(*CommonRequest); i { case 0: return &v.state case 1: @@ -3788,7 +4246,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AllGroupResponse); i { + switch v := v.(*CreateTypeRequest); i { case 0: return &v.state case 1: @@ -3800,7 +4258,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusRequest); i { + switch v := v.(*TypeResponse); i { case 0: return &v.state case 1: @@ -3812,7 +4270,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusResponse); i { + switch v := v.(*AllTypeResponse); i { case 0: return &v.state case 1: @@ -3824,7 +4282,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRequest); i { + switch v := v.(*CreateTypeGroupRequest); i { case 0: return &v.state case 1: @@ -3836,7 +4294,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListResponse); i { + switch v := v.(*AllGroupResponse); i { case 0: return &v.state case 1: @@ -3848,7 +4306,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ViewedRequest); i { + switch v := v.(*StatusRequest); i { case 0: return &v.state case 1: @@ -3860,7 +4318,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InformationRequest); i { + switch v := v.(*StatusResponse); i { case 0: return &v.state case 1: @@ -3872,7 +4330,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Information); i { + switch v := v.(*ListRequest); i { case 0: return &v.state case 1: @@ -3884,7 +4342,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InformationResponse); i { + switch v := v.(*ListResponse); i { case 0: return &v.state case 1: @@ -3896,7 +4354,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Bundle); i { + switch v := v.(*ViewedRequest); i { case 0: return &v.state case 1: @@ -3908,7 +4366,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Show); i { + switch v := v.(*InformationRequest); i { case 0: return &v.state case 1: @@ -3920,7 +4378,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalWork); i { + switch v := v.(*Information); i { case 0: return &v.state case 1: @@ -3932,7 +4390,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Work); i { + switch v := v.(*InformationResponse); i { case 0: return &v.state case 1: @@ -3944,7 +4402,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalExhibition); i { + switch v := v.(*Bundle); i { case 0: return &v.state case 1: @@ -3956,7 +4414,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Exhibition); i { + switch v := v.(*Show); i { case 0: return &v.state case 1: @@ -3968,7 +4426,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateRequest); i { + switch v := v.(*ApprovalWork); i { case 0: return &v.state case 1: @@ -3980,7 +4438,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkFlow); i { + switch v := v.(*Work); i { case 0: return &v.state case 1: @@ -3992,7 +4450,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DetailRequest); i { + switch v := v.(*ApprovalExhibition); i { case 0: return &v.state case 1: @@ -4004,7 +4462,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveRequest); i { + switch v := v.(*Exhibition); i { case 0: return &v.state case 1: @@ -4016,7 +4474,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalResponse); i { + switch v := v.(*BundlePayPrice); i { case 0: return &v.state case 1: @@ -4028,7 +4486,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveResponse); i { + switch v := v.(*CreateRequest); i { case 0: return &v.state case 1: @@ -4040,7 +4498,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalExhibitionRemove); i { + switch v := v.(*WorkFlow); i { case 0: return &v.state case 1: @@ -4052,7 +4510,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalExhibitionRequest); i { + switch v := v.(*DetailRequest); i { case 0: return &v.state case 1: @@ -4064,7 +4522,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalExhibitionDetail); i { + switch v := v.(*RemoveRequest); i { case 0: return &v.state case 1: @@ -4076,7 +4534,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CopyUser); i { + switch v := v.(*ApprovalResponse); i { case 0: return &v.state case 1: @@ -4088,7 +4546,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalUser); i { + switch v := v.(*RemoveResponse); i { case 0: return &v.state case 1: @@ -4100,7 +4558,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SettingRequest); i { + switch v := v.(*ApprovalExhibitionRemove); i { case 0: return &v.state case 1: @@ -4112,7 +4570,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DetailSettingRequest); i { + switch v := v.(*ApprovalExhibitionRequest); i { case 0: return &v.state case 1: @@ -4124,6 +4582,66 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApprovalExhibitionDetail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CopyUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApprovalUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SettingRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DetailSettingRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SettingResponse); i { case 0: return &v.state @@ -4142,7 +4660,7 @@ func file_api_approval_approval_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_approval_approval_proto_rawDesc, NumEnums: 0, - NumMessages: 41, + NumMessages: 46, NumExtensions: 0, NumServices: 1, }, diff --git a/api/approval/approval.proto b/api/approval/approval.proto index 12a8ede..456aaad 100644 --- a/api/approval/approval.proto +++ b/api/approval/approval.proto @@ -22,6 +22,8 @@ service Approval { rpc SetStatus(StatusRequest) returns (StatusResponse) {}; rpc DetailSetting(DetailSettingRequest) returns (SettingRequest) {}; rpc UpdateSetting(SettingRequest) returns (SettingResponse) {}; + rpc IsExistPayRight(IsExistPayRightRequest) returns (IsExistPayRightResponse) {};//是否有 + rpc ChangeBundlePay(ChangeBundlePayRequest) returns (CommonResponse) {};//是否有 rpc CreateType(CreateTypeRequest) returns (TypeResponse) {}; rpc DetailType(TypeResponse) returns (CreateTypeRequest) {}; @@ -31,11 +33,32 @@ service Approval { rpc AllGroup(CommonRequest) returns (AllGroupResponse) {}; } +message CommonResponse { + +} + +message ChangeBundlePayRequest { + string Domain = 1 [json_name = "domain"]; + uint64 ID = 2 [json_name = "ID"]; + uint64 Status = 3 [json_name = "Status"]; +} + +message IsExistPayRightRequest { + string Domain = 1 [json_name = "domain"]; + uint64 UserId = 2 [json_name = "userId"]; + string ShowUid = 3 [json_name = "showUid"]; +} + +message IsExistPayRightResponse { + bool IsPass = 1 [json_name = "isPass"]; +} + message KeyInfo { string ApprovalKey = 1 [json_name = "approvalKey"]; string ApprovalName = 2 [json_name = "approvalName"]; string ApprovalType = 3 [json_name = "approvalType"]; string ApprovalValue = 4 [json_name = "approvalValue"]; + bool ApprovalMark = 5 [json_name = "approvalMark"]; } message UpdateEhApplyIDRequest { @@ -90,6 +113,7 @@ message CreateTypeRequest { message TypeResponse { uint64 ID = 1; string Domain = 2; + string Keyword = 3; } message AllTypeResponse { @@ -129,6 +153,7 @@ message ListRequest { uint64 Status = 4 [json_name = "status"];//0待审批 1-审批成功 2-拒绝 4-是所有 string Type = 5 [json_name = "type"]; //类型 uint64 UserID = 6 [json_name = "userID"]; // + uint64 ApprovedBossId = 7 [json_name = "approvedBossId"]; // } message ListResponse { @@ -219,6 +244,20 @@ message Exhibition { string ApplyID = 7 [json_name = "applyID"]; } +message BundlePayPrice { + string ShowUid = 1 [json_name = "showUid"]; + uint64 ApprovalID = 2 [json_name = "approvalID"]; + string ShowName = 3 [json_name = "showName"]; + string ReceivedAt = 4 [json_name = "receivedAt"]; + string ShowDate = 5 [json_name = "showDate"]; + string ShowLowPrice= 6 [json_name = "showLowPrice"]; + uint64 ArtworkNum = 7 [json_name = "artworkNum"]; + string ArtworkSize = 8 [json_name = "artworkSize"]; + string ShowAddress = 9 [json_name = "showAddress"]; + uint64 ID = 10 [json_name = "ID"]; + uint64 Status = 11 [json_name = "Status"]; +} + message CreateRequest { uint64 ID = 1 [json_name = "ID"]; string Domain = 2 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; @@ -245,6 +284,9 @@ message CreateRequest { string CreatedAt = 25 [json_name = "createdAt"]; repeated KeyInfo CustomizeInfo = 26 [json_name = "customizeInfo"]; uint64 IsCustom = 27 [json_name = "isCustom"]; + string TypeName = 28 [json_name = "typeName"]; + string GroupName = 29 [json_name = "groupName"]; + BundlePayPrice BundlePayPrice = 30 [json_name = "bundlePayPrice"]; } message WorkFlow { diff --git a/api/approval/approval.validator.pb.go b/api/approval/approval.validator.pb.go index 91b29a2..fa07687 100644 --- a/api/approval/approval.validator.pb.go +++ b/api/approval/approval.validator.pb.go @@ -16,6 +16,18 @@ var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf +func (this *CommonResponse) Validate() error { + return nil +} +func (this *ChangeBundlePayRequest) Validate() error { + return nil +} +func (this *IsExistPayRightRequest) Validate() error { + return nil +} +func (this *IsExistPayRightResponse) Validate() error { + return nil +} func (this *KeyInfo) Validate() error { return nil } @@ -170,6 +182,9 @@ func (this *Exhibition) Validate() error { } return nil } +func (this *BundlePayPrice) Validate() error { + return nil +} func (this *CreateRequest) Validate() error { if this.Domain == "" { return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) @@ -225,6 +240,11 @@ func (this *CreateRequest) Validate() error { } } } + if this.BundlePayPrice != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.BundlePayPrice); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("BundlePayPrice", err) + } + } return nil } func (this *WorkFlow) Validate() error { diff --git a/api/approval/approval_triple.pb.go b/api/approval/approval_triple.pb.go index 9b40f92..75898c5 100644 --- a/api/approval/approval_triple.pb.go +++ b/api/approval/approval_triple.pb.go @@ -42,6 +42,8 @@ type ApprovalClient interface { SetStatus(ctx context.Context, in *StatusRequest, opts ...grpc_go.CallOption) (*StatusResponse, common.ErrorWithAttachment) DetailSetting(ctx context.Context, in *DetailSettingRequest, opts ...grpc_go.CallOption) (*SettingRequest, common.ErrorWithAttachment) UpdateSetting(ctx context.Context, in *SettingRequest, opts ...grpc_go.CallOption) (*SettingResponse, common.ErrorWithAttachment) + IsExistPayRight(ctx context.Context, in *IsExistPayRightRequest, opts ...grpc_go.CallOption) (*IsExistPayRightResponse, common.ErrorWithAttachment) + ChangeBundlePay(ctx context.Context, in *ChangeBundlePayRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) CreateType(ctx context.Context, in *CreateTypeRequest, opts ...grpc_go.CallOption) (*TypeResponse, common.ErrorWithAttachment) DetailType(ctx context.Context, in *TypeResponse, opts ...grpc_go.CallOption) (*CreateTypeRequest, common.ErrorWithAttachment) UpdateType(ctx context.Context, in *CreateTypeRequest, opts ...grpc_go.CallOption) (*TypeResponse, common.ErrorWithAttachment) @@ -69,6 +71,8 @@ type ApprovalClientImpl struct { SetStatus func(ctx context.Context, in *StatusRequest) (*StatusResponse, error) DetailSetting func(ctx context.Context, in *DetailSettingRequest) (*SettingRequest, error) UpdateSetting func(ctx context.Context, in *SettingRequest) (*SettingResponse, error) + IsExistPayRight func(ctx context.Context, in *IsExistPayRightRequest) (*IsExistPayRightResponse, error) + ChangeBundlePay func(ctx context.Context, in *ChangeBundlePayRequest) (*CommonResponse, error) CreateType func(ctx context.Context, in *CreateTypeRequest) (*TypeResponse, error) DetailType func(ctx context.Context, in *TypeResponse) (*CreateTypeRequest, error) UpdateType func(ctx context.Context, in *CreateTypeRequest) (*TypeResponse, error) @@ -173,6 +177,18 @@ func (c *approvalClient) UpdateSetting(ctx context.Context, in *SettingRequest, return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateSetting", in, out) } +func (c *approvalClient) IsExistPayRight(ctx context.Context, in *IsExistPayRightRequest, opts ...grpc_go.CallOption) (*IsExistPayRightResponse, common.ErrorWithAttachment) { + out := new(IsExistPayRightResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/IsExistPayRight", in, out) +} + +func (c *approvalClient) ChangeBundlePay(ctx context.Context, in *ChangeBundlePayRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) { + out := new(CommonResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ChangeBundlePay", in, out) +} + func (c *approvalClient) CreateType(ctx context.Context, in *CreateTypeRequest, opts ...grpc_go.CallOption) (*TypeResponse, common.ErrorWithAttachment) { out := new(TypeResponse) interfaceKey := ctx.Value(constant.InterfaceKey).(string) @@ -227,6 +243,8 @@ type ApprovalServer interface { SetStatus(context.Context, *StatusRequest) (*StatusResponse, error) DetailSetting(context.Context, *DetailSettingRequest) (*SettingRequest, error) UpdateSetting(context.Context, *SettingRequest) (*SettingResponse, error) + IsExistPayRight(context.Context, *IsExistPayRightRequest) (*IsExistPayRightResponse, error) + ChangeBundlePay(context.Context, *ChangeBundlePayRequest) (*CommonResponse, error) CreateType(context.Context, *CreateTypeRequest) (*TypeResponse, error) DetailType(context.Context, *TypeResponse) (*CreateTypeRequest, error) UpdateType(context.Context, *CreateTypeRequest) (*TypeResponse, error) @@ -283,6 +301,12 @@ func (UnimplementedApprovalServer) DetailSetting(context.Context, *DetailSetting func (UnimplementedApprovalServer) UpdateSetting(context.Context, *SettingRequest) (*SettingResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateSetting not implemented") } +func (UnimplementedApprovalServer) IsExistPayRight(context.Context, *IsExistPayRightRequest) (*IsExistPayRightResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method IsExistPayRight not implemented") +} +func (UnimplementedApprovalServer) ChangeBundlePay(context.Context, *ChangeBundlePayRequest) (*CommonResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ChangeBundlePay not implemented") +} func (UnimplementedApprovalServer) CreateType(context.Context, *CreateTypeRequest) (*TypeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateType not implemented") } @@ -735,6 +759,64 @@ func _Approval_UpdateSetting_Handler(srv interface{}, ctx context.Context, dec f return interceptor(ctx, in, info, handler) } +func _Approval_IsExistPayRight_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(IsExistPayRightRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("IsExistPayRight", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_ChangeBundlePay_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ChangeBundlePayRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("ChangeBundlePay", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + func _Approval_CreateType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(CreateTypeRequest) if err := dec(in); err != nil { @@ -972,6 +1054,14 @@ var Approval_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "UpdateSetting", Handler: _Approval_UpdateSetting_Handler, }, + { + MethodName: "IsExistPayRight", + Handler: _Approval_IsExistPayRight_Handler, + }, + { + MethodName: "ChangeBundlePay", + Handler: _Approval_ChangeBundlePay_Handler, + }, { MethodName: "CreateType", Handler: _Approval_CreateType_Handler, diff --git a/docs/env/prod/conf.ini b/docs/env/prod/conf.ini index 5c75bb8..c693236 100644 --- a/docs/env/prod/conf.ini +++ b/docs/env/prod/conf.ini @@ -2,15 +2,16 @@ mode = prod #正式prod #测试dev [mysql] -Db = mysql -DbHost = mysql -DbPort = 3306 -DbUser = fonchain -DbPassWord = C250PflXIWv2SQm -DbName = fontree-approval +Db="mysql" +DbHost="172.16.100.30" +DbPort="3306" +DbUser="root" +DbPassWord="IhQmhg8HZjDmU=Ove5PnA^D" +DbName="fontree-approval" [redis] RedisDB = -RedisAddr = 172.16.100.22:6379 -RedisPW = +RedisAddr = "172.16.100.114:6379" +RedisPW = "kP6tW4tS3qB2dW4aE6uI5cX2" RedisDBNAme = + diff --git a/go.mod b/go.mod index e397d5a..bcaff5f 100644 --- a/go.mod +++ b/go.mod @@ -9,9 +9,7 @@ require ( github.com/gin-gonic/gin v1.8.1 github.com/golang/protobuf v1.5.2 github.com/mwitkow/go-proto-validators v0.3.2 - github.com/natefinch/lumberjack v2.0.0+incompatible github.com/pkg/errors v0.9.1 - go.uber.org/zap v1.21.0 google.golang.org/protobuf v1.28.0 gopkg.in/ini.v1 v1.66.6 gorm.io/driver/mysql v1.3.5 @@ -94,6 +92,7 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mschoch/smat v0.2.0 // indirect github.com/nacos-group/nacos-sdk-go v1.1.1 // indirect + github.com/natefinch/lumberjack v2.0.0+incompatible // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pelletier/go-toml v1.7.0 // indirect github.com/pelletier/go-toml/v2 v2.0.1 // indirect @@ -130,6 +129,7 @@ require ( go.opentelemetry.io/otel/trace v1.7.0 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/multierr v1.6.0 // indirect + go.uber.org/zap v1.21.0 // indirect golang.org/x/crypto v0.0.0-20220214200702-86341886e292 // indirect golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 // indirect golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 // indirect diff --git a/pkg/model/approval.go b/pkg/model/approval.go index e644b8e..f4fd722 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -18,6 +18,7 @@ type KeyInfo struct { ApprovalName string ApprovalType string ApprovalValue string + ApprovalMark bool } type KeyInfos []KeyInfo @@ -42,9 +43,11 @@ type Approval struct { Reply string `gorm:"column:reply" json:"reply"` Domain *string `gorm:"column:domain" json:"domain"` Show *Show `gorm:"foreignKey:ApprovalID" json:"Show"` + ApprovalType *ApprovalType `gorm:"foreignKey:KeyWord;references:Type" json:"approvalType"` // type类型 Work *Work `gorm:"foreignKey:ApprovalID" json:"Work"` Bundle *Bundle `gorm:"foreignKey:ApprovalID" json:"Bundle"` Exhibition *Exhibition `gorm:"foreignKey:ApprovalID" json:"Exhibition"` + BundlePayPrice *BundlePayPrice `gorm:"foreignKey:ApprovalID" json:"BundlePayPrice"` //关联的type ApprovalWorkFlows []*ApprovalWorkFlow `gorm:"foreignKey:ApprovalID" json:"ApprovalWorkFlows"` } @@ -60,11 +63,12 @@ func (j KeyInfos) Value() (driver.Value, error) { } const ( - TypeContent = "content" - TypeWork = "work" - TypeExhibition = "exhibition" - TypeShow = "show" - TypeBundle = "bundle" + TypeContent = "content" + TypeWork = "work" + TypeExhibition = "exhibition" + TypeShow = "show" + TypeBundle = "bundle" + TypeBundlePayPrice = "bundlePayPrice" ) const ( StatusDoing = 1 @@ -192,6 +196,7 @@ func StoreApproval(in *approval.CreateRequest) (*Approval, error) { } fmt.Println(3) + fmt.Println(entity) if err := DB.Create(&entity).Error; err != nil { return err } @@ -320,6 +325,33 @@ func approvalCalc(filter *Approval) *approval.Information { return info } +func approvalCalcJsonV2(domain string, userId uint64) *approval.Information { + + var num int64 + var jsonStr = "json_contains(approval_users,json_object('id', ?))" + + info := &approval.Information{ + Total: 0, + DoingTotal: 0, + SuccessTotal: 0, + FailTotal: 0, + } + + DB.Model(&Approval{}).Where(jsonStr, userId).Count(&num) + info.Total = uint64(num) + + DB.Model(&Approval{}).Where(jsonStr, userId).Where(&Approval{Status: StatusDoing, Domain: &domain, NowUserId: userId}).Count(&num) + info.DoingTotal = uint64(num) + + DB.Model(&Approval{}).Where(jsonStr, userId).Where(&Approval{Status: StatusOk, Domain: &domain, NowUserId: userId}).Count(&num) + info.SuccessTotal = uint64(num) + + DB.Model(&Approval{}).Where(jsonStr, userId).Where(&Approval{Status: StatusFail, Domain: &domain, NowUserId: userId}).Count(&num) + info.FailTotal = uint64(num) + + return info +} + func approvalCalcJson(domain string, userId uint64) *approval.Information { var num int64 @@ -352,7 +384,7 @@ func ApprovalInfo(in *approval.InformationRequest) (*approval.InformationRespons response := &approval.InformationResponse{ MySubmitInfo: approvalCalc(&Approval{Domain: &in.Domain, SubmitterID: in.UserID}), - SubmitMeInfo: approvalCalcJson(in.Domain, in.UserID), + SubmitMeInfo: approvalCalcJsonV2(in.Domain, in.UserID), DomainInfo: approvalCalc(&Approval{Domain: &in.Domain}), } @@ -433,6 +465,7 @@ func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { Preload("Show"). Preload("Work.ApprovalWorks"). Preload("Bundle"). + Preload("ApprovalType.ApprovalTypeGroup"). Preload("ApprovalWorkFlows"). Preload("Exhibition.ApprovalExhibitions") @@ -455,6 +488,17 @@ func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID).Where("status = ?", StatusOk))) //抄送人(完成抄送) } + if in.ApprovedBossId != 0 { + + fmt.Println("---------1--------查看我已经审批过的") + subQuery2 := DB.Model(&ApprovalWorkFlow{}). + Where("status in (?)", []uint8{StatusOk, StatusFail}). + Where(&ApprovalWorkFlow{UserId: in.ApprovedBossId}). + Select("approval_id") + + modelObj = modelObj.Where("id in (?)", subQuery2) + } + if in.Status != 0 { modelObj = modelObj.Where(&Approval{Status: int8(in.Status)}) } @@ -476,6 +520,7 @@ func MySubmitApprovals(in *approval.ListRequest) ([]*Approval, int64) { Preload("Work.ApprovalWorks"). Preload("Bundle"). Preload("ApprovalWorkFlows"). + Preload("ApprovalType.ApprovalTypeGroup"). Preload("Exhibition.ApprovalExhibitions") if in.Status != 0 { @@ -562,6 +607,8 @@ func getApprovalContentFactory(typeFiled string) (ApprovalContentInterface, erro return &Bundle{}, nil case TypeExhibition: return &Exhibition{}, nil + case TypeBundlePayPrice: + return &BundlePayPrice{}, nil default: return &Approval{}, nil } diff --git a/pkg/model/approval_type.go b/pkg/model/approval_type.go index 1ee549c..1b9410c 100644 --- a/pkg/model/approval_type.go +++ b/pkg/model/approval_type.go @@ -40,11 +40,12 @@ var TypeMap = map[string]string{ } var keyWordMap = map[string]string{ - "普通审批": "content", - "画作申请审批": "work", - "画展包审批": "exhibition", - "画展包数量审批": "bundle", - "画展审批": "show", + "普通审批": "content", + "画作申请审批": "work", + "画展包审批": "exhibition", + "画展包数量审批": "bundle", + "画展审批": "show", + "画展包付款单申请": TypeBundlePayPrice, } func DataExist(domain, keyWork, title string) bool { @@ -74,6 +75,7 @@ func ToKeyInfos(infos []*approval.KeyInfo) KeyInfos { ApprovalName: t.ApprovalName, ApprovalType: t.ApprovalType, ApprovalValue: t.ApprovalValue, + ApprovalMark: t.ApprovalMark, } if temp.ApprovalKey == "" { diff --git a/pkg/model/bundle_pay_price.go b/pkg/model/bundle_pay_price.go new file mode 100644 index 0000000..75b5e55 --- /dev/null +++ b/pkg/model/bundle_pay_price.go @@ -0,0 +1,91 @@ +package model + +import ( + "errors" + "github.com/fonchain_enterprise/fonchain-approval/api/approval" + m2 "github.com/fonchain_enterprise/fonchain-approval/pkg/m" + "gorm.io/plugin/soft_delete" + "time" +) + +// BundlePayPrice 画展包付款单审批 +type BundlePayPrice struct { + ID uint64 `gorm:"column:id" json:"id"` + DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间 + CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间 + UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间 + ApprovalID uint64 `gorm:"type:int(11);column:approval_id;default:0;comment:画展的uid" json:"approvalId"` + ShowUid string `gorm:"type:varchar(32);column:show_uid;default:'';comment:画展的uid" json:"showUid"` + ShowName string `gorm:"type:varchar(32);column:show_name;default:'';comment:画展的名称" json:"showName"` + ReceivedAt string `gorm:"type:varchar(32);column:received_at;default:'';comment:领取时间" json:"receivedAt"` // 领取时间 + ShowDate string `gorm:"type:varchar(32);column:show_date;default:'';comment:画展时间" json:"showDate"` + ShowLowPrice string `gorm:"type:varchar(32);column:show_low_price;default:'';comment:画展宝低价" json:"showLowPrice"` + ArtworkNum uint64 `gorm:"type:int(11);column:artworkNum;default:0;comment:作品数量" json:"artworkNum"` + ArtworkSize string `gorm:"type:varchar(32);column:artwork_size;default:'';comment:作品总平尺" json:"artworkSize"` + ShowAddress string `gorm:"type:varchar(32);column:show_address;default:'';comment:画展地址" json:"showAddress"` + Status uint64 `gorm:"type:int(11);column:status;default:1;comment:状态" json:"status"` +} + +// TableName get sql table name.获取数据库表名 +func (m *BundlePayPrice) TableName() string { + return "bundle_pay_price" +} + +func (m *BundlePayPrice) SaveApprovalContent(in *approval.CreateRequest, a *Approval) error { + + m.ApprovalID = a.ID + m.ShowUid = in.BundlePayPrice.ShowUid + m.ShowName = in.BundlePayPrice.ShowName + m.ReceivedAt = in.BundlePayPrice.ReceivedAt + m.ShowDate = in.BundlePayPrice.ShowDate + m.ShowLowPrice = in.BundlePayPrice.ShowLowPrice + m.ArtworkNum = in.BundlePayPrice.ArtworkNum + m.ArtworkSize = in.BundlePayPrice.ArtworkSize + m.ShowAddress = in.BundlePayPrice.ShowAddress + + return DB.Create(&m).Error +} + +func (m *BundlePayPrice) UpdateApprovalContent(in *approval.CreateRequest, a *Approval) error { + + var entity *BundlePayPrice + + if err := DB.Where(&BundlePayPrice{ApprovalID: a.ID}).First(&entity).Error; err != nil { + return errors.New(m2.ErrorNotFound) + } + + m.ID = entity.ID + m.ShowUid = in.BundlePayPrice.ShowUid + m.ShowName = in.BundlePayPrice.ShowName + m.ReceivedAt = in.BundlePayPrice.ReceivedAt + m.ShowDate = in.BundlePayPrice.ShowDate + m.ShowLowPrice = in.BundlePayPrice.ShowLowPrice + m.ArtworkNum = in.BundlePayPrice.ArtworkNum + m.ArtworkSize = in.BundlePayPrice.ArtworkSize + m.ShowAddress = in.BundlePayPrice.ShowAddress + + return DB.Model(&m).Updates(m).Error +} + +func (m *BundlePayPrice) BuildResContent(a *Approval, request *approval.CreateRequest) { + + if a.BundlePayPrice != nil { + request.BundlePayPrice = &approval.BundlePayPrice{ + ShowUid: a.BundlePayPrice.ShowUid, + ApprovalID: a.BundlePayPrice.ApprovalID, + ShowName: a.BundlePayPrice.ShowName, + ReceivedAt: a.BundlePayPrice.ReceivedAt, + ShowDate: a.BundlePayPrice.ShowDate, + ShowLowPrice: a.BundlePayPrice.ShowLowPrice, + ArtworkNum: a.BundlePayPrice.ArtworkNum, + ArtworkSize: a.BundlePayPrice.ArtworkSize, + ShowAddress: a.BundlePayPrice.ShowAddress, + Status: a.BundlePayPrice.Status, + ID: a.BundlePayPrice.ID, + } + } +} + +func (m *BundlePayPrice) DeleteApproval(p *Approval) error { + return DB.Where(&BundlePayPrice{ApprovalID: p.ID}).Delete(&BundlePayPrice{}).Error +} diff --git a/pkg/model/migration.go b/pkg/model/migration.go index 8455041..5f77c25 100644 --- a/pkg/model/migration.go +++ b/pkg/model/migration.go @@ -8,6 +8,7 @@ import ( func migration() { //自动迁移模式 addTable(&ApprovalTypeGroup{}) + addTable(&BundlePayPrice{}) //增加字段 addColumn(&ApprovalType{}, "is_normal") @@ -24,6 +25,7 @@ func migration() { addColumn(&Work{}, "artist_uid") addColumn(&Approval{}, "value_json") + addColumn(&BundlePayPrice{}, "status") } //数据迁移 diff --git a/pkg/serializer/approval.go b/pkg/serializer/approval.go index f02f3f5..5b48cca 100644 --- a/pkg/serializer/approval.go +++ b/pkg/serializer/approval.go @@ -1,6 +1,7 @@ package serializer import ( + "fmt" "github.com/fonchain_enterprise/fonchain-approval/api/approval" "github.com/fonchain_enterprise/fonchain-approval/pkg/e" "github.com/fonchain_enterprise/fonchain-approval/pkg/model" @@ -84,7 +85,15 @@ func BuildApproval(entity *model.Approval, userId uint64) *approval.CreateReques response.IsCustom = e.Is_IsCustom_No } + if entity.ApprovalType != nil { + response.TypeName = entity.ApprovalType.Title + if entity.ApprovalType.ApprovalTypeGroup != nil { + response.GroupName = entity.ApprovalType.ApprovalTypeGroup.Title + } + } + _ = entity.SetResContent(response) + fmt.Println("check:", response.BundlePayPrice) return response } diff --git a/pkg/serializer/approval_type.go b/pkg/serializer/approval_type.go index de15ab1..cc507d4 100644 --- a/pkg/serializer/approval_type.go +++ b/pkg/serializer/approval_type.go @@ -39,6 +39,7 @@ func BuildKeyInfo(infos model.KeyInfos) []*approval.KeyInfo { ApprovalName: t.ApprovalName, ApprovalType: t.ApprovalType, ApprovalValue: t.ApprovalValue, + ApprovalMark: t.ApprovalMark, } keyInfos = append(keyInfos, temp) } diff --git a/pkg/service/approval.go b/pkg/service/approval.go index af51f75..b459e44 100644 --- a/pkg/service/approval.go +++ b/pkg/service/approval.go @@ -166,6 +166,34 @@ func (a *ApprovalProvider) Remove(ctx context.Context, in *approval.RemoveReques } +func (a *ApprovalProvider) ChangeBundlePay(ctx context.Context, in *approval.ChangeBundlePayRequest) (*approval.CommonResponse, error) { + response := &approval.CommonResponse{} + + m := &model.BundlePayPrice{Status: in.Status} + + model.DB.Model(&model.BundlePayPrice{}).Where(&model.BundlePayPrice{ID: in.ID}).Updates(&m) + + return response, nil +} + +func (a *ApprovalProvider) IsExistPayRight(ctx context.Context, in *approval.IsExistPayRightRequest) (*approval.IsExistPayRightResponse, error) { + response := &approval.IsExistPayRightResponse{IsPass: false} + + var err error + var count int64 + + subQuery1 := model.DB.Model(&model.Approval{}).Where(&model.Approval{SubmitterID: in.UserId, Type: model.TypeBundlePayPrice, Status: model.StatusOk}). + Select("id") + + model.DB.Model(&model.BundlePayPrice{}).Where("approval_id in (?)", subQuery1).Where(&model.BundlePayPrice{ShowUid: in.ShowUid}).Count(&count) + + if count >= 1 { + response.IsPass = true + } + + return response, err +} + func (a *ApprovalProvider) Detail(ctx context.Context, in *approval.DetailRequest) (*approval.CreateRequest, error) { response := &approval.CreateRequest{} var err error @@ -174,6 +202,8 @@ func (a *ApprovalProvider) Detail(ctx context.Context, in *approval.DetailReques Preload("Show"). Preload("Work.ApprovalWorks"). Preload("Bundle"). + Preload("ApprovalType"). + Preload("BundlePayPrice"). Preload("Exhibition.ApprovalExhibitions"). Preload("ApprovalWorkFlows"). First(&entity, in.ID).Error; err != nil { @@ -338,8 +368,15 @@ func (a *ApprovalProvider) CreateType(ctx context.Context, in *approval.CreateTy func (a *ApprovalProvider) DetailType(ctx context.Context, in *approval.TypeResponse) (*approval.CreateTypeRequest, error) { response := &approval.CreateTypeRequest{} var typeObj model.ApprovalType + var err error - if err := model.DB.Preload("ApprovalTypeGroup").First(&typeObj, in.ID).Error; err != nil { + if in.Keyword != "" { + err = model.DB.Preload("ApprovalTypeGroup").Where(&model.ApprovalType{KeyWord: in.Keyword}).First(&typeObj).Error + } else { + err = model.DB.Preload("ApprovalTypeGroup").First(&typeObj, in.ID).Error + } + + if err != nil { return nil, err }