diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index 74a99d3..60e49f4 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -20,6 +20,266 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type ViewedRequest 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"` + UserID uint64 `protobuf:"varint,3,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` +} + +func (x *ViewedRequest) Reset() { + *x = ViewedRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ViewedRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ViewedRequest) ProtoMessage() {} + +func (x *ViewedRequest) 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 ViewedRequest.ProtoReflect.Descriptor instead. +func (*ViewedRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{0} +} + +func (x *ViewedRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *ViewedRequest) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *ViewedRequest) GetUserID() uint64 { + if x != nil { + return x.UserID + } + return 0 +} + +type InformationRequest 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"` + Type string `protobuf:"bytes,3,opt,name=Type,json=type,proto3" json:"Type,omitempty"` +} + +func (x *InformationRequest) Reset() { + *x = InformationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InformationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InformationRequest) ProtoMessage() {} + +func (x *InformationRequest) 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 InformationRequest.ProtoReflect.Descriptor instead. +func (*InformationRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{1} +} + +func (x *InformationRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *InformationRequest) GetUserID() uint64 { + if x != nil { + return x.UserID + } + return 0 +} + +func (x *InformationRequest) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +type Information struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total uint64 `protobuf:"varint,1,opt,name=Total,json=total,proto3" json:"Total,omitempty"` // 已提交的审批 (总量) + DoingTotal uint64 `protobuf:"varint,2,opt,name=DoingTotal,json=doingTotal,proto3" json:"DoingTotal,omitempty"` // 正在审批数量 + SuccessTotal uint64 `protobuf:"varint,3,opt,name=SuccessTotal,json=successTotal,proto3" json:"SuccessTotal,omitempty"` // 审批完成数量 + FailTotal uint64 `protobuf:"varint,4,opt,name=FailTotal,json=failTotal,proto3" json:"FailTotal,omitempty"` // 审批未通过 +} + +func (x *Information) Reset() { + *x = Information{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Information) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Information) ProtoMessage() {} + +func (x *Information) 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 Information.ProtoReflect.Descriptor instead. +func (*Information) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{2} +} + +func (x *Information) GetTotal() uint64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *Information) GetDoingTotal() uint64 { + if x != nil { + return x.DoingTotal + } + return 0 +} + +func (x *Information) GetSuccessTotal() uint64 { + if x != nil { + return x.SuccessTotal + } + return 0 +} + +func (x *Information) GetFailTotal() uint64 { + if x != nil { + return x.FailTotal + } + return 0 +} + +type InformationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MySubmitInfo *Information `protobuf:"bytes,1,opt,name=MySubmitInfo,json=mySubmitInfo,proto3" json:"MySubmitInfo,omitempty"` // 我提交的; + SubmitMeInfo *Information `protobuf:"bytes,2,opt,name=SubmitMeInfo,json=submitMeInfo,proto3" json:"SubmitMeInfo,omitempty"` // 提交给我的; + DomainInfo *Information `protobuf:"bytes,3,opt,name=DomainInfo,json=domainInfo,proto3" json:"DomainInfo,omitempty"` // 大盘数据; +} + +func (x *InformationResponse) Reset() { + *x = InformationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InformationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InformationResponse) ProtoMessage() {} + +func (x *InformationResponse) 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 InformationResponse.ProtoReflect.Descriptor instead. +func (*InformationResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{3} +} + +func (x *InformationResponse) GetMySubmitInfo() *Information { + if x != nil { + return x.MySubmitInfo + } + return nil +} + +func (x *InformationResponse) GetSubmitMeInfo() *Information { + if x != nil { + return x.SubmitMeInfo + } + return nil +} + +func (x *InformationResponse) GetDomainInfo() *Information { + if x != nil { + return x.DomainInfo + } + return nil +} + type Bundle struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -34,7 +294,7 @@ type Bundle struct { func (x *Bundle) Reset() { *x = Bundle{} 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) } @@ -47,7 +307,7 @@ func (x *Bundle) String() string { func (*Bundle) ProtoMessage() {} func (x *Bundle) 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 { @@ -60,7 +320,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{0} + return file_api_approval_approval_proto_rawDescGZIP(), []int{4} } func (x *Bundle) GetID() uint64 { @@ -104,7 +364,7 @@ type Show struct { func (x *Show) Reset() { *x = Show{} 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) } @@ -117,7 +377,7 @@ func (x *Show) String() string { func (*Show) ProtoMessage() {} func (x *Show) 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 { @@ -130,7 +390,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{1} + return file_api_approval_approval_proto_rawDescGZIP(), []int{5} } func (x *Show) GetID() uint64 { @@ -160,9 +420,9 @@ type ApprovalWork struct { unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - WorkId uint64 `protobuf:"varint,2,opt,name=WorkId,proto3" json:"WorkId,omitempty"` - ApprovalID uint64 `protobuf:"varint,3,opt,name=ApprovalID,json=WorkId,proto3" json:"ApprovalID,omitempty"` - ArtworkId uint64 `protobuf:"varint,4,opt,name=ArtworkId,json=artworkId,proto3" json:"ArtworkId,omitempty"` + WorkID uint64 `protobuf:"varint,2,opt,name=WorkID,proto3" json:"WorkID,omitempty"` + ApprovalID uint64 `protobuf:"varint,3,opt,name=ApprovalID,proto3" json:"ApprovalID,omitempty"` + ArtworkID uint64 `protobuf:"varint,4,opt,name=ArtworkID,json=artworkID,proto3" json:"ArtworkID,omitempty"` ArtworkName string `protobuf:"bytes,5,opt,name=ArtworkName,json=artworkName,proto3" json:"ArtworkName,omitempty"` ArtistName string `protobuf:"bytes,6,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` ArtworkCover string `protobuf:"bytes,7,opt,name=ArtworkCover,json=artworkCover,proto3" json:"ArtworkCover,omitempty"` @@ -172,7 +432,7 @@ type ApprovalWork struct { func (x *ApprovalWork) Reset() { *x = ApprovalWork{} 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) } @@ -185,7 +445,7 @@ func (x *ApprovalWork) String() string { func (*ApprovalWork) ProtoMessage() {} func (x *ApprovalWork) 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 { @@ -198,7 +458,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{2} + return file_api_approval_approval_proto_rawDescGZIP(), []int{6} } func (x *ApprovalWork) GetID() uint64 { @@ -208,9 +468,9 @@ func (x *ApprovalWork) GetID() uint64 { return 0 } -func (x *ApprovalWork) GetWorkId() uint64 { +func (x *ApprovalWork) GetWorkID() uint64 { if x != nil { - return x.WorkId + return x.WorkID } return 0 } @@ -222,9 +482,9 @@ func (x *ApprovalWork) GetApprovalID() uint64 { return 0 } -func (x *ApprovalWork) GetArtworkId() uint64 { +func (x *ApprovalWork) GetArtworkID() uint64 { if x != nil { - return x.ArtworkId + return x.ArtworkID } return 0 } @@ -271,7 +531,7 @@ type Work struct { func (x *Work) Reset() { *x = Work{} 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) } @@ -284,7 +544,7 @@ func (x *Work) String() string { func (*Work) ProtoMessage() {} func (x *Work) 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 { @@ -297,7 +557,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{3} + return file_api_approval_approval_proto_rawDescGZIP(), []int{7} } func (x *Work) GetID() uint64 { @@ -333,19 +593,19 @@ type ApprovalExhibition struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - ExhibitionID uint64 `protobuf:"varint,2,opt,name=ExhibitionID,json=exhibitionID,proto3" json:"ExhibitionID,omitempty"` - ApprovalID uint64 `protobuf:"varint,3,opt,name=ApprovalID,proto3" json:"ApprovalID,omitempty"` - ExhibitionName string `protobuf:"bytes,4,opt,name=ExhibitionName,json=exhibitionName,proto3" json:"ExhibitionName,omitempty"` - ArtworkId uint64 `protobuf:"varint,5,opt,name=ArtworkId,json=artworkId,proto3" json:"ArtworkId,omitempty"` - ExhibitionSize uint64 `protobuf:"varint,6,opt,name=ExhibitionSize,json=exhibitionSize,proto3" json:"ExhibitionSize,omitempty"` - ExhibitionNumber string `protobuf:"bytes,7,opt,name=ExhibitionNumber,json=exhibitionNumber,proto3" json:"ExhibitionNumber,omitempty"` + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + ExhibitionID uint64 `protobuf:"varint,2,opt,name=ExhibitionID,json=exhibitionID,proto3" json:"ExhibitionID,omitempty"` + ApprovalID uint64 `protobuf:"varint,3,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + PackageName string `protobuf:"bytes,4,opt,name=PackageName,json=packageName,proto3" json:"PackageName,omitempty"` + PackageID uint64 `protobuf:"varint,5,opt,name=PackageID,json=packageID,proto3" json:"PackageID,omitempty"` + PackageSize uint64 `protobuf:"varint,6,opt,name=PackageSize,json=packageSize,proto3" json:"PackageSize,omitempty"` + PackageNumber string `protobuf:"bytes,7,opt,name=PackageNumber,json=packageNumber,proto3" json:"PackageNumber,omitempty"` } func (x *ApprovalExhibition) Reset() { *x = ApprovalExhibition{} 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) } @@ -358,7 +618,7 @@ func (x *ApprovalExhibition) String() string { func (*ApprovalExhibition) ProtoMessage() {} func (x *ApprovalExhibition) 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 { @@ -371,7 +631,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{4} + return file_api_approval_approval_proto_rawDescGZIP(), []int{8} } func (x *ApprovalExhibition) GetID() uint64 { @@ -395,30 +655,30 @@ func (x *ApprovalExhibition) GetApprovalID() uint64 { return 0 } -func (x *ApprovalExhibition) GetExhibitionName() string { +func (x *ApprovalExhibition) GetPackageName() string { if x != nil { - return x.ExhibitionName + return x.PackageName } return "" } -func (x *ApprovalExhibition) GetArtworkId() uint64 { +func (x *ApprovalExhibition) GetPackageID() uint64 { if x != nil { - return x.ArtworkId + return x.PackageID } return 0 } -func (x *ApprovalExhibition) GetExhibitionSize() uint64 { +func (x *ApprovalExhibition) GetPackageSize() uint64 { if x != nil { - return x.ExhibitionSize + return x.PackageSize } return 0 } -func (x *ApprovalExhibition) GetExhibitionNumber() string { +func (x *ApprovalExhibition) GetPackageNumber() string { if x != nil { - return x.ExhibitionNumber + return x.PackageNumber } return "" } @@ -437,7 +697,7 @@ type Exhibition struct { func (x *Exhibition) Reset() { *x = Exhibition{} 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) } @@ -450,7 +710,7 @@ func (x *Exhibition) String() string { func (*Exhibition) ProtoMessage() {} func (x *Exhibition) 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 { @@ -463,7 +723,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{5} + return file_api_approval_approval_proto_rawDescGZIP(), []int{9} } func (x *Exhibition) GetID() uint64 { @@ -509,7 +769,7 @@ type ApprovalListRequest struct { func (x *ApprovalListRequest) Reset() { *x = ApprovalListRequest{} 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) } @@ -522,7 +782,7 @@ func (x *ApprovalListRequest) String() string { func (*ApprovalListRequest) ProtoMessage() {} func (x *ApprovalListRequest) 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 { @@ -535,7 +795,7 @@ func (x *ApprovalListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApprovalListRequest.ProtoReflect.Descriptor instead. func (*ApprovalListRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{6} + return file_api_approval_approval_proto_rawDescGZIP(), []int{10} } func (x *ApprovalListRequest) GetDomain() string { @@ -585,7 +845,7 @@ type ApprovalListResponse struct { func (x *ApprovalListResponse) Reset() { *x = ApprovalListResponse{} 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) } @@ -598,7 +858,7 @@ func (x *ApprovalListResponse) String() string { func (*ApprovalListResponse) ProtoMessage() {} func (x *ApprovalListResponse) 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 { @@ -611,7 +871,7 @@ func (x *ApprovalListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ApprovalListResponse.ProtoReflect.Descriptor instead. func (*ApprovalListResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{7} + return file_api_approval_approval_proto_rawDescGZIP(), []int{11} } func (x *ApprovalListResponse) GetCount() uint64 { @@ -637,9 +897,9 @@ type ApprovalRequest struct { 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"` //0待审批 1-审批成功 2-拒绝 Type string `protobuf:"bytes,4,opt,name=Type,json=type,proto3" json:"Type,omitempty"` //类型 - ApproverId uint64 `protobuf:"varint,5,opt,name=ApproverId,json=approverId,proto3" json:"ApproverId,omitempty"` //申请人 + ApproverID uint64 `protobuf:"varint,5,opt,name=ApproverID,json=approverID,proto3" json:"ApproverID,omitempty"` //申请人 ApproverName string `protobuf:"bytes,6,opt,name=ApproverName,json=approverName,proto3" json:"ApproverName,omitempty"` - SubmitterId uint64 `protobuf:"varint,7,opt,name=SubmitterId,json=submitterId,proto3" json:"SubmitterId,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"` //申请内容 @@ -653,7 +913,7 @@ type ApprovalRequest struct { func (x *ApprovalRequest) Reset() { *x = ApprovalRequest{} 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) } @@ -666,7 +926,7 @@ func (x *ApprovalRequest) String() string { func (*ApprovalRequest) ProtoMessage() {} func (x *ApprovalRequest) 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 { @@ -679,7 +939,7 @@ func (x *ApprovalRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApprovalRequest.ProtoReflect.Descriptor instead. func (*ApprovalRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{8} + return file_api_approval_approval_proto_rawDescGZIP(), []int{12} } func (x *ApprovalRequest) GetID() uint64 { @@ -710,9 +970,9 @@ func (x *ApprovalRequest) GetType() string { return "" } -func (x *ApprovalRequest) GetApproverId() uint64 { +func (x *ApprovalRequest) GetApproverID() uint64 { if x != nil { - return x.ApproverId + return x.ApproverID } return 0 } @@ -724,9 +984,9 @@ func (x *ApprovalRequest) GetApproverName() string { return "" } -func (x *ApprovalRequest) GetSubmitterId() uint64 { +func (x *ApprovalRequest) GetSubmitterID() uint64 { if x != nil { - return x.SubmitterId + return x.SubmitterID } return 0 } @@ -787,102 +1047,7 @@ func (x *ApprovalRequest) GetBundle() *Bundle { return nil } -type ExhibitionNumRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` - UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` - ReceivedAt string `protobuf:"bytes,5,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` - ApplicationsNum uint64 `protobuf:"varint,6,opt,name=ApplicationsNum,json=applicationsNum,proto3" json:"ApplicationsNum,omitempty"` - ApprovalId uint64 `protobuf:"varint,7,opt,name=ApprovalId,json=approvalId,proto3" json:"ApprovalId,omitempty"` -} - -func (x *ExhibitionNumRequest) Reset() { - *x = ExhibitionNumRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ExhibitionNumRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ExhibitionNumRequest) ProtoMessage() {} - -func (x *ExhibitionNumRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[9] - 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 ExhibitionNumRequest.ProtoReflect.Descriptor instead. -func (*ExhibitionNumRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{9} -} - -func (x *ExhibitionNumRequest) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ExhibitionNumRequest) GetDeletedAt() uint64 { - if x != nil { - return x.DeletedAt - } - return 0 -} - -func (x *ExhibitionNumRequest) GetCreatedAt() string { - if x != nil { - return x.CreatedAt - } - return "" -} - -func (x *ExhibitionNumRequest) GetUpdatedAt() string { - if x != nil { - return x.UpdatedAt - } - return "" -} - -func (x *ExhibitionNumRequest) GetReceivedAt() string { - if x != nil { - return x.ReceivedAt - } - return "" -} - -func (x *ExhibitionNumRequest) GetApplicationsNum() uint64 { - if x != nil { - return x.ApplicationsNum - } - return 0 -} - -func (x *ExhibitionNumRequest) GetApprovalId() uint64 { - if x != nil { - return x.ApprovalId - } - return 0 -} - -type ExhibitionNumDetail struct { +type ApprovalDetail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -891,23 +1056,23 @@ type ExhibitionNumDetail struct { Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` } -func (x *ExhibitionNumDetail) Reset() { - *x = ExhibitionNumDetail{} +func (x *ApprovalDetail) Reset() { + *x = ApprovalDetail{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[10] + mi := &file_api_approval_approval_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ExhibitionNumDetail) String() string { +func (x *ApprovalDetail) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ExhibitionNumDetail) ProtoMessage() {} +func (*ApprovalDetail) ProtoMessage() {} -func (x *ExhibitionNumDetail) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[10] +func (x *ApprovalDetail) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -918,26 +1083,26 @@ func (x *ExhibitionNumDetail) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ExhibitionNumDetail.ProtoReflect.Descriptor instead. -func (*ExhibitionNumDetail) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{10} +// Deprecated: Use ApprovalDetail.ProtoReflect.Descriptor instead. +func (*ApprovalDetail) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{13} } -func (x *ExhibitionNumDetail) GetID() uint64 { +func (x *ApprovalDetail) GetID() uint64 { if x != nil { return x.ID } return 0 } -func (x *ExhibitionNumDetail) GetDomain() string { +func (x *ApprovalDetail) GetDomain() string { if x != nil { return x.Domain } return "" } -type ExhibitionNumResponse struct { +type ApprovalResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -946,23 +1111,23 @@ type ExhibitionNumResponse struct { Success bool `protobuf:"varint,2,opt,name=Success,json=success,proto3" json:"Success,omitempty"` } -func (x *ExhibitionNumResponse) Reset() { - *x = ExhibitionNumResponse{} +func (x *ApprovalResponse) Reset() { + *x = ApprovalResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[11] + mi := &file_api_approval_approval_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ExhibitionNumResponse) String() string { +func (x *ApprovalResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ExhibitionNumResponse) ProtoMessage() {} +func (*ApprovalResponse) ProtoMessage() {} -func (x *ExhibitionNumResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[11] +func (x *ApprovalResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -973,26 +1138,26 @@ func (x *ExhibitionNumResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ExhibitionNumResponse.ProtoReflect.Descriptor instead. -func (*ExhibitionNumResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{11} +// Deprecated: Use ApprovalResponse.ProtoReflect.Descriptor instead. +func (*ApprovalResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{14} } -func (x *ExhibitionNumResponse) GetID() uint64 { +func (x *ApprovalResponse) GetID() uint64 { if x != nil { return x.ID } return 0 } -func (x *ExhibitionNumResponse) GetSuccess() bool { +func (x *ApprovalResponse) GetSuccess() bool { if x != nil { return x.Success } return false } -type ExhibitionNumRemove struct { +type ApprovalRemove struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1000,23 +1165,23 @@ type ExhibitionNumRemove struct { Success bool `protobuf:"varint,1,opt,name=Success,json=success,proto3" json:"Success,omitempty"` } -func (x *ExhibitionNumRemove) Reset() { - *x = ExhibitionNumRemove{} +func (x *ApprovalRemove) Reset() { + *x = ApprovalRemove{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[12] + mi := &file_api_approval_approval_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ExhibitionNumRemove) String() string { +func (x *ApprovalRemove) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ExhibitionNumRemove) ProtoMessage() {} +func (*ApprovalRemove) ProtoMessage() {} -func (x *ExhibitionNumRemove) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[12] +func (x *ApprovalRemove) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1027,44 +1192,43 @@ func (x *ExhibitionNumRemove) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ExhibitionNumRemove.ProtoReflect.Descriptor instead. -func (*ExhibitionNumRemove) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{12} +// Deprecated: Use ApprovalRemove.ProtoReflect.Descriptor instead. +func (*ApprovalRemove) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{15} } -func (x *ExhibitionNumRemove) GetSuccess() bool { +func (x *ApprovalRemove) GetSuccess() bool { if x != nil { return x.Success } return false } -type WorkResponse struct { +type ApprovalExhibitionRemove struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Success bool `protobuf:"varint,2,opt,name=Success,json=success,proto3" json:"Success,omitempty"` + Success bool `protobuf:"varint,1,opt,name=Success,json=success,proto3" json:"Success,omitempty"` } -func (x *WorkResponse) Reset() { - *x = WorkResponse{} +func (x *ApprovalExhibitionRemove) Reset() { + *x = ApprovalExhibitionRemove{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[13] + mi := &file_api_approval_approval_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WorkResponse) String() string { +func (x *ApprovalExhibitionRemove) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WorkResponse) ProtoMessage() {} +func (*ApprovalExhibitionRemove) ProtoMessage() {} -func (x *WorkResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[13] +func (x *ApprovalExhibitionRemove) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1075,50 +1239,52 @@ func (x *WorkResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WorkResponse.ProtoReflect.Descriptor instead. -func (*WorkResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{13} -} - -func (x *WorkResponse) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 +// Deprecated: Use ApprovalExhibitionRemove.ProtoReflect.Descriptor instead. +func (*ApprovalExhibitionRemove) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{16} } -func (x *WorkResponse) GetSuccess() bool { +func (x *ApprovalExhibitionRemove) GetSuccess() bool { if x != nil { return x.Success } return false } -type WorkRemove struct { +type ApprovalExhibitionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Success bool `protobuf:"varint,1,opt,name=Success,json=success,proto3" json:"Success,omitempty"` + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` + CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` + UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` + ApprovalID uint64 `protobuf:"varint,5,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + ExhibitionID uint64 `protobuf:"varint,6,opt,name=ExhibitionID,json=exhibitionID,proto3" json:"ExhibitionID,omitempty"` + ExhibitionName string `protobuf:"bytes,7,opt,name=ExhibitionName,json=exhibitionName,proto3" json:"ExhibitionName,omitempty"` + ArtworkID uint64 `protobuf:"varint,8,opt,name=ArtworkID,json=artworkID,proto3" json:"ArtworkID,omitempty"` + ExhibitionSize string `protobuf:"bytes,9,opt,name=ExhibitionSize,json=exhibitionSize,proto3" json:"ExhibitionSize,omitempty"` + ExhibitionNumber string `protobuf:"bytes,10,opt,name=ExhibitionNumber,json=exhibitionNumber,proto3" json:"ExhibitionNumber,omitempty"` } -func (x *WorkRemove) Reset() { - *x = WorkRemove{} +func (x *ApprovalExhibitionRequest) Reset() { + *x = ApprovalExhibitionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[14] + mi := &file_api_approval_approval_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WorkRemove) String() string { +func (x *ApprovalExhibitionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WorkRemove) ProtoMessage() {} +func (*ApprovalExhibitionRequest) ProtoMessage() {} -func (x *WorkRemove) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[14] +func (x *ApprovalExhibitionRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1129,106 +1295,82 @@ func (x *WorkRemove) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WorkRemove.ProtoReflect.Descriptor instead. -func (*WorkRemove) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{14} +// Deprecated: Use ApprovalExhibitionRequest.ProtoReflect.Descriptor instead. +func (*ApprovalExhibitionRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{17} } -func (x *WorkRemove) GetSuccess() bool { +func (x *ApprovalExhibitionRequest) GetID() uint64 { if x != nil { - return x.Success + return x.ID } - return false -} - -type WorkRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` - UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` - ReturnAt string `protobuf:"bytes,5,opt,name=ReturnAt,json=returnAt,proto3" json:"ReturnAt,omitempty"` - ReceivedAt string `protobuf:"bytes,6,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` + return 0 } -func (x *WorkRequest) Reset() { - *x = WorkRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ApprovalExhibitionRequest) GetDeletedAt() uint64 { + if x != nil { + return x.DeletedAt } + return 0 } -func (x *WorkRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WorkRequest) ProtoMessage() {} - -func (x *WorkRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ApprovalExhibitionRequest) GetCreatedAt() string { + if x != nil { + return x.CreatedAt } - return mi.MessageOf(x) + return "" } -// Deprecated: Use WorkRequest.ProtoReflect.Descriptor instead. -func (*WorkRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{15} +func (x *ApprovalExhibitionRequest) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" } -func (x *WorkRequest) GetID() uint64 { +func (x *ApprovalExhibitionRequest) GetApprovalID() uint64 { if x != nil { - return x.ID + return x.ApprovalID } return 0 } -func (x *WorkRequest) GetDeletedAt() uint64 { +func (x *ApprovalExhibitionRequest) GetExhibitionID() uint64 { if x != nil { - return x.DeletedAt + return x.ExhibitionID } return 0 } -func (x *WorkRequest) GetCreatedAt() string { +func (x *ApprovalExhibitionRequest) GetExhibitionName() string { if x != nil { - return x.CreatedAt + return x.ExhibitionName } return "" } -func (x *WorkRequest) GetUpdatedAt() string { +func (x *ApprovalExhibitionRequest) GetArtworkID() uint64 { if x != nil { - return x.UpdatedAt + return x.ArtworkID } - return "" + return 0 } -func (x *WorkRequest) GetReturnAt() string { +func (x *ApprovalExhibitionRequest) GetExhibitionSize() string { if x != nil { - return x.ReturnAt + return x.ExhibitionSize } return "" } -func (x *WorkRequest) GetReceivedAt() string { +func (x *ApprovalExhibitionRequest) GetExhibitionNumber() string { if x != nil { - return x.ReceivedAt + return x.ExhibitionNumber } return "" } -type WorkDetail struct { +type ApprovalExhibitionDetail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1237,23 +1379,23 @@ type WorkDetail struct { Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` } -func (x *WorkDetail) Reset() { - *x = WorkDetail{} +func (x *ApprovalExhibitionDetail) Reset() { + *x = ApprovalExhibitionDetail{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[16] + mi := &file_api_approval_approval_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WorkDetail) String() string { +func (x *ApprovalExhibitionDetail) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WorkDetail) ProtoMessage() {} +func (*ApprovalExhibitionDetail) ProtoMessage() {} -func (x *WorkDetail) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[16] +func (x *ApprovalExhibitionDetail) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1264,768 +1406,51 @@ func (x *WorkDetail) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WorkDetail.ProtoReflect.Descriptor instead. -func (*WorkDetail) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{16} +// Deprecated: Use ApprovalExhibitionDetail.ProtoReflect.Descriptor instead. +func (*ApprovalExhibitionDetail) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{18} } -func (x *WorkDetail) GetID() uint64 { +func (x *ApprovalExhibitionDetail) GetID() uint64 { if x != nil { return x.ID } return 0 } -func (x *WorkDetail) GetDomain() string { +func (x *ApprovalExhibitionDetail) GetDomain() string { if x != nil { return x.Domain } return "" } -type ApprovalDetail struct { +type CopyUser struct { state protoimpl.MessageState 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"` + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,json=name,proto3" json:"Name,omitempty"` } -func (x *ApprovalDetail) Reset() { - *x = ApprovalDetail{} +func (x *CopyUser) Reset() { + *x = CopyUser{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[17] + mi := &file_api_approval_approval_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ApprovalDetail) String() string { +func (x *CopyUser) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ApprovalDetail) ProtoMessage() {} - -func (x *ApprovalDetail) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[17] - 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 ApprovalDetail.ProtoReflect.Descriptor instead. -func (*ApprovalDetail) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{17} -} - -func (x *ApprovalDetail) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ApprovalDetail) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -type ApprovalResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Success bool `protobuf:"varint,2,opt,name=Success,json=success,proto3" json:"Success,omitempty"` -} - -func (x *ApprovalResponse) Reset() { - *x = ApprovalResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalResponse) ProtoMessage() {} - -func (x *ApprovalResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[18] - 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 ApprovalResponse.ProtoReflect.Descriptor instead. -func (*ApprovalResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{18} -} - -func (x *ApprovalResponse) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ApprovalResponse) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - -type ApprovalRemove struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=Success,json=success,proto3" json:"Success,omitempty"` -} - -func (x *ApprovalRemove) Reset() { - *x = ApprovalRemove{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalRemove) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalRemove) ProtoMessage() {} - -func (x *ApprovalRemove) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[19] - 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 ApprovalRemove.ProtoReflect.Descriptor instead. -func (*ApprovalRemove) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{19} -} - -func (x *ApprovalRemove) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - -type ApprovalExhibitionRemove struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=Success,json=success,proto3" json:"Success,omitempty"` -} - -func (x *ApprovalExhibitionRemove) Reset() { - *x = ApprovalExhibitionRemove{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalExhibitionRemove) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalExhibitionRemove) ProtoMessage() {} - -func (x *ApprovalExhibitionRemove) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[20] - 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 ApprovalExhibitionRemove.ProtoReflect.Descriptor instead. -func (*ApprovalExhibitionRemove) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{20} -} - -func (x *ApprovalExhibitionRemove) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - -type ApprovalExhibitionRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` - UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` - ApprovalId uint64 `protobuf:"varint,5,opt,name=ApprovalId,json=approvalId,proto3" json:"ApprovalId,omitempty"` - ExhibitionId uint64 `protobuf:"varint,6,opt,name=ExhibitionId,json=exhibitionId,proto3" json:"ExhibitionId,omitempty"` - ExhibitionName string `protobuf:"bytes,7,opt,name=ExhibitionName,json=exhibitionName,proto3" json:"ExhibitionName,omitempty"` - ArtworkId uint64 `protobuf:"varint,8,opt,name=ArtworkId,json=artworkId,proto3" json:"ArtworkId,omitempty"` - ExhibitionSize string `protobuf:"bytes,9,opt,name=ExhibitionSize,json=exhibitionSize,proto3" json:"ExhibitionSize,omitempty"` - ExhibitionNumber string `protobuf:"bytes,10,opt,name=ExhibitionNumber,json=exhibitionNumber,proto3" json:"ExhibitionNumber,omitempty"` -} - -func (x *ApprovalExhibitionRequest) Reset() { - *x = ApprovalExhibitionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalExhibitionRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalExhibitionRequest) ProtoMessage() {} - -func (x *ApprovalExhibitionRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[21] - 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 ApprovalExhibitionRequest.ProtoReflect.Descriptor instead. -func (*ApprovalExhibitionRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{21} -} - -func (x *ApprovalExhibitionRequest) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ApprovalExhibitionRequest) GetDeletedAt() uint64 { - if x != nil { - return x.DeletedAt - } - return 0 -} - -func (x *ApprovalExhibitionRequest) GetCreatedAt() string { - if x != nil { - return x.CreatedAt - } - return "" -} - -func (x *ApprovalExhibitionRequest) GetUpdatedAt() string { - if x != nil { - return x.UpdatedAt - } - return "" -} - -func (x *ApprovalExhibitionRequest) GetApprovalId() uint64 { - if x != nil { - return x.ApprovalId - } - return 0 -} - -func (x *ApprovalExhibitionRequest) GetExhibitionId() uint64 { - if x != nil { - return x.ExhibitionId - } - return 0 -} - -func (x *ApprovalExhibitionRequest) GetExhibitionName() string { - if x != nil { - return x.ExhibitionName - } - return "" -} - -func (x *ApprovalExhibitionRequest) GetArtworkId() uint64 { - if x != nil { - return x.ArtworkId - } - return 0 -} - -func (x *ApprovalExhibitionRequest) GetExhibitionSize() string { - if x != nil { - return x.ExhibitionSize - } - return "" -} - -func (x *ApprovalExhibitionRequest) GetExhibitionNumber() string { - if x != nil { - return x.ExhibitionNumber - } - return "" -} - -type ApprovalExhibitionDetail struct { - state protoimpl.MessageState - 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"` -} - -func (x *ApprovalExhibitionDetail) Reset() { - *x = ApprovalExhibitionDetail{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalExhibitionDetail) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalExhibitionDetail) ProtoMessage() {} - -func (x *ApprovalExhibitionDetail) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[22] - 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 ApprovalExhibitionDetail.ProtoReflect.Descriptor instead. -func (*ApprovalExhibitionDetail) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{22} -} - -func (x *ApprovalExhibitionDetail) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ApprovalExhibitionDetail) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -type ApprovalExhibitionResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Success bool `protobuf:"varint,2,opt,name=Success,json=success,proto3" json:"Success,omitempty"` -} - -func (x *ApprovalExhibitionResponse) Reset() { - *x = ApprovalExhibitionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalExhibitionResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalExhibitionResponse) ProtoMessage() {} - -func (x *ApprovalExhibitionResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[23] - 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 ApprovalExhibitionResponse.ProtoReflect.Descriptor instead. -func (*ApprovalExhibitionResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{23} -} - -func (x *ApprovalExhibitionResponse) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ApprovalExhibitionResponse) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - -type ApprovalWorkRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` - UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` - ApprovalId uint64 `protobuf:"varint,5,opt,name=ApprovalId,json=approvalId,proto3" json:"ApprovalId,omitempty"` - WorkId uint64 `protobuf:"varint,6,opt,name=WorkId,json=workId,proto3" json:"WorkId,omitempty"` - ArtworkId uint64 `protobuf:"varint,7,opt,name=ArtworkId,json=artworkId,proto3" json:"ArtworkId,omitempty"` - ArtworkName string `protobuf:"bytes,8,opt,name=ArtworkName,json=artworkName,proto3" json:"ArtworkName,omitempty"` - ArtistName string `protobuf:"bytes,9,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` - ArtworkCover string `protobuf:"bytes,10,opt,name=ArtworkCover,json=artworkCover,proto3" json:"ArtworkCover,omitempty"` - ArtworkNumber string `protobuf:"bytes,11,opt,name=ArtworkNumber,json=artworkNumber,proto3" json:"ArtworkNumber,omitempty"` -} - -func (x *ApprovalWorkRequest) Reset() { - *x = ApprovalWorkRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalWorkRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalWorkRequest) ProtoMessage() {} - -func (x *ApprovalWorkRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[24] - 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 ApprovalWorkRequest.ProtoReflect.Descriptor instead. -func (*ApprovalWorkRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{24} -} - -func (x *ApprovalWorkRequest) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ApprovalWorkRequest) GetDeletedAt() uint64 { - if x != nil { - return x.DeletedAt - } - return 0 -} - -func (x *ApprovalWorkRequest) GetCreatedAt() string { - if x != nil { - return x.CreatedAt - } - return "" -} - -func (x *ApprovalWorkRequest) GetUpdatedAt() string { - if x != nil { - return x.UpdatedAt - } - return "" -} - -func (x *ApprovalWorkRequest) GetApprovalId() uint64 { - if x != nil { - return x.ApprovalId - } - return 0 -} - -func (x *ApprovalWorkRequest) GetWorkId() uint64 { - if x != nil { - return x.WorkId - } - return 0 -} - -func (x *ApprovalWorkRequest) GetArtworkId() uint64 { - if x != nil { - return x.ArtworkId - } - return 0 -} - -func (x *ApprovalWorkRequest) GetArtworkName() string { - if x != nil { - return x.ArtworkName - } - return "" -} - -func (x *ApprovalWorkRequest) GetArtistName() string { - if x != nil { - return x.ArtistName - } - return "" -} - -func (x *ApprovalWorkRequest) GetArtworkCover() string { - if x != nil { - return x.ArtworkCover - } - return "" -} - -func (x *ApprovalWorkRequest) GetArtworkNumber() string { - if x != nil { - return x.ArtworkNumber - } - return "" -} - -type ApprovalWorkDetail struct { - state protoimpl.MessageState - 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"` -} - -func (x *ApprovalWorkDetail) Reset() { - *x = ApprovalWorkDetail{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalWorkDetail) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalWorkDetail) ProtoMessage() {} - -func (x *ApprovalWorkDetail) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[25] - 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 ApprovalWorkDetail.ProtoReflect.Descriptor instead. -func (*ApprovalWorkDetail) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{25} -} - -func (x *ApprovalWorkDetail) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ApprovalWorkDetail) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -type ApprovalWorkResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Success bool `protobuf:"varint,2,opt,name=Success,json=success,proto3" json:"Success,omitempty"` -} - -func (x *ApprovalWorkResponse) Reset() { - *x = ApprovalWorkResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalWorkResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalWorkResponse) ProtoMessage() {} - -func (x *ApprovalWorkResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[26] - 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 ApprovalWorkResponse.ProtoReflect.Descriptor instead. -func (*ApprovalWorkResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{26} -} - -func (x *ApprovalWorkResponse) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ApprovalWorkResponse) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - -type ApprovalWorkRemove struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=Success,json=success,proto3" json:"Success,omitempty"` -} - -func (x *ApprovalWorkRemove) Reset() { - *x = ApprovalWorkRemove{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalWorkRemove) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalWorkRemove) ProtoMessage() {} - -func (x *ApprovalWorkRemove) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[27] - 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 ApprovalWorkRemove.ProtoReflect.Descriptor instead. -func (*ApprovalWorkRemove) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{27} -} - -func (x *ApprovalWorkRemove) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - -type CopyUser struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,json=name,proto3" json:"Name,omitempty"` -} - -func (x *CopyUser) Reset() { - *x = CopyUser{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CopyUser) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CopyUser) ProtoMessage() {} +func (*CopyUser) ProtoMessage() {} func (x *CopyUser) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[28] + mi := &file_api_approval_approval_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2038,7 +1463,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{28} + return file_api_approval_approval_proto_rawDescGZIP(), []int{19} } func (x *CopyUser) GetID() uint64 { @@ -2064,9 +1489,9 @@ type SettingRequest struct { DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` - DepartmentId uint64 `protobuf:"varint,5,opt,name=DepartmentId,json=departmentId,proto3" json:"DepartmentId,omitempty"` + DepartmentID uint64 `protobuf:"varint,5,opt,name=DepartmentID,json=departmentID,proto3" json:"DepartmentID,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,6,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` - ApproverId uint64 `protobuf:"varint,7,opt,name=ApproverId,json=approverId,proto3" json:"ApproverId,omitempty"` + ApproverID uint64 `protobuf:"varint,7,opt,name=ApproverID,json=approverID,proto3" json:"ApproverID,omitempty"` ApproverName string `protobuf:"bytes,8,opt,name=ApproverName,json=approverName,proto3" json:"ApproverName,omitempty"` Domain string `protobuf:"bytes,9,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` } @@ -2074,7 +1499,7 @@ type SettingRequest struct { func (x *SettingRequest) Reset() { *x = SettingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[29] + mi := &file_api_approval_approval_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2087,7 +1512,7 @@ func (x *SettingRequest) String() string { func (*SettingRequest) ProtoMessage() {} func (x *SettingRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[29] + mi := &file_api_approval_approval_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2100,7 +1525,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{29} + return file_api_approval_approval_proto_rawDescGZIP(), []int{20} } func (x *SettingRequest) GetID() uint64 { @@ -2131,9 +1556,9 @@ func (x *SettingRequest) GetUpdatedAt() string { return "" } -func (x *SettingRequest) GetDepartmentId() uint64 { +func (x *SettingRequest) GetDepartmentID() uint64 { if x != nil { - return x.DepartmentId + return x.DepartmentID } return 0 } @@ -2145,352 +1570,53 @@ func (x *SettingRequest) GetCopyUsers() []*CopyUser { return nil } -func (x *SettingRequest) GetApproverId() uint64 { - if x != nil { - return x.ApproverId - } - return 0 -} - -func (x *SettingRequest) GetApproverName() string { - if x != nil { - return x.ApproverName - } - return "" -} - -func (x *SettingRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -type DetailSettingRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DepartmentId uint64 `protobuf:"varint,1,opt,name=DepartmentId,json=departmentId,proto3" json:"DepartmentId,omitempty"` - Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` -} - -func (x *DetailSettingRequest) Reset() { - *x = DetailSettingRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DetailSettingRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DetailSettingRequest) ProtoMessage() {} - -func (x *DetailSettingRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[30] - 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 DetailSettingRequest.ProtoReflect.Descriptor instead. -func (*DetailSettingRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{30} -} - -func (x *DetailSettingRequest) GetDepartmentId() uint64 { - if x != nil { - return x.DepartmentId - } - return 0 -} - -func (x *DetailSettingRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -type SettingResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Success bool `protobuf:"varint,2,opt,name=Success,json=success,proto3" json:"Success,omitempty"` -} - -func (x *SettingResponse) Reset() { - *x = SettingResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SettingResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SettingResponse) ProtoMessage() {} - -func (x *SettingResponse) 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 SettingResponse.ProtoReflect.Descriptor instead. -func (*SettingResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{31} -} - -func (x *SettingResponse) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *SettingResponse) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - -type DepartmentApprovalSettingRemove struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=Success,json=success,proto3" json:"Success,omitempty"` -} - -func (x *DepartmentApprovalSettingRemove) Reset() { - *x = DepartmentApprovalSettingRemove{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DepartmentApprovalSettingRemove) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DepartmentApprovalSettingRemove) ProtoMessage() {} - -func (x *DepartmentApprovalSettingRemove) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[32] - 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 DepartmentApprovalSettingRemove.ProtoReflect.Descriptor instead. -func (*DepartmentApprovalSettingRemove) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{32} -} - -func (x *DepartmentApprovalSettingRemove) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - -type ExhibitionRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` - UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` - ReceivedAt string `protobuf:"bytes,5,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` - ApprovalId uint64 `protobuf:"varint,6,opt,name=ApprovalId,json=approvalId,proto3" json:"ApprovalId,omitempty"` -} - -func (x *ExhibitionRequest) Reset() { - *x = ExhibitionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ExhibitionRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ExhibitionRequest) ProtoMessage() {} - -func (x *ExhibitionRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[33] - 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 ExhibitionRequest.ProtoReflect.Descriptor instead. -func (*ExhibitionRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{33} -} - -func (x *ExhibitionRequest) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ExhibitionRequest) GetDeletedAt() uint64 { - if x != nil { - return x.DeletedAt - } - return 0 -} - -func (x *ExhibitionRequest) GetCreatedAt() string { - if x != nil { - return x.CreatedAt - } - return "" -} - -func (x *ExhibitionRequest) GetUpdatedAt() string { - if x != nil { - return x.UpdatedAt - } - return "" -} - -func (x *ExhibitionRequest) GetReceivedAt() string { - if x != nil { - return x.ReceivedAt - } - return "" -} - -func (x *ExhibitionRequest) GetApprovalId() uint64 { - if x != nil { - return x.ApprovalId - } - return 0 -} - -type ExhibitionDetail struct { - state protoimpl.MessageState - 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"` -} - -func (x *ExhibitionDetail) Reset() { - *x = ExhibitionDetail{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ExhibitionDetail) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ExhibitionDetail) ProtoMessage() {} - -func (x *ExhibitionDetail) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[34] - 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 ExhibitionDetail.ProtoReflect.Descriptor instead. -func (*ExhibitionDetail) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{34} +func (x *SettingRequest) GetApproverID() uint64 { + if x != nil { + return x.ApproverID + } + return 0 } -func (x *ExhibitionDetail) GetID() uint64 { +func (x *SettingRequest) GetApproverName() string { if x != nil { - return x.ID + return x.ApproverName } - return 0 + return "" } -func (x *ExhibitionDetail) GetDomain() string { +func (x *SettingRequest) GetDomain() string { if x != nil { return x.Domain } return "" } -type ExhibitionResponse struct { +type DetailSettingRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Success bool `protobuf:"varint,2,opt,name=Success,json=success,proto3" json:"Success,omitempty"` + DepartmentID uint64 `protobuf:"varint,1,opt,name=DepartmentID,json=departmentID,proto3" json:"DepartmentID,omitempty"` + Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` } -func (x *ExhibitionResponse) Reset() { - *x = ExhibitionResponse{} +func (x *DetailSettingRequest) Reset() { + *x = DetailSettingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[35] + mi := &file_api_approval_approval_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ExhibitionResponse) String() string { +func (x *DetailSettingRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ExhibitionResponse) ProtoMessage() {} +func (*DetailSettingRequest) ProtoMessage() {} -func (x *ExhibitionResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[35] +func (x *DetailSettingRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2501,50 +1627,51 @@ func (x *ExhibitionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ExhibitionResponse.ProtoReflect.Descriptor instead. -func (*ExhibitionResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{35} +// Deprecated: Use DetailSettingRequest.ProtoReflect.Descriptor instead. +func (*DetailSettingRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{21} } -func (x *ExhibitionResponse) GetID() uint64 { +func (x *DetailSettingRequest) GetDepartmentID() uint64 { if x != nil { - return x.ID + return x.DepartmentID } return 0 } -func (x *ExhibitionResponse) GetSuccess() bool { +func (x *DetailSettingRequest) GetDomain() string { if x != nil { - return x.Success + return x.Domain } - return false + return "" } -type ExhibitionRemove struct { +type SettingResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Success bool `protobuf:"varint,1,opt,name=Success,json=success,proto3" json:"Success,omitempty"` + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Success bool `protobuf:"varint,2,opt,name=Success,json=success,proto3" json:"Success,omitempty"` } -func (x *ExhibitionRemove) Reset() { - *x = ExhibitionRemove{} +func (x *SettingResponse) Reset() { + *x = SettingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[36] + mi := &file_api_approval_approval_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ExhibitionRemove) String() string { +func (x *SettingResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ExhibitionRemove) ProtoMessage() {} +func (*SettingResponse) ProtoMessage() {} -func (x *ExhibitionRemove) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[36] +func (x *SettingResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2555,12 +1682,19 @@ func (x *ExhibitionRemove) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ExhibitionRemove.ProtoReflect.Descriptor instead. -func (*ExhibitionRemove) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{36} +// Deprecated: Use SettingResponse.ProtoReflect.Descriptor instead. +func (*SettingResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{22} +} + +func (x *SettingResponse) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 } -func (x *ExhibitionRemove) GetSuccess() bool { +func (x *SettingResponse) GetSuccess() bool { if x != nil { return x.Success } @@ -2572,243 +1706,189 @@ var File_api_approval_approval_proto protoreflect.FileDescriptor var file_api_approval_approval_proto_rawDesc = []byte{ 0x0a, 0x1b, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 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, 0xfc, 0x01, 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, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1a, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 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, 0x80, 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, + 0x22, 0x90, 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, 0x22, 0xf0, 0x01, 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, 0x06, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 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, 0x22, 0x90, 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, 0x22, 0x82, 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, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 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, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, - 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, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xa6, 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, 0x4e, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 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, 0x22, 0x87, 0x01, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x4c, 0x69, 0x73, 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, 0x14, 0x0a, 0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x4f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 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, 0x22, - 0x5b, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 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, 0x2d, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xfa, 0x03, 0x0a, - 0x0f, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 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, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, - 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x64, 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, 0x22, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x18, 0x0c, 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, 0x0d, 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, 0x0e, 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, 0x0f, 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, 0x22, 0xea, 0x01, 0x0a, 0x14, 0x45, 0x78, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 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, - 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x05, 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, - 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x13, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 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, 0x41, 0x0a, 0x15, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 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, 0x2f, 0x0a, 0x13, 0x45, 0x78, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 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, 0x38, 0x0a, 0x0c, 0x57, 0x6f, 0x72, - 0x6b, 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, 0x26, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 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, 0xb3, 0x01, 0x0a, 0x0b, - 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 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, 0x04, 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, 0x22, 0xa6, 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, + 0x4e, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 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, 0x22, + 0x87, 0x01, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4c, 0x69, 0x73, 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, + 0x14, 0x0a, 0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 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, 0x22, 0x5b, 0x0a, 0x14, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 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, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xfa, 0x03, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 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, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, + 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 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, 0x22, 0x0a, 0x04, 0x57, + 0x6f, 0x72, 0x6b, 0x18, 0x0c, 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, 0x0d, 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, 0x0e, 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, 0x0f, 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, 0x22, 0x38, 0x0a, 0x0e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 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, 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, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 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, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, - 0x74, 0x18, 0x05, 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, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, - 0x74, 0x22, 0x34, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, + 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, 0x38, 0x0a, 0x0e, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 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, 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, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 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, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 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, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x49, 0x64, 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, 0x46, 0x0a, 0x1a, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 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, 0xe1, 0x02, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x57, 0x6f, 0x72, 0x6b, 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, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 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, 0x09, 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, 0x0a, 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, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3c, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 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, 0x40, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x57, 0x6f, 0x72, 0x6b, 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, 0x2e, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 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, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, 0x55, + 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x2e, 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, 0x22, 0xac, 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x74, @@ -2820,85 +1900,67 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 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, 0x22, 0x0a, 0x0c, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, - 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, + 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 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, 0x1e, 0x0a, 0x0a, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x52, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, - 0x0a, 0x0c, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, + 0x0a, 0x0c, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, + 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, 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, 0x22, 0x3b, 0x0a, 0x1f, 0x44, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 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, 0xbd, 0x01, 0x0a, 0x11, 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, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x64, 0x22, 0x3a, 0x0a, 0x10, 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, 0x3e, 0x0a, 0x12, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, 0x2c, 0x0a, 0x10, 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, 0x32, 0xef, - 0x03, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x41, 0x0a, 0x06, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 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, 0x3f, - 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, - 0x41, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 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, 0x3e, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x22, 0x00, 0x12, 0x47, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4c, 0x69, 0x73, - 0x74, 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, 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, - 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x32, 0xfe, 0x04, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x41, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x19, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 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, 0x3f, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x1a, 0x19, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 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, 0x3e, 0x0a, 0x06, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x1a, + 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x04, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 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, 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, 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, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2913,75 +1975,68 @@ 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, 37) +var file_api_approval_approval_proto_msgTypes = make([]protoimpl.MessageInfo, 23) var file_api_approval_approval_proto_goTypes = []interface{}{ - (*Bundle)(nil), // 0: approval.Bundle - (*Show)(nil), // 1: approval.Show - (*ApprovalWork)(nil), // 2: approval.ApprovalWork - (*Work)(nil), // 3: approval.Work - (*ApprovalExhibition)(nil), // 4: approval.ApprovalExhibition - (*Exhibition)(nil), // 5: approval.Exhibition - (*ApprovalListRequest)(nil), // 6: approval.ApprovalListRequest - (*ApprovalListResponse)(nil), // 7: approval.ApprovalListResponse - (*ApprovalRequest)(nil), // 8: approval.ApprovalRequest - (*ExhibitionNumRequest)(nil), // 9: approval.ExhibitionNumRequest - (*ExhibitionNumDetail)(nil), // 10: approval.ExhibitionNumDetail - (*ExhibitionNumResponse)(nil), // 11: approval.ExhibitionNumResponse - (*ExhibitionNumRemove)(nil), // 12: approval.ExhibitionNumRemove - (*WorkResponse)(nil), // 13: approval.WorkResponse - (*WorkRemove)(nil), // 14: approval.WorkRemove - (*WorkRequest)(nil), // 15: approval.WorkRequest - (*WorkDetail)(nil), // 16: approval.WorkDetail - (*ApprovalDetail)(nil), // 17: approval.ApprovalDetail - (*ApprovalResponse)(nil), // 18: approval.ApprovalResponse - (*ApprovalRemove)(nil), // 19: approval.ApprovalRemove - (*ApprovalExhibitionRemove)(nil), // 20: approval.ApprovalExhibitionRemove - (*ApprovalExhibitionRequest)(nil), // 21: approval.ApprovalExhibitionRequest - (*ApprovalExhibitionDetail)(nil), // 22: approval.ApprovalExhibitionDetail - (*ApprovalExhibitionResponse)(nil), // 23: approval.ApprovalExhibitionResponse - (*ApprovalWorkRequest)(nil), // 24: approval.ApprovalWorkRequest - (*ApprovalWorkDetail)(nil), // 25: approval.ApprovalWorkDetail - (*ApprovalWorkResponse)(nil), // 26: approval.ApprovalWorkResponse - (*ApprovalWorkRemove)(nil), // 27: approval.ApprovalWorkRemove - (*CopyUser)(nil), // 28: approval.CopyUser - (*SettingRequest)(nil), // 29: approval.SettingRequest - (*DetailSettingRequest)(nil), // 30: approval.DetailSettingRequest - (*SettingResponse)(nil), // 31: approval.SettingResponse - (*DepartmentApprovalSettingRemove)(nil), // 32: approval.DepartmentApprovalSettingRemove - (*ExhibitionRequest)(nil), // 33: approval.ExhibitionRequest - (*ExhibitionDetail)(nil), // 34: approval.ExhibitionDetail - (*ExhibitionResponse)(nil), // 35: approval.ExhibitionResponse - (*ExhibitionRemove)(nil), // 36: approval.ExhibitionRemove + (*ViewedRequest)(nil), // 0: approval.ViewedRequest + (*InformationRequest)(nil), // 1: approval.InformationRequest + (*Information)(nil), // 2: approval.Information + (*InformationResponse)(nil), // 3: approval.InformationResponse + (*Bundle)(nil), // 4: approval.Bundle + (*Show)(nil), // 5: approval.Show + (*ApprovalWork)(nil), // 6: approval.ApprovalWork + (*Work)(nil), // 7: approval.Work + (*ApprovalExhibition)(nil), // 8: approval.ApprovalExhibition + (*Exhibition)(nil), // 9: approval.Exhibition + (*ApprovalListRequest)(nil), // 10: approval.ApprovalListRequest + (*ApprovalListResponse)(nil), // 11: approval.ApprovalListResponse + (*ApprovalRequest)(nil), // 12: approval.ApprovalRequest + (*ApprovalDetail)(nil), // 13: approval.ApprovalDetail + (*ApprovalResponse)(nil), // 14: approval.ApprovalResponse + (*ApprovalRemove)(nil), // 15: approval.ApprovalRemove + (*ApprovalExhibitionRemove)(nil), // 16: approval.ApprovalExhibitionRemove + (*ApprovalExhibitionRequest)(nil), // 17: approval.ApprovalExhibitionRequest + (*ApprovalExhibitionDetail)(nil), // 18: approval.ApprovalExhibitionDetail + (*CopyUser)(nil), // 19: approval.CopyUser + (*SettingRequest)(nil), // 20: approval.SettingRequest + (*DetailSettingRequest)(nil), // 21: approval.DetailSettingRequest + (*SettingResponse)(nil), // 22: approval.SettingResponse } var file_api_approval_approval_proto_depIdxs = []int32{ - 2, // 0: approval.Work.ApprovalWorks:type_name -> approval.ApprovalWork - 4, // 1: approval.Exhibition.ApprovalExhibitions:type_name -> approval.ApprovalExhibition - 8, // 2: approval.ApprovalListResponse.data:type_name -> approval.ApprovalRequest - 28, // 3: approval.ApprovalRequest.CopyUsers:type_name -> approval.CopyUser - 3, // 4: approval.ApprovalRequest.Work:type_name -> approval.Work - 1, // 5: approval.ApprovalRequest.Show:type_name -> approval.Show - 5, // 6: approval.ApprovalRequest.Exhibition:type_name -> approval.Exhibition - 0, // 7: approval.ApprovalRequest.Bundle:type_name -> approval.Bundle - 28, // 8: approval.SettingRequest.CopyUsers:type_name -> approval.CopyUser - 8, // 9: approval.Approval.Create:input_type -> approval.ApprovalRequest - 17, // 10: approval.Approval.Detail:input_type -> approval.ApprovalDetail - 8, // 11: approval.Approval.Update:input_type -> approval.ApprovalRequest - 17, // 12: approval.Approval.Remove:input_type -> approval.ApprovalDetail - 6, // 13: approval.Approval.List:input_type -> approval.ApprovalListRequest - 30, // 14: approval.Approval.DetailSetting:input_type -> approval.DetailSettingRequest - 29, // 15: approval.Approval.UpdateSetting:input_type -> approval.SettingRequest - 18, // 16: approval.Approval.Create:output_type -> approval.ApprovalResponse - 8, // 17: approval.Approval.Detail:output_type -> approval.ApprovalRequest - 18, // 18: approval.Approval.Update:output_type -> approval.ApprovalResponse - 19, // 19: approval.Approval.Remove:output_type -> approval.ApprovalRemove - 7, // 20: approval.Approval.List:output_type -> approval.ApprovalListResponse - 29, // 21: approval.Approval.DetailSetting:output_type -> approval.SettingRequest - 31, // 22: approval.Approval.UpdateSetting:output_type -> approval.SettingResponse - 16, // [16:23] is the sub-list for method output_type - 9, // [9:16] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 2, // 0: approval.InformationResponse.MySubmitInfo:type_name -> approval.Information + 2, // 1: approval.InformationResponse.SubmitMeInfo:type_name -> approval.Information + 2, // 2: approval.InformationResponse.DomainInfo:type_name -> approval.Information + 6, // 3: approval.Work.ApprovalWorks:type_name -> approval.ApprovalWork + 8, // 4: approval.Exhibition.ApprovalExhibitions:type_name -> approval.ApprovalExhibition + 12, // 5: approval.ApprovalListResponse.data:type_name -> approval.ApprovalRequest + 19, // 6: approval.ApprovalRequest.CopyUsers:type_name -> approval.CopyUser + 7, // 7: approval.ApprovalRequest.Work:type_name -> approval.Work + 5, // 8: approval.ApprovalRequest.Show:type_name -> approval.Show + 9, // 9: approval.ApprovalRequest.Exhibition:type_name -> approval.Exhibition + 4, // 10: approval.ApprovalRequest.Bundle:type_name -> approval.Bundle + 19, // 11: approval.SettingRequest.CopyUsers:type_name -> approval.CopyUser + 12, // 12: approval.Approval.Create:input_type -> approval.ApprovalRequest + 13, // 13: approval.Approval.Detail:input_type -> approval.ApprovalDetail + 12, // 14: approval.Approval.Update:input_type -> approval.ApprovalRequest + 13, // 15: approval.Approval.Remove:input_type -> approval.ApprovalDetail + 10, // 16: approval.Approval.List:input_type -> approval.ApprovalListRequest + 1, // 17: approval.Approval.Information:input_type -> approval.InformationRequest + 0, // 18: approval.Approval.Viewed:input_type -> approval.ViewedRequest + 21, // 19: approval.Approval.DetailSetting:input_type -> approval.DetailSettingRequest + 20, // 20: approval.Approval.UpdateSetting:input_type -> approval.SettingRequest + 14, // 21: approval.Approval.Create:output_type -> approval.ApprovalResponse + 12, // 22: approval.Approval.Detail:output_type -> approval.ApprovalRequest + 14, // 23: approval.Approval.Update:output_type -> approval.ApprovalResponse + 15, // 24: approval.Approval.Remove:output_type -> approval.ApprovalRemove + 11, // 25: approval.Approval.List:output_type -> approval.ApprovalListResponse + 3, // 26: approval.Approval.Information:output_type -> approval.InformationResponse + 14, // 27: approval.Approval.Viewed:output_type -> approval.ApprovalResponse + 20, // 28: approval.Approval.DetailSetting:output_type -> approval.SettingRequest + 22, // 29: approval.Approval.UpdateSetting:output_type -> approval.SettingResponse + 21, // [21:30] is the sub-list for method output_type + 12, // [12:21] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name } func init() { file_api_approval_approval_proto_init() } @@ -2991,7 +2046,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.(*Bundle); i { + switch v := v.(*ViewedRequest); i { case 0: return &v.state case 1: @@ -3003,7 +2058,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.(*Show); i { + switch v := v.(*InformationRequest); i { case 0: return &v.state case 1: @@ -3015,7 +2070,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.(*ApprovalWork); i { + switch v := v.(*Information); i { case 0: return &v.state case 1: @@ -3027,7 +2082,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.(*Work); i { + switch v := v.(*InformationResponse); i { case 0: return &v.state case 1: @@ -3039,7 +2094,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.(*ApprovalExhibition); i { + switch v := v.(*Bundle); i { case 0: return &v.state case 1: @@ -3051,7 +2106,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.(*Exhibition); i { + switch v := v.(*Show); i { case 0: return &v.state case 1: @@ -3063,7 +2118,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.(*ApprovalListRequest); i { + switch v := v.(*ApprovalWork); i { case 0: return &v.state case 1: @@ -3075,7 +2130,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.(*ApprovalListResponse); i { + switch v := v.(*Work); i { case 0: return &v.state case 1: @@ -3087,7 +2142,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.(*ApprovalRequest); i { + switch v := v.(*ApprovalExhibition); i { case 0: return &v.state case 1: @@ -3099,7 +2154,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.(*ExhibitionNumRequest); i { + switch v := v.(*Exhibition); i { case 0: return &v.state case 1: @@ -3111,7 +2166,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.(*ExhibitionNumDetail); i { + switch v := v.(*ApprovalListRequest); i { case 0: return &v.state case 1: @@ -3123,7 +2178,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.(*ExhibitionNumResponse); i { + switch v := v.(*ApprovalListResponse); i { case 0: return &v.state case 1: @@ -3135,7 +2190,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.(*ExhibitionNumRemove); i { + switch v := v.(*ApprovalRequest); i { case 0: return &v.state case 1: @@ -3147,54 +2202,6 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkResponse); 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[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkRemove); 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[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkRequest); 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[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkDetail); 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[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApprovalDetail); i { case 0: return &v.state @@ -3206,7 +2213,7 @@ func file_api_approval_approval_proto_init() { return nil } } - file_api_approval_approval_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_api_approval_approval_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApprovalResponse); i { case 0: return &v.state @@ -3218,7 +2225,7 @@ func file_api_approval_approval_proto_init() { return nil } } - file_api_approval_approval_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_api_approval_approval_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApprovalRemove); i { case 0: return &v.state @@ -3230,7 +2237,7 @@ func file_api_approval_approval_proto_init() { return nil } } - file_api_approval_approval_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_api_approval_approval_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApprovalExhibitionRemove); i { case 0: return &v.state @@ -3242,7 +2249,7 @@ func file_api_approval_approval_proto_init() { return nil } } - file_api_approval_approval_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_api_approval_approval_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApprovalExhibitionRequest); i { case 0: return &v.state @@ -3254,7 +2261,7 @@ func file_api_approval_approval_proto_init() { return nil } } - file_api_approval_approval_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_api_approval_approval_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApprovalExhibitionDetail); i { case 0: return &v.state @@ -3266,67 +2273,7 @@ func file_api_approval_approval_proto_init() { return nil } } - file_api_approval_approval_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalExhibitionResponse); 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[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalWorkRequest); 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[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalWorkDetail); 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[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalWorkResponse); 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[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalWorkRemove); 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[28].Exporter = func(v interface{}, i int) interface{} { + file_api_approval_approval_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CopyUser); i { case 0: return &v.state @@ -3338,7 +2285,7 @@ func file_api_approval_approval_proto_init() { return nil } } - file_api_approval_approval_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_api_approval_approval_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SettingRequest); i { case 0: return &v.state @@ -3350,7 +2297,7 @@ func file_api_approval_approval_proto_init() { return nil } } - file_api_approval_approval_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_api_approval_approval_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DetailSettingRequest); i { case 0: return &v.state @@ -3362,7 +2309,7 @@ func file_api_approval_approval_proto_init() { return nil } } - file_api_approval_approval_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_api_approval_approval_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SettingResponse); i { case 0: return &v.state @@ -3374,66 +2321,6 @@ func file_api_approval_approval_proto_init() { return nil } } - file_api_approval_approval_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DepartmentApprovalSettingRemove); 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[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExhibitionRequest); 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[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExhibitionDetail); 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[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExhibitionResponse); 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[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExhibitionRemove); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3441,7 +2328,7 @@ func file_api_approval_approval_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_approval_approval_proto_rawDesc, NumEnums: 0, - NumMessages: 37, + NumMessages: 23, NumExtensions: 0, NumServices: 1, }, diff --git a/api/approval/approval.proto b/api/approval/approval.proto index 9301ebf..848ff10 100644 --- a/api/approval/approval.proto +++ b/api/approval/approval.proto @@ -6,52 +6,43 @@ option go_package = "./;approval"; // The approval service definition. service Approval { - rpc Create(ApprovalRequest) returns (ApprovalResponse) {}; - rpc Detail(ApprovalDetail) returns (ApprovalRequest) {}; rpc Update(ApprovalRequest) returns (ApprovalResponse) {}; rpc Remove(ApprovalDetail) returns (ApprovalRemove) {}; rpc List(ApprovalListRequest) returns (ApprovalListResponse) {}; + rpc Information(InformationRequest) returns (InformationResponse) {}; + rpc Viewed(ViewedRequest) returns (ApprovalResponse) {}; rpc DetailSetting(DetailSettingRequest) returns (SettingRequest) {}; rpc UpdateSetting(SettingRequest) returns (SettingResponse) {}; +} - /* - rpc RemoveApprovalWork(ApprovalWorkDetail) returns (ApprovalWorkRemove) {}; - rpc ListApprovalWork(ApprovalWorkDetail) returns (ApprovalWorkRequest) {}; - rpc DetailApprovalWork(ApprovalWorkDetail) returns (ApprovalWorkRequest) {}; - rpc CreateApprovalWork(ApprovalWorkRequest) returns (ApprovalWorkResponse) {}; - rpc UpdateApprovalWork(ApprovalWorkRequest) returns (ApprovalWorkResponse) {}; - rpc ListDepartmentApprovalSetting(DepartmentApprovalSettingDetail) returns (DepartmentApprovalSettingRequest) {}; - rpc DetailDepartmentApprovalSetting(DepartmentApprovalSettingDetail) returns (DepartmentApprovalSettingRequest) {}; - rpc CreateDepartmentApprovalSetting(DepartmentApprovalSettingRequest) returns (DepartmentApprovalSettingResponse) {}; - rpc UpdateDepartmentApprovalSetting(DepartmentApprovalSettingRequest) returns (DepartmentApprovalSettingResponse) {}; - rpc RemoveDepartmentApprovalSetting(DepartmentApprovalSettingDetail) returns (DepartmentApprovalSettingRemove) {}; - rpc RemoveExhibition(ExhibitionDetail) returns (ExhibitionRemove) {}; - rpc ListExhibition(ExhibitionDetail) returns (ExhibitionRequest) {}; - rpc DetailExhibition(ExhibitionDetail) returns (ExhibitionRequest) {}; - rpc CreateExhibition(ExhibitionRequest) returns (ExhibitionResponse) {}; - rpc UpdateExhibition(ExhibitionRequest) returns (ExhibitionResponse) {}; - rpc RemoveExhibitionNum(ExhibitionNumDetail) returns (ExhibitionNumRemove) {}; - rpc ListExhibitionNum(ExhibitionNumDetail) returns (ExhibitionNumRequest) {}; - rpc DetailExhibitionNum(ExhibitionNumDetail) returns (ExhibitionNumRequest) {}; - rpc CreateExhibitionNum(ExhibitionNumRequest) returns (ExhibitionNumResponse) {}; - rpc UpdateExhibitionNum(ExhibitionNumRequest) returns (ExhibitionNumResponse) {}; - rpc DetailWork(WorkDetail) returns (WorkRequest) {}; - rpc CreateWork(WorkRequest) returns (WorkResponse) {}; - rpc UpdateWork(WorkRequest) returns (WorkResponse) {}; - rpc RemoveWork(WorkDetail) returns (WorkRemove) {}; - rpc ListWork(WorkDetail) returns (WorkRequest) {}; +message ViewedRequest { + string Domain = 1 [json_name = "domain"]; + uint64 ID = 2 [json_name = "ID"]; + uint64 UserID = 3 [json_name = "userID"]; +} - rpc UpdateApprovalExhibition(ApprovalExhibitionRequest) returns (ApprovalExhibitionResponse) {}; - rpc RemoveApprovalExhibition(ApprovalExhibitionDetail) returns (ApprovalExhibitionRemove) {}; - rpc ListApprovalExhibition(ApprovalExhibitionDetail) returns (ApprovalExhibitionRequest) {}; - rpc DetailApprovalExhibition(ApprovalExhibitionDetail) returns (ApprovalExhibitionRequest) {}; - rpc CreateApprovalExhibition(ApprovalExhibitionRequest) returns (ApprovalExhibitionResponse) {}; - */ +message InformationRequest { + string Domain = 1 [json_name = "domain"]; + uint64 UserID = 2 [json_name = "userID"]; + string Type = 3 [json_name = "type"]; +} +message Information { + uint64 Total = 1 [json_name = "total"]; // 已提交的审批 (总量) + uint64 DoingTotal = 2 [json_name = "doingTotal"]; // 正在审批数量 + uint64 SuccessTotal = 3 [json_name = "successTotal"]; // 审批完成数量 + uint64 FailTotal = 4 [json_name = "failTotal"]; // 审批未通过 +} + +message InformationResponse { + Information MySubmitInfo = 1 [json_name = "mySubmitInfo"]; // 我提交的; + Information SubmitMeInfo = 2 [json_name = "submitMeInfo"]; // 提交给我的; + Information DomainInfo = 3 [json_name = "domainInfo"]; // 大盘数据; + //Information CopyMeInfo = 4 [json_name = "copyMeInfo"]; // 抄送给我的; } message Bundle { @@ -69,9 +60,9 @@ message Show { message ApprovalWork { uint64 ID =1 [json_name = "ID"]; - uint64 WorkId =2 [json_name = "WorkId"]; - uint64 ApprovalID =3 [json_name = "WorkId"]; - uint64 ArtworkId =4 [json_name = "artworkId"]; + uint64 WorkID =2 [json_name = "WorkID"]; + uint64 ApprovalID =3 [json_name = "ApprovalID"]; + uint64 ArtworkID =4 [json_name = "artworkID"]; string ArtworkName =5 [json_name = "artworkName"]; string ArtistName =6 [json_name = "artistName"]; string ArtworkCover =7 [json_name = "artworkCover"]; @@ -89,11 +80,11 @@ message Work { message ApprovalExhibition { uint64 ID =1 [json_name = "ID"]; uint64 ExhibitionID =2 [json_name = "exhibitionID"]; - uint64 ApprovalID =3 [json_name = "ApprovalID"]; - string ExhibitionName =4 [json_name = "exhibitionName"]; - uint64 ArtworkId =5 [json_name = "artworkId"]; - uint64 ExhibitionSize =6 [json_name = "exhibitionSize"]; - string ExhibitionNumber =7 [json_name = "exhibitionNumber"]; + uint64 ApprovalID =3 [json_name = "approvalID"]; + string PackageName =4 [json_name = "packageName"]; + uint64 PackageID =5 [json_name = "packageID"]; + uint64 PackageSize =6 [json_name = "packageSize"]; + string PackageNumber =7 [json_name = "packageNumber"]; } message Exhibition { @@ -121,9 +112,9 @@ message ApprovalRequest { string Domain = 2 [json_name = "domain"]; uint64 Status = 3 [json_name = "status"];//0待审批 1-审批成功 2-拒绝 string Type = 4 [json_name = "type"]; //类型 - uint64 ApproverId = 5 [json_name = "approverId"];//申请人 + uint64 ApproverID = 5 [json_name = "approverID"];//申请人 string ApproverName = 6 [json_name = "approverName"]; - uint64 SubmitterId = 7 [json_name = "submitterId"];//审批人 + uint64 SubmitterID = 7 [json_name = "submitterID"];//审批人 string SubmitterName = 8 [json_name = "submitterName"]; repeated CopyUser CopyUsers = 9 [json_name = "copyName"];//抄送人 string Content = 10 [json_name = "content"];//申请内容 @@ -134,82 +125,22 @@ message ApprovalRequest { Bundle Bundle = 15 [json_name = "bundle"]; } -message ExhibitionNumRequest { - uint64 ID =1 [json_name = "ID"]; - uint64 DeletedAt =2 [json_name = "deletedAt"]; - string CreatedAt =3 [json_name = "createdAt"]; - string UpdatedAt =4 [json_name = "updatedAt"]; - string ReceivedAt =5 [json_name = "receivedAt"]; - uint64 ApplicationsNum =6 [json_name = "applicationsNum"]; - uint64 ApprovalId =7 [json_name = "approvalId"]; -} - -message ExhibitionNumDetail { - uint64 ID =1 [json_name = "ID"]; - string Domain =2 [json_name = "domain"]; - -} - -message ExhibitionNumResponse { - uint64 ID =1 [json_name = "ID"]; - bool Success =2 [json_name = "success"]; - -} - -message ExhibitionNumRemove { - bool Success =1 [json_name = "success"]; - -} - -message WorkResponse { - uint64 ID = 1 [json_name = "ID"]; - bool Success = 2 [json_name = "success"]; - -} - -message WorkRemove { - bool Success=1 [json_name = "success"]; - -} - -message WorkRequest { - uint64 ID=1 [json_name = "ID"]; - uint64 DeletedAt=2 [json_name = "deletedAt"]; - string CreatedAt=3 [json_name = "createdAt"]; - string UpdatedAt=4 [json_name = "updatedAt"]; - string ReturnAt=5 [json_name = "returnAt"]; - string ReceivedAt=6 [json_name = "receivedAt"]; - -} - -message WorkDetail { - uint64 ID=1 [json_name = "ID"]; - string Domain=2 [json_name = "domain"]; - -} - - - message ApprovalDetail { uint64 ID=1 [json_name = "ID"]; string Domain=2 [json_name = "domain"]; - } message ApprovalResponse { uint64 ID=1 [json_name = "ID"]; bool Success=2 [json_name = "success"]; - } message ApprovalRemove { bool Success=1 [json_name = "success"]; - } message ApprovalExhibitionRemove { bool Success=1 [json_name = "success"]; - } message ApprovalExhibitionRequest { @@ -217,60 +148,19 @@ message ApprovalExhibitionRequest { uint64 DeletedAt=2 [json_name = "deletedAt"]; string CreatedAt=3 [json_name = "createdAt"]; string UpdatedAt=4 [json_name = "updatedAt"]; - uint64 ApprovalId=5 [json_name = "approvalId"]; - uint64 ExhibitionId=6 [json_name = "exhibitionId"]; + uint64 ApprovalID=5 [json_name = "approvalID"]; + uint64 ExhibitionID=6 [json_name = "exhibitionID"]; string ExhibitionName=7 [json_name = "exhibitionName"]; - uint64 ArtworkId=8 [json_name = "artworkId"]; + uint64 ArtworkID=8 [json_name = "artworkID"]; string ExhibitionSize=9 [json_name = "exhibitionSize"]; string ExhibitionNumber=10 [json_name = "exhibitionNumber"]; - } message ApprovalExhibitionDetail { uint64 ID=1 [json_name = "ID"]; string Domain=2 [json_name = "domain"]; - } -message ApprovalExhibitionResponse { - uint64 ID=1 [json_name = "ID"]; - bool Success=2 [json_name = "success"]; - -} - -message ApprovalWorkRequest { - uint64 ID=1 [json_name = "ID"]; - uint64 DeletedAt=2 [json_name = "deletedAt"]; - string CreatedAt=3 [json_name = "createdAt"]; - string UpdatedAt=4 [json_name = "updatedAt"]; - uint64 ApprovalId=5 [json_name = "approvalId"]; - uint64 WorkId=6 [json_name = "workId"]; - uint64 ArtworkId=7 [json_name = "artworkId"]; - string ArtworkName=8 [json_name = "artworkName"]; - string ArtistName=9 [json_name = "artistName"]; - string ArtworkCover=10 [json_name = "artworkCover"]; - string ArtworkNumber=11 [json_name = "artworkNumber"]; - -} - -message ApprovalWorkDetail { - uint64 ID=1 [json_name = "ID"]; - string Domain=2 [json_name = "domain"]; - -} - -message ApprovalWorkResponse { - uint64 ID=1 [json_name = "ID"]; - bool Success=2 [json_name = "success"]; - -} - -message ApprovalWorkRemove { - bool Success=1 [json_name = "success"]; - -} - - message CopyUser { uint64 ID =1 [json_name = "ID"]; string Name =2 [json_name = "name"]; @@ -281,52 +171,19 @@ message SettingRequest { uint64 DeletedAt=2 [json_name = "deletedAt"]; string CreatedAt=3 [json_name = "createdAt"]; string UpdatedAt=4 [json_name = "updatedAt"]; - uint64 DepartmentId=5 [json_name = "departmentId"]; + uint64 DepartmentID=5 [json_name = "departmentID"]; repeated CopyUser CopyUsers=6 [json_name = "copyUsers"]; - uint64 ApproverId=7 [json_name = "approverId"]; + uint64 ApproverID=7 [json_name = "approverID"]; string ApproverName=8 [json_name = "approverName"]; string Domain=9 [json_name = "domain"]; - } message DetailSettingRequest { - uint64 DepartmentId=1 [json_name = "departmentId"]; + uint64 DepartmentID=1 [json_name = "departmentID"]; string Domain=2 [json_name = "domain"]; } message SettingResponse { uint64 ID=1 [json_name = "ID"]; bool Success=2 [json_name = "success"]; - -} - -message DepartmentApprovalSettingRemove { - bool Success=1 [json_name = "success"]; - -} - -message ExhibitionRequest { - uint64 ID=1 [json_name = "ID"]; - uint64 DeletedAt=2 [json_name = "deletedAt"]; - string CreatedAt=3 [json_name = "createdAt"]; - string UpdatedAt=4 [json_name = "updatedAt"]; - string ReceivedAt=5 [json_name = "receivedAt"]; - uint64 ApprovalId=6 [json_name = "approvalId"]; - -} - -message ExhibitionDetail { - uint64 ID=1 [json_name = "ID"]; - string Domain=2 [json_name = "domain"]; - -} - -message ExhibitionResponse { - uint64 ID=1 [json_name = "ID"]; - bool Success=2 [json_name = "success"]; - -} - -message ExhibitionRemove { - bool Success=1 [json_name = "success"]; } \ No newline at end of file diff --git a/api/approval/approval_triple.pb.go b/api/approval/approval_triple.pb.go index 824c538..66de019 100644 --- a/api/approval/approval_triple.pb.go +++ b/api/approval/approval_triple.pb.go @@ -33,6 +33,8 @@ type ApprovalClient interface { Update(ctx context.Context, in *ApprovalRequest, opts ...grpc_go.CallOption) (*ApprovalResponse, common.ErrorWithAttachment) Remove(ctx context.Context, in *ApprovalDetail, opts ...grpc_go.CallOption) (*ApprovalRemove, common.ErrorWithAttachment) List(ctx context.Context, in *ApprovalListRequest, opts ...grpc_go.CallOption) (*ApprovalListResponse, common.ErrorWithAttachment) + Information(ctx context.Context, in *InformationRequest, opts ...grpc_go.CallOption) (*InformationResponse, common.ErrorWithAttachment) + Viewed(ctx context.Context, in *ViewedRequest, opts ...grpc_go.CallOption) (*ApprovalResponse, 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) } @@ -47,6 +49,8 @@ type ApprovalClientImpl struct { Update func(ctx context.Context, in *ApprovalRequest) (*ApprovalResponse, error) Remove func(ctx context.Context, in *ApprovalDetail) (*ApprovalRemove, error) List func(ctx context.Context, in *ApprovalListRequest) (*ApprovalListResponse, error) + Information func(ctx context.Context, in *InformationRequest) (*InformationResponse, error) + Viewed func(ctx context.Context, in *ViewedRequest) (*ApprovalResponse, error) DetailSetting func(ctx context.Context, in *DetailSettingRequest) (*SettingRequest, error) UpdateSetting func(ctx context.Context, in *SettingRequest) (*SettingResponse, error) } @@ -93,6 +97,18 @@ func (c *approvalClient) List(ctx context.Context, in *ApprovalListRequest, opts return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/List", in, out) } +func (c *approvalClient) Information(ctx context.Context, in *InformationRequest, opts ...grpc_go.CallOption) (*InformationResponse, common.ErrorWithAttachment) { + out := new(InformationResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/Information", in, out) +} + +func (c *approvalClient) Viewed(ctx context.Context, in *ViewedRequest, opts ...grpc_go.CallOption) (*ApprovalResponse, common.ErrorWithAttachment) { + out := new(ApprovalResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/Viewed", in, out) +} + func (c *approvalClient) DetailSetting(ctx context.Context, in *DetailSettingRequest, opts ...grpc_go.CallOption) (*SettingRequest, common.ErrorWithAttachment) { out := new(SettingRequest) interfaceKey := ctx.Value(constant.InterfaceKey).(string) @@ -114,6 +130,8 @@ type ApprovalServer interface { Update(context.Context, *ApprovalRequest) (*ApprovalResponse, error) Remove(context.Context, *ApprovalDetail) (*ApprovalRemove, error) List(context.Context, *ApprovalListRequest) (*ApprovalListResponse, error) + Information(context.Context, *InformationRequest) (*InformationResponse, error) + Viewed(context.Context, *ViewedRequest) (*ApprovalResponse, error) DetailSetting(context.Context, *DetailSettingRequest) (*SettingRequest, error) UpdateSetting(context.Context, *SettingRequest) (*SettingResponse, error) mustEmbedUnimplementedApprovalServer() @@ -139,6 +157,12 @@ func (UnimplementedApprovalServer) Remove(context.Context, *ApprovalDetail) (*Ap func (UnimplementedApprovalServer) List(context.Context, *ApprovalListRequest) (*ApprovalListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method List not implemented") } +func (UnimplementedApprovalServer) Information(context.Context, *InformationRequest) (*InformationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Information not implemented") +} +func (UnimplementedApprovalServer) Viewed(context.Context, *ViewedRequest) (*ApprovalResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Viewed not implemented") +} func (UnimplementedApprovalServer) DetailSetting(context.Context, *DetailSettingRequest) (*SettingRequest, error) { return nil, status.Errorf(codes.Unimplemented, "method DetailSetting not implemented") } @@ -318,6 +342,64 @@ func _Approval_List_Handler(srv interface{}, ctx context.Context, dec func(inter return interceptor(ctx, in, info, handler) } +func _Approval_Information_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(InformationRequest) + 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("Information", 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_Viewed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ViewedRequest) + 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("Viewed", 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_DetailSetting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(DetailSettingRequest) if err := dec(in); err != nil { @@ -403,6 +485,14 @@ var Approval_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "List", Handler: _Approval_List_Handler, }, + { + MethodName: "Information", + Handler: _Approval_Information_Handler, + }, + { + MethodName: "Viewed", + Handler: _Approval_Viewed_Handler, + }, { MethodName: "DetailSetting", Handler: _Approval_DetailSetting_Handler, diff --git a/pkg/common/collection/slicefuc.go b/pkg/common/collection/slicefuc.go new file mode 100644 index 0000000..f0ae561 --- /dev/null +++ b/pkg/common/collection/slicefuc.go @@ -0,0 +1,175 @@ +package collection + +// Find Find获取一个切片并在其中查找元素。如果找到它,它将返回它的密钥,否则它将返回-1和一个错误的bool。 +func Find(slice []string, val string) (int, bool) { + for i, item := range slice { + if item == val { + return i, true + } + } + return -1, false +} + +// IntersectArray 求两个切片的交集 +func IntersectArray(a []string, b []string) []string { + var inter []string + mp := make(map[string]bool) + + for _, s := range a { + if _, ok := mp[s]; !ok { + mp[s] = true + } + } + for _, s := range b { + if _, ok := mp[s]; ok { + inter = append(inter, s) + } + } + + return inter +} + +// IntersectArrayInt 求两个切片的交集 +func IntersectArrayInt(a []int, b []int) []int { + var inter []int + mp := make(map[int]bool) + + for _, s := range a { + if _, ok := mp[s]; !ok { + mp[s] = true + } + } + for _, s := range b { + if _, ok := mp[s]; ok { + inter = append(inter, s) + } + } + + return inter +} + +func IntersectArrayUint64(a []uint64, b []uint64) []uint64 { + var inter []uint64 + mp := make(map[uint64]bool) + + for _, s := range a { + if _, ok := mp[s]; !ok { + mp[s] = true + } + } + for _, s := range b { + if _, ok := mp[s]; ok { + inter = append(inter, s) + } + } + + return inter +} + +func IntersectArrayUint(a []uint, b []uint) []uint { + var inter []uint + mp := make(map[uint]bool) + + for _, s := range a { + if _, ok := mp[s]; !ok { + mp[s] = true + } + } + for _, s := range b { + if _, ok := mp[s]; ok { + inter = append(inter, s) + } + } + + return inter +} + +// DiffArray 求两个切片的差集 a=[1,2,3,4] b=[3,4,5,6] =>1,2 +func DiffArray(a []int, b []int) []int { + var diffArray []int + temp := map[int]struct{}{} + + for _, val := range b { + if _, ok := temp[val]; !ok { + temp[val] = struct{}{} + } + } + + for _, val := range a { + if _, ok := temp[val]; !ok { + diffArray = append(diffArray, val) + } + } + + return diffArray +} + +// DiffArrayUint 求两个切片的差集 a=[1,2,3,4] b=[3,4,5,6] =>1,2 +func DiffArrayUint(a []uint, b []uint) []uint { + var diffArray []uint + temp := map[uint]struct{}{} + + for _, val := range b { + if _, ok := temp[val]; !ok { + temp[val] = struct{}{} + } + } + + for _, val := range a { + if _, ok := temp[val]; !ok { + diffArray = append(diffArray, val) + } + } + + return diffArray +} + +func DiffArrayUint64(a []uint64, b []uint64) []uint64 { + var diffArray []uint64 + temp := map[uint64]struct{}{} + + for _, val := range b { + if _, ok := temp[val]; !ok { + temp[val] = struct{}{} + } + } + + for _, val := range a { + if _, ok := temp[val]; !ok { + diffArray = append(diffArray, val) + } + } + + return diffArray +} + +// RemoveRepeatedElement 切片去重实现 +func RemoveRepeatedElement(arr []string) (newArr []string) { + newArr = make([]string, 0) + for i := 0; i < len(arr); i++ { + repeat := false + for j := i + 1; j < len(arr); j++ { + if arr[i] == arr[j] { + repeat = true + break + } + } + if !repeat { + newArr = append(newArr, arr[i]) + } + } + return +} + +//切片去重实现 +func arrayUnique(arr []string) []string { + result := make([]string, 0, len(arr)) + temp := map[string]struct{}{} + for i := 0; i < len(arr); i++ { + if _, ok := temp[arr[i]]; ok != true { + temp[arr[i]] = struct{}{} + result = append(result, arr[i]) + } + } + return result +} diff --git a/pkg/m/msg.go b/pkg/m/msg.go index 0658537..daa6af2 100644 --- a/pkg/m/msg.go +++ b/pkg/m/msg.go @@ -13,3 +13,8 @@ const ( ERRORCONFIG = "配置文件读取错误,请检查文件路径:" ErrorApprovalType = "类型不支持" ) + +const ( + ErrorNotFound = "暂无数据" + ErrorWrongStatus = "当前状态无法修改" +) diff --git a/pkg/model/approval.go b/pkg/model/approval.go index 9e6ec00..0fbb535 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -24,7 +24,7 @@ type Approval struct { Type string `gorm:"column:type" json:"type"` // 类型 Content string `gorm:"column:content" json:"content"` // 提交审批内容 Reply string `gorm:"column:reply" json:"reply"` // 回复内容 - Domain string `gorm:"column:domain" json:"domain"` // 环境变量 + Domain *string `gorm:"column:domain" json:"domain"` // 环境变量 Show *Show //`gorm:"foreignKey:ApprovalID" json:"Show"` // 环境变量 Work *Work //`gorm:"foreignKey:ApprovalID" json:"Work"` // 环境变量 Bundle *Bundle //`gorm:"foreignKey:ApprovalID" json:"Bundle"` // 环境变量 @@ -38,9 +38,15 @@ const ( TypeShow = "show" TypeBundle = "bundle" ) +const ( + StatusDoing = 0 + StatusOk = 1 + StatusFail = 2 +) type ApprovalContentInterface interface { SaveApprovalContent(in *approval.ApprovalRequest, a *Approval) error + UpdateApprovalContent(in *approval.ApprovalRequest, a *Approval) error BuildResContent(a *Approval, request *approval.ApprovalRequest) DeleteApproval(p *Approval) error } @@ -57,10 +63,10 @@ func StoreApproval(in *approval.ApprovalRequest) (*Approval, error) { // 保存基本信息 entity = &Approval{ - Domain: in.Domain, - SubmitterID: in.SubmitterId, + Domain: &in.Domain, + SubmitterID: in.SubmitterID, SubmitterName: in.SubmitterName, - ApproverID: in.ApproverId, + ApproverID: in.ApproverID, ApproverName: in.ApproverName, CopyUsers: FormatCopyUsers(in.CopyUsers), Type: in.Type, @@ -81,10 +87,119 @@ func StoreApproval(in *approval.ApprovalRequest) (*Approval, error) { } +func Viewed(in *approval.ViewedRequest) error { + + var entity *Approval + var err error + + if err = DB.First(&entity, in.ID).Error; err != nil { + return errors.New(m.ErrorNotFound) + } + + copyUsers := entity.CopyUsers + + for i, temp := range copyUsers { + if temp.ID == in.UserID { + temp.IsViewed = 1 + copyUsers[i] = temp + } + } + + return DB.Model(&Approval{}).Where(&Approval{ID: in.ID}).Updates(&Approval{CopyUsers: copyUsers}).Error + +} + +func UpdateApproval(in *approval.ApprovalRequest) (*Approval, error) { + var entity *Approval + + err := DB.Transaction(func(tx *gorm.DB) error { + + if departErr := DB.First(&entity, in.ID).Error; departErr != nil { + return errors.New(m.ErrorNotFound) + } + + if entity.Status != StatusDoing { + return errors.New(m.ErrorWrongStatus) + } else if in.Status != StatusDoing { //审批 + // 保存基本信息 + entity = &Approval{ + ID: in.ID, + Status: int8(in.Status), + Reply: in.Reply, + } + + return DB.Save(&entity).Error + } + + // 保存基本信息 + entity = &Approval{ + ID: in.ID, + //Domain: in.Domain, + //SubmitterID: in.SubmitterId, + //SubmitterName: in.SubmitterName, + //ApproverID: in.ApproverId, + //ApproverName: in.ApproverName, + //CopyUsers: FormatCopyUsers(in.CopyUsers), + //Type: in.Type, + Content: in.Content, + } + + if err := DB.Save(&entity).Error; err != nil { + return err + } + + // 不同类型保存不同的结构体 + err := entity.UpdateContent(in) + + return err + }) + + return entity, err + +} + +func approvalCalc(filter *Approval) *approval.Information { + + var num int64 + + info := &approval.Information{} + + DB.Model(&Approval{}).Where(&filter).Count(&num) + info.Total = uint64(num) + + DB.Model(&Approval{}).Where(&filter).Where(&Approval{Status: StatusOk}).Count(&num) + info.DoingTotal = uint64(num) + + DB.Model(&Approval{}).Where(&filter).Where(&Approval{Status: StatusOk}).Count(&num) + info.SuccessTotal = uint64(num) + + DB.Model(&Approval{}).Where(&filter).Where(&Approval{Status: StatusFail}).Count(&num) + info.FailTotal = uint64(num) + + return info +} + +// ApprovalInfo 统计 +func ApprovalInfo(in *approval.InformationRequest) (*approval.InformationResponse, error) { + + response := &approval.InformationResponse{ + MySubmitInfo: approvalCalc(&Approval{Domain: &in.Domain, SubmitterID: in.UserID}), + SubmitMeInfo: approvalCalc(&Approval{Domain: &in.Domain, ApproverID: in.UserID}), + DomainInfo: approvalCalc(&Approval{Domain: &in.Domain}), + } + + return response, nil + +} + func (m *Approval) SaveApprovalContent(in *approval.ApprovalRequest, a *Approval) error { return nil } +func (m *Approval) UpdateApprovalContent(in *approval.ApprovalRequest, a *Approval) error { + return nil +} + func (m *Approval) DeleteApproval(p *Approval) error { return nil } @@ -129,6 +244,18 @@ func (m *Approval) SaveContent(in *approval.ApprovalRequest) error { return err } +func (m *Approval) UpdateContent(in *approval.ApprovalRequest) error { + + factory, err := GetApprovalContentFactory(in.Type) + if err != nil { + return err + } + + err = factory.UpdateApprovalContent(in, m) + + return err +} + func ApprovalList(in *approval.ApprovalListRequest) ([]*Approval, int64) { var list []*Approval var count int64 diff --git a/pkg/model/approval_exhibition.go b/pkg/model/approval_exhibition.go index b641f7d..14e9dcc 100644 --- a/pkg/model/approval_exhibition.go +++ b/pkg/model/approval_exhibition.go @@ -7,16 +7,16 @@ import ( // ApprovalExhibition 绑定的画展包 type ApprovalExhibition struct { - ID uint64 `gorm:"primaryKey;column:id" json:"id"` // 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:"column:approval_id" json:"approvalId"` // 申请的id - ExhibitionID uint64 `gorm:"column:exhibition_id" json:"exhibitionId"` // 画展包的id - ExhibitionName string `gorm:"column:exhibition_name" json:"exhibitionName"` // 作品名称 - ArtworkID uint64 `gorm:"column:artwork_id" json:"artworkId"` // 作品类型id - ExhibitionSize uint64 `gorm:"column:exhibition_size" json:"exhibitionSize"` // 平尺数 - ExhibitionNumber string `gorm:"column:exhibition_number" json:"exhibitionNumber"` // 序号 + ID uint64 `gorm:"primaryKey;column:id" json:"id"` // 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:"column:approval_id" json:"approvalId"` // 申请的id + ExhibitionID uint64 `gorm:"column:exhibition_id" json:"exhibitionId"` // 画展包的id + PackageName string `gorm:"column:package_name" json:"PackageName"` // 作品名称 + PackageID uint64 `gorm:"column:package_id" json:"packageID"` // 作品类型id + PackageSize uint64 `gorm:"column:package_size" json:"PackageSize"` // 平尺数 + PackageNumber string `gorm:"column:package_number" json:"packageNumber"` // 序号 } // TableName get sql table name.获取数据库表名 diff --git a/pkg/model/bundle.go b/pkg/model/bundle.go index a67baff..058206a 100644 --- a/pkg/model/bundle.go +++ b/pkg/model/bundle.go @@ -1,7 +1,9 @@ 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" ) @@ -31,6 +33,22 @@ func (m *Bundle) SaveApprovalContent(in *approval.ApprovalRequest, a *Approval) return DB.Create(&m).Error } +func (m *Bundle) UpdateApprovalContent(in *approval.ApprovalRequest, a *Approval) error { + + var entity *Bundle + + if err := DB.Where(&Bundle{ApprovalID: a.ID}).First(&entity).Error; err != nil { + return errors.New(m2.ErrorNotFound) + } + + m.ID = entity.ID + //m.ApprovalID = a.ID + m.ReceivedAt = in.Bundle.ReceivedAt + m.ApplicationsNum = in.Bundle.ApplicationsNum + + return DB.Save(&m).Error +} + func (m *Bundle) BuildResContent(a *Approval, request *approval.ApprovalRequest) { request.Bundle = &approval.Bundle{ ID: m.ID, diff --git a/pkg/model/department_approval_setting.go b/pkg/model/department_approval_setting.go index 7275491..bb31f02 100644 --- a/pkg/model/department_approval_setting.go +++ b/pkg/model/department_approval_setting.go @@ -9,8 +9,9 @@ import ( ) type CopyUser struct { - ID uint64 - Name string + ID uint64 + Name string + IsViewed uint64 } type CopyUsers []CopyUser diff --git a/pkg/model/exhibition.go b/pkg/model/exhibition.go index efaaf12..65e2bf7 100644 --- a/pkg/model/exhibition.go +++ b/pkg/model/exhibition.go @@ -1,8 +1,8 @@ package model import ( - "fmt" "github.com/fonchain_enterprise/fonchain-approval/api/approval" + "github.com/fonchain_enterprise/fonchain-approval/pkg/common/collection" "gorm.io/plugin/soft_delete" "time" ) @@ -29,6 +29,7 @@ func (m *Exhibition) SaveApprovalContent(in *approval.ApprovalRequest, a *Approv //主体保存 m.ApprovalID = a.ID m.ReceivedAt = in.Exhibition.ReceivedAt + m.Address = in.Exhibition.Address err := DB.Create(m).Error if err != nil { @@ -36,28 +37,106 @@ func (m *Exhibition) SaveApprovalContent(in *approval.ApprovalRequest, a *Approv } //绑定画作保存 - var approvalWorks []ApprovalWork - for _, approvalWork := range in.Work.ApprovalWorks { - fmt.Println(approvalWork) - temp := ApprovalWork{ + var approvalExhibitions []ApprovalExhibition + for _, approvalExhibition := range in.Exhibition.ApprovalExhibitions { + temp := ApprovalExhibition{ ApprovalID: a.ID, - WorkID: m.ID, - ArtworkID: approvalWork.ArtworkId, - ArtworkName: approvalWork.ArtworkName, - ArtistName: approvalWork.ArtistName, - ArtworkCover: approvalWork.ArtworkCover, - ArtworkNumber: approvalWork.ArtworkNumber, + ExhibitionID: m.ID, + PackageName: approvalExhibition.PackageName, + PackageID: approvalExhibition.PackageID, + PackageSize: approvalExhibition.PackageSize, + PackageNumber: approvalExhibition.PackageNumber, } - approvalWorks = append(approvalWorks, temp) + approvalExhibitions = append(approvalExhibitions, temp) + } + + if len(approvalExhibitions) > 0 { + err = DB.Create(&approvalExhibitions).Error + } + + return err +} + +func (m *Exhibition) UpdateApprovalContent(in *approval.ApprovalRequest, a *Approval) error { + + approvalExhibitions := in.Exhibition.ApprovalExhibitions + var oldApprovalExhibitions []ApprovalExhibition + var oldPackageID []uint64 + var inPackageID []uint64 + var err error + inApprovalExhibitionMap := make(map[uint64]*approval.ApprovalExhibition, len(approvalExhibitions)) + + DB.Where(&ApprovalExhibition{ExhibitionID: m.ID}).Find(&oldApprovalExhibitions) + + for _, oldAW := range oldApprovalExhibitions { + oldPackageID = append(oldPackageID, oldAW.PackageID) } - if len(approvalWorks) > 0 { - err = DB.Create(&approvalWorks).Error + for _, approvalWork := range approvalExhibitions { + inPackageID = append(inPackageID, approvalWork.PackageID) + inApprovalExhibitionMap[approvalWork.PackageID] = approvalWork + } + + needDel := collection.DiffArrayUint64(oldPackageID, inPackageID) + + if len(needDel) > 0 { + DB.Where(&ApprovalExhibition{ExhibitionID: m.ID}).Where("package_id in ?", needDel). + Delete(&ApprovalExhibition{}) + } + + needAdd := collection.DiffArrayUint64(inPackageID, oldPackageID) + + //传递的id去除表 新增 + if len(needAdd) > 0 { + var approvalWorks []ApprovalExhibition + for _, one := range approvalExhibitions { + temp := ApprovalExhibition{ + ApprovalID: a.ID, + ExhibitionID: m.ID, + PackageName: one.PackageName, + PackageID: one.PackageID, + PackageSize: one.PackageSize, + PackageNumber: one.PackageNumber, + } + + approvalWorks = append(approvalWorks, temp) + } + + if len(approvalWorks) > 0 { + if err = DB.Create(&approvalWorks).Error; err != nil { + return err + } + } + } + + //更新 主要修改绑定的数据权限id + changeIds := collection.IntersectArrayUint64(inPackageID, oldPackageID) + if len(changeIds) > 0 { + for _, tempId := range changeIds { + + if _, ok := inApprovalExhibitionMap[tempId]; ok == false { + continue + } + + temp := ApprovalExhibition{ + ApprovalID: a.ID, + ExhibitionID: m.ID, + PackageName: inApprovalExhibitionMap[tempId].PackageName, + PackageID: inApprovalExhibitionMap[tempId].PackageID, + PackageSize: inApprovalExhibitionMap[tempId].PackageSize, + PackageNumber: inApprovalExhibitionMap[tempId].PackageNumber, + } + + DB.Model(&ApprovalExhibition{}). + Where(&ApprovalExhibition{PackageID: inApprovalExhibitionMap[tempId].PackageID, ExhibitionID: m.ID}). + Updates(temp) + } } return err + } func (m *Exhibition) BuildResContent(a *Approval, request *approval.ApprovalRequest) { @@ -67,13 +146,13 @@ func (m *Exhibition) BuildResContent(a *Approval, request *approval.ApprovalRequ for _, one := range m.ApprovalExhibitions { temp := &approval.ApprovalExhibition{ - ID: one.ID, - ApprovalID: one.ApprovalID, - ArtworkId: one.ArtworkID, - ExhibitionID: one.ExhibitionID, - ExhibitionName: one.ExhibitionName, - ExhibitionSize: one.ExhibitionSize, - ExhibitionNumber: one.ExhibitionNumber, + ID: one.ID, + ApprovalID: one.ApprovalID, + ExhibitionID: one.ExhibitionID, + PackageID: one.PackageID, + PackageName: one.PackageName, + PackageSize: one.PackageSize, + PackageNumber: one.PackageNumber, } approvalExhibitions = append(approvalExhibitions, temp) diff --git a/pkg/model/show.go b/pkg/model/show.go index b44fba1..670cded 100644 --- a/pkg/model/show.go +++ b/pkg/model/show.go @@ -1,7 +1,9 @@ package model import ( + "errors" "github.com/fonchain_enterprise/fonchain-approval/api/approval" + m2 "github.com/fonchain_enterprise/fonchain-approval/pkg/m" "time" ) @@ -27,6 +29,21 @@ func (m *Show) SaveApprovalContent(in *approval.ApprovalRequest, a *Approval) er m.ShowAt = in.Show.ShowAt return DB.Create(&m).Error } + +func (m *Show) UpdateApprovalContent(in *approval.ApprovalRequest, a *Approval) error { + + var entity *Show + + if err := DB.Where(&Show{ApprovalID: a.ApproverID}).First(&entity).Error; err != nil { + return errors.New(m2.ErrorNotFound) + } + + m.ID = entity.ID + m.ArtistNum = in.Show.ArtistNum + m.ShowAt = in.Show.ShowAt + return DB.Save(&m).Error +} + func (m *Show) BuildResContent(a *Approval, request *approval.ApprovalRequest) { request.Show = &approval.Show{ ID: m.ID, diff --git a/pkg/model/work.go b/pkg/model/work.go index 9c9730d..70d0ac6 100644 --- a/pkg/model/work.go +++ b/pkg/model/work.go @@ -1,8 +1,11 @@ package model import ( + "errors" "fmt" "github.com/fonchain_enterprise/fonchain-approval/api/approval" + "github.com/fonchain_enterprise/fonchain-approval/pkg/common/collection" + m2 "github.com/fonchain_enterprise/fonchain-approval/pkg/m" "gorm.io/plugin/soft_delete" "time" ) @@ -44,7 +47,7 @@ func (m *Work) SaveApprovalContent(in *approval.ApprovalRequest, a *Approval) er ApprovalID: a.ID, WorkID: m.ID, - ArtworkID: approvalWork.ArtworkId, + ArtworkID: approvalWork.ArtworkID, ArtworkName: approvalWork.ArtworkName, ArtistName: approvalWork.ArtistName, ArtworkCover: approvalWork.ArtworkCover, @@ -61,6 +64,108 @@ func (m *Work) SaveApprovalContent(in *approval.ApprovalRequest, a *Approval) er return err } +func (m *Work) UpdateApprovalContent(in *approval.ApprovalRequest, a *Approval) error { + + var entity *Work + var err error + + //主体保存 + if err := DB.Where(&Work{ApprovalID: a.ID}).First(&entity).Error; err != nil { + return errors.New(m2.ErrorNotFound) + } + + m.ID = entity.ID + //m.ApprovalID = a.ApproverID + m.ReturnAt = in.Work.ReturnAt + m.ReceivedAt = in.Work.ReceivedAt + + if err = DB.Save(m).Error; err != nil { + return err + } + + return m.UpdateContent(in, a) +} + +func (m *Work) UpdateContent(in *approval.ApprovalRequest, a *Approval) error { + var oldApprovalWorks []ApprovalWork + var oldArtWorkID []uint64 + var inArtWorkID []uint64 + var err error + inApprovalWorkMap := make(map[uint64]*approval.ApprovalWork, len(in.Work.ApprovalWorks)) + + DB.Where(&ApprovalWork{WorkID: m.ID}).Find(&oldApprovalWorks) + + for _, oldAW := range oldApprovalWorks { + oldArtWorkID = append(oldArtWorkID, oldAW.ArtworkID) + } + + for _, approvalWork := range in.Work.ApprovalWorks { + inArtWorkID = append(inArtWorkID, approvalWork.ArtworkID) + inApprovalWorkMap[approvalWork.ArtworkID] = approvalWork + } + + needDel := collection.DiffArrayUint64(oldArtWorkID, inArtWorkID) + + if len(needDel) > 0 { + DB.Where(&ApprovalWork{WorkID: m.ID}).Where("artwork_id in ?", needDel). + Delete(&ApprovalWork{}) + } + + needAdd := collection.DiffArrayUint64(inArtWorkID, oldArtWorkID) + + //传递的id去除表 新增 + if len(needAdd) > 0 { + var approvalWorks []ApprovalWork + for _, approvalWork := range in.Work.ApprovalWorks { + temp := ApprovalWork{ + ApprovalID: a.ID, + WorkID: m.ID, + ArtworkID: approvalWork.ArtworkID, + ArtworkName: approvalWork.ArtworkName, + ArtistName: approvalWork.ArtistName, + ArtworkCover: approvalWork.ArtworkCover, + ArtworkNumber: approvalWork.ArtworkNumber, + } + + approvalWorks = append(approvalWorks, temp) + } + + if len(approvalWorks) > 0 { + if err = DB.Create(&approvalWorks).Error; err != nil { + return err + } + } + } + + //更新 主要修改绑定的数据权限id + changeIds := collection.IntersectArrayUint64(inArtWorkID, oldArtWorkID) + if len(changeIds) > 0 { + for _, tempId := range changeIds { + + if _, ok := inApprovalWorkMap[tempId]; ok == false { + continue + } + + temp := ApprovalWork{ + ApprovalID: a.ID, + WorkID: m.ID, + ArtworkID: inApprovalWorkMap[tempId].ArtworkID, + ArtworkName: inApprovalWorkMap[tempId].ArtworkName, + ArtistName: inApprovalWorkMap[tempId].ArtistName, + ArtworkCover: inApprovalWorkMap[tempId].ArtworkCover, + ArtworkNumber: inApprovalWorkMap[tempId].ArtworkNumber, + } + + DB.Model(&ApprovalWork{}). + Where(&ApprovalWork{WorkID: m.ID, ArtworkID: inApprovalWorkMap[tempId].ArtworkID}). + Updates(temp) + } + } + + return err + +} + func (m *Work) BuildResContent(a *Approval, request *approval.ApprovalRequest) { //ApprovalWorks []*ApprovalWork `protobuf:"bytes,4,rep,name=ApprovalWorks,json=approvalWorks,proto3" json:"ApprovalWorks,omitempty"` @@ -70,9 +175,9 @@ func (m *Work) BuildResContent(a *Approval, request *approval.ApprovalRequest) { temp := &approval.ApprovalWork{ ID: one.ID, - WorkId: one.WorkID, + WorkID: one.WorkID, ApprovalID: one.ApprovalID, - ArtworkId: one.ArtworkID, + ArtworkID: one.ArtworkID, ArtworkName: one.ArtworkName, ArtistName: one.ArtistName, ArtworkCover: one.ArtworkCover, diff --git a/pkg/serializer/approval.go b/pkg/serializer/approval.go index 5d572c1..c1dc51b 100644 --- a/pkg/serializer/approval.go +++ b/pkg/serializer/approval.go @@ -14,13 +14,13 @@ func BuildApproval(entity *model.Approval) *approval.ApprovalRequest { response := &approval.ApprovalRequest{ ID: entity.ID, - Domain: entity.Domain, + Domain: *entity.Domain, Status: uint64(entity.Status), Type: entity.Type, - ApproverId: entity.ApproverID, + ApproverID: entity.ApproverID, ApproverName: entity.ApproverName, CopyUsers: model.FormatToResponse(entity.CopyUsers), - SubmitterId: entity.SubmitterID, + SubmitterID: entity.SubmitterID, SubmitterName: entity.SubmitterName, Content: entity.Content, Reply: entity.Reply, @@ -35,7 +35,7 @@ func BuildApproval(entity *model.Approval) *approval.ApprovalRequest { return response } -//BuildApproval 处理单个detail返回 +//BuildApprovals 处理单个detail返回 func BuildApprovals(list []*model.Approval) (details []*approval.ApprovalRequest) { for _, item := range list { diff --git a/pkg/serializer/department_approval_setting.go b/pkg/serializer/department_approval_setting.go index 49b9bee..c21ce06 100644 --- a/pkg/serializer/department_approval_setting.go +++ b/pkg/serializer/department_approval_setting.go @@ -21,9 +21,9 @@ func BuildSetting(entity *model.DepartmentApprovalSetting) *approval.SettingRequ response := &approval.SettingRequest{ ID: entity.ID, Domain: entity.Domain, - DepartmentId: entity.DepartmentID, + DepartmentID: entity.DepartmentID, CopyUsers: copyUsers, - ApproverId: entity.ApproverID, + ApproverID: entity.ApproverID, ApproverName: entity.ApproverName, } diff --git a/pkg/service/approval.go b/pkg/service/approval.go index 3f6858e..521adb9 100644 --- a/pkg/service/approval.go +++ b/pkg/service/approval.go @@ -2,7 +2,6 @@ package service import ( "context" - "fmt" "github.com/fonchain_enterprise/fonchain-approval/api/approval" "github.com/fonchain_enterprise/fonchain-approval/pkg/model" "github.com/fonchain_enterprise/fonchain-approval/pkg/serializer" @@ -24,7 +23,16 @@ func (a *ApprovalProvider) Create(ctx context.Context, in *approval.ApprovalRequ } func (a *ApprovalProvider) Update(ctx context.Context, in *approval.ApprovalRequest) (*approval.ApprovalResponse, error) { - return nil, nil + + response := &approval.ApprovalResponse{} + + entity, err := model.UpdateApproval(in) + + response.ID = entity.ID + response.Success = true + + return response, err + } func (a *ApprovalProvider) Remove(ctx context.Context, in *approval.ApprovalDetail) (*approval.ApprovalRemove, error) { @@ -37,7 +45,7 @@ func (a *ApprovalProvider) Remove(ctx context.Context, in *approval.ApprovalDeta var entity *model.Approval // 确定有数据则执行删除 - if err = model.DB.Where(&model.Approval{Domain: in.Domain}). + if err = model.DB.Where(&model.Approval{Domain: &in.Domain}). Find(&entity, in.ID).Error; err != nil { return err } @@ -47,7 +55,7 @@ func (a *ApprovalProvider) Remove(ctx context.Context, in *approval.ApprovalDeta return err } - if err = model.DB.Where(&model.Approval{Domain: in.Domain}). + if err = model.DB.Where(&model.Approval{Domain: &in.Domain}). Delete(&model.Approval{}, in.ID).Error; err != nil { return err } @@ -79,6 +87,28 @@ func (a *ApprovalProvider) Detail(ctx context.Context, in *approval.ApprovalDeta return response, err } +func (a *ApprovalProvider) Information(ctx context.Context, in *approval.InformationRequest) (*approval.InformationResponse, error) { + + return model.ApprovalInfo(in) + +} + +func (a *ApprovalProvider) Viewed(ctx context.Context, in *approval.ViewedRequest) (*approval.ApprovalResponse, error) { + + response := &approval.ApprovalResponse{} + var err error + + if err = model.Viewed(in); err != nil { + return response, err + } + + response.ID = in.ID + response.Success = true + + return response, err + +} + func (a *ApprovalProvider) List(ctx context.Context, in *approval.ApprovalListRequest) (*approval.ApprovalListResponse, error) { //获取人的 部门角色(1、管理组 2、超级管理 3、Leader角色) @@ -97,40 +127,35 @@ func (a *ApprovalProvider) List(ctx context.Context, in *approval.ApprovalListRe // UpdateSetting 设置配置抄送者和审核者 func (a *ApprovalProvider) UpdateSetting(ctx context.Context, in *approval.SettingRequest) (*approval.SettingResponse, error) { - exhibit := "" - exhibit += in.Domain - - fmt.Println(exhibit) - + var err error response := &approval.SettingResponse{} var setting model.DepartmentApprovalSetting copyUsers := model.FormatCopyUsers(in.CopyUsers) + //首次 if err := model.DB.Model(&model.DepartmentApprovalSetting{}). - Where(&model.DepartmentApprovalSetting{Domain: in.Domain, DepartmentID: in.DepartmentId}). + Where(&model.DepartmentApprovalSetting{Domain: in.Domain, DepartmentID: in.DepartmentID}). First(&setting).Error; err != nil { setting = model.DepartmentApprovalSetting{ - DepartmentID: in.DepartmentId, + DepartmentID: in.DepartmentID, CopyUsers: copyUsers, - ApproverID: in.ApproverId, + ApproverID: in.ApproverID, ApproverName: in.ApproverName, Domain: in.Domain, } - - model.DB.Create(&setting) } else { - setting.DepartmentID = in.DepartmentId + setting.DepartmentID = in.DepartmentID setting.CopyUsers = copyUsers - setting.ApproverID = in.ApproverId + setting.ApproverID = in.ApproverID setting.ApproverName = in.ApproverName - model.DB.Save(&setting) } + err = model.DB.Save(&setting).Error + response.ID = setting.ID response.Success = true - - return response, nil + return response, err } func (a *ApprovalProvider) DetailSetting(ctx context.Context, in *approval.DetailSettingRequest) (*approval.SettingRequest, error) { @@ -139,7 +164,7 @@ func (a *ApprovalProvider) DetailSetting(ctx context.Context, in *approval.Detai var setting model.DepartmentApprovalSetting if err := model.DB.Model(&model.DepartmentApprovalSetting{}). - Where(&model.DepartmentApprovalSetting{Domain: in.Domain, DepartmentID: in.DepartmentId}). + Where(&model.DepartmentApprovalSetting{Domain: in.Domain, DepartmentID: in.DepartmentID}). First(&setting).Error; err != nil { response.Domain = in.Domain } else {