diff --git a/cmd/internal/controller/artistInfo_artwork.go b/cmd/internal/controller/artistInfo_artwork.go index 9351357..477407a 100644 --- a/cmd/internal/controller/artistInfo_artwork.go +++ b/cmd/internal/controller/artistInfo_artwork.go @@ -20,6 +20,11 @@ type ArtistInfoArtworkProvider struct { artistInfoLogic logic.ArtistInfoArtworkLogic } +// 检查画作是否可编辑 +func (a ArtistInfoArtworkProvider) CheckArtworkEditable(ctx context.Context, request *artistInfoArtwork.ArtworkUidRequest) (*artistInfoArtwork.CheckArtworkEditableResponse, error) { + return a.artistInfoLogic.CheckArtworkEditable(request) +} + func (a ArtistInfoArtworkProvider) UpdateArtworkAuditStatus(ctx context.Context, request *artistInfoArtwork.UpdateArtworkAuditStatusRequest) (*artistInfoArtwork.ArtworkCommonNoParams, error) { return a.artistInfoLogic.UpdateArtworkAuditStatus(request) } diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index ad1ec3f..923bca3 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -156,3 +156,17 @@ func (a ArtistInfoArtworkLogic) UpdateArtworkAuditStatus(request *artistInfoArtw err = dao.UpdateAuditStatus(request.ArtworkUid, request.AuditStatus, request.AuditMark, request.AuditMark2) return } +func (a ArtistInfoArtworkLogic) CheckArtworkEditable(request *artistInfoArtwork.ArtworkUidRequest) (res *artistInfoArtwork.CheckArtworkEditableResponse, err error) { + res = &artistInfoArtwork.CheckArtworkEditableResponse{ + Editable: false, + } + lockDetail, err := dao.GetArtworkLockDetail(request.ArtworkUid) + if err != nil { + return nil, err + } + //如果画作为锁定状态 并且有锁定时间 并且状态不是已通过 + if lockDetail.Status == 1 && lockDetail.LockTime != "" && lockDetail.AuditStatus != 2 { + res.Editable = true + } + return +} diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.go index b65332a..bd495da 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.go @@ -116,6 +116,53 @@ func (*ArtworkCommonNoParams) Descriptor() ([]byte, []int) { return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{0} } +type ArtworkUidRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtworkUid string `protobuf:"bytes,1,opt,name=ArtworkUid,proto3" json:"ArtworkUid,omitempty"` +} + +func (x *ArtworkUidRequest) Reset() { + *x = ArtworkUidRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtwork_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtworkUidRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtworkUidRequest) ProtoMessage() {} + +func (x *ArtworkUidRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtwork_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 ArtworkUidRequest.ProtoReflect.Descriptor instead. +func (*ArtworkUidRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{1} +} + +func (x *ArtworkUidRequest) GetArtworkUid() string { + if x != nil { + return x.ArtworkUid + } + return "" +} + type CreateArtworkLockRecordReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -130,7 +177,7 @@ type CreateArtworkLockRecordReq struct { func (x *CreateArtworkLockRecordReq) Reset() { *x = CreateArtworkLockRecordReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[1] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -143,7 +190,7 @@ func (x *CreateArtworkLockRecordReq) String() string { func (*CreateArtworkLockRecordReq) ProtoMessage() {} func (x *CreateArtworkLockRecordReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[1] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -156,7 +203,7 @@ func (x *CreateArtworkLockRecordReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateArtworkLockRecordReq.ProtoReflect.Descriptor instead. func (*CreateArtworkLockRecordReq) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{1} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{2} } func (x *CreateArtworkLockRecordReq) GetArtistUid() string { @@ -199,7 +246,7 @@ type ArtworkLockActionRequest struct { func (x *ArtworkLockActionRequest) Reset() { *x = ArtworkLockActionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[2] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -212,7 +259,7 @@ func (x *ArtworkLockActionRequest) String() string { func (*ArtworkLockActionRequest) ProtoMessage() {} func (x *ArtworkLockActionRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[2] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -225,7 +272,7 @@ func (x *ArtworkLockActionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkLockActionRequest.ProtoReflect.Descriptor instead. func (*ArtworkLockActionRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{2} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{3} } func (x *ArtworkLockActionRequest) GetArtistUid() string { @@ -255,7 +302,7 @@ type GetArtworkLockRecordsRequest struct { func (x *GetArtworkLockRecordsRequest) Reset() { *x = GetArtworkLockRecordsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[3] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -268,7 +315,7 @@ func (x *GetArtworkLockRecordsRequest) String() string { func (*GetArtworkLockRecordsRequest) ProtoMessage() {} func (x *GetArtworkLockRecordsRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[3] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -281,7 +328,7 @@ func (x *GetArtworkLockRecordsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtworkLockRecordsRequest.ProtoReflect.Descriptor instead. func (*GetArtworkLockRecordsRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{3} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{4} } func (x *GetArtworkLockRecordsRequest) GetArtistUid() string { @@ -325,7 +372,7 @@ type ArtistLockInfo struct { func (x *ArtistLockInfo) Reset() { *x = ArtistLockInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[4] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -338,7 +385,7 @@ func (x *ArtistLockInfo) String() string { func (*ArtistLockInfo) ProtoMessage() {} func (x *ArtistLockInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[4] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -351,7 +398,7 @@ func (x *ArtistLockInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistLockInfo.ProtoReflect.Descriptor instead. func (*ArtistLockInfo) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{4} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{5} } func (x *ArtistLockInfo) GetArtistUid() string { @@ -435,7 +482,7 @@ type ArtworkLockList struct { func (x *ArtworkLockList) Reset() { *x = ArtworkLockList{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[5] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -448,7 +495,7 @@ func (x *ArtworkLockList) String() string { func (*ArtworkLockList) ProtoMessage() {} func (x *ArtworkLockList) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[5] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -461,7 +508,7 @@ func (x *ArtworkLockList) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkLockList.ProtoReflect.Descriptor instead. func (*ArtworkLockList) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{5} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{6} } func (x *ArtworkLockList) GetData() []*ArtistLockInfo { @@ -482,7 +529,7 @@ type ArtworkUidList struct { func (x *ArtworkUidList) Reset() { *x = ArtworkUidList{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[6] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -495,7 +542,7 @@ func (x *ArtworkUidList) String() string { func (*ArtworkUidList) ProtoMessage() {} func (x *ArtworkUidList) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[6] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -508,7 +555,7 @@ func (x *ArtworkUidList) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkUidList.ProtoReflect.Descriptor instead. func (*ArtworkUidList) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{6} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{7} } func (x *ArtworkUidList) GetArtworkUids() []string { @@ -529,7 +576,7 @@ type DeleteArtworkRecordRequest struct { func (x *DeleteArtworkRecordRequest) Reset() { *x = DeleteArtworkRecordRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[7] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -542,7 +589,7 @@ func (x *DeleteArtworkRecordRequest) String() string { func (*DeleteArtworkRecordRequest) ProtoMessage() {} func (x *DeleteArtworkRecordRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[7] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -555,7 +602,7 @@ func (x *DeleteArtworkRecordRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteArtworkRecordRequest.ProtoReflect.Descriptor instead. func (*DeleteArtworkRecordRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{7} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{8} } func (x *DeleteArtworkRecordRequest) GetArtworkUids() []string { @@ -576,7 +623,7 @@ type GetArtworkLockHistoryRequest struct { func (x *GetArtworkLockHistoryRequest) Reset() { *x = GetArtworkLockHistoryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[8] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -589,7 +636,7 @@ func (x *GetArtworkLockHistoryRequest) String() string { func (*GetArtworkLockHistoryRequest) ProtoMessage() {} func (x *GetArtworkLockHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[8] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -602,7 +649,7 @@ func (x *GetArtworkLockHistoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtworkLockHistoryRequest.ProtoReflect.Descriptor instead. func (*GetArtworkLockHistoryRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{8} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{9} } func (x *GetArtworkLockHistoryRequest) GetArtistUid() string { @@ -617,13 +664,13 @@ type GetArtworkLockDetailRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ArtworkUid string `protobuf:"bytes,1,opt,name=artworkUid,proto3" json:"artworkUid,omitempty"` //画家uid; + ArtworkUid string `protobuf:"bytes,1,opt,name=artworkUid,proto3" json:"artworkUid,omitempty"` //画作uid; } func (x *GetArtworkLockDetailRequest) Reset() { *x = GetArtworkLockDetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[9] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -636,7 +683,7 @@ func (x *GetArtworkLockDetailRequest) String() string { func (*GetArtworkLockDetailRequest) ProtoMessage() {} func (x *GetArtworkLockDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[9] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -649,7 +696,7 @@ func (x *GetArtworkLockDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtworkLockDetailRequest.ProtoReflect.Descriptor instead. func (*GetArtworkLockDetailRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{9} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{10} } func (x *GetArtworkLockDetailRequest) GetArtworkUid() string { @@ -687,7 +734,7 @@ type ArtworkPreviewInfo struct { func (x *ArtworkPreviewInfo) Reset() { *x = ArtworkPreviewInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[10] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -700,7 +747,7 @@ func (x *ArtworkPreviewInfo) String() string { func (*ArtworkPreviewInfo) ProtoMessage() {} func (x *ArtworkPreviewInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[10] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -713,7 +760,7 @@ func (x *ArtworkPreviewInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkPreviewInfo.ProtoReflect.Descriptor instead. func (*ArtworkPreviewInfo) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{10} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{11} } func (x *ArtworkPreviewInfo) GetArtistUuid() string { @@ -846,7 +893,7 @@ type GetArtworkLockHistoryResponse struct { func (x *GetArtworkLockHistoryResponse) Reset() { *x = GetArtworkLockHistoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[11] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -859,7 +906,7 @@ func (x *GetArtworkLockHistoryResponse) String() string { func (*GetArtworkLockHistoryResponse) ProtoMessage() {} func (x *GetArtworkLockHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[11] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -872,7 +919,7 @@ func (x *GetArtworkLockHistoryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtworkLockHistoryResponse.ProtoReflect.Descriptor instead. func (*GetArtworkLockHistoryResponse) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{11} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{12} } func (x *GetArtworkLockHistoryResponse) GetGroupList() []*ArtworkLockRecord { @@ -894,7 +941,7 @@ type ArtworkLockRecord struct { func (x *ArtworkLockRecord) Reset() { *x = ArtworkLockRecord{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[12] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -907,7 +954,7 @@ func (x *ArtworkLockRecord) String() string { func (*ArtworkLockRecord) ProtoMessage() {} func (x *ArtworkLockRecord) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[12] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -920,7 +967,7 @@ func (x *ArtworkLockRecord) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkLockRecord.ProtoReflect.Descriptor instead. func (*ArtworkLockRecord) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{12} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{13} } func (x *ArtworkLockRecord) GetLockGroup() string { @@ -951,7 +998,7 @@ type UpdateArtworkAuditStatusRequest struct { func (x *UpdateArtworkAuditStatusRequest) Reset() { *x = UpdateArtworkAuditStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[13] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -964,7 +1011,7 @@ func (x *UpdateArtworkAuditStatusRequest) String() string { func (*UpdateArtworkAuditStatusRequest) ProtoMessage() {} func (x *UpdateArtworkAuditStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[13] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -977,7 +1024,7 @@ func (x *UpdateArtworkAuditStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateArtworkAuditStatusRequest.ProtoReflect.Descriptor instead. func (*UpdateArtworkAuditStatusRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{13} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{14} } func (x *UpdateArtworkAuditStatusRequest) GetArtworkUid() string { @@ -1008,6 +1055,53 @@ func (x *UpdateArtworkAuditStatusRequest) GetAuditMark2() string { return "" } +type CheckArtworkEditableResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Editable bool `protobuf:"varint,1,opt,name=editable,proto3" json:"editable,omitempty"` +} + +func (x *CheckArtworkEditableResponse) Reset() { + *x = CheckArtworkEditableResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtwork_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckArtworkEditableResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckArtworkEditableResponse) ProtoMessage() {} + +func (x *CheckArtworkEditableResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtwork_proto_msgTypes[15] + 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 CheckArtworkEditableResponse.ProtoReflect.Descriptor instead. +func (*CheckArtworkEditableResponse) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{15} +} + +func (x *CheckArtworkEditableResponse) GetEditable() bool { + if x != nil { + return x.Editable + } + return false +} + var File_pb_artistinfoArtwork_proto protoreflect.FileDescriptor var file_pb_artistinfoArtwork_proto_rawDesc = []byte{ @@ -1018,184 +1112,197 @@ var file_pb_artistinfoArtwork_proto_rawDesc = []byte{ 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x17, 0x0a, 0x15, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, - 0x71, 0x12, 0x28, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, - 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0a, 0x61, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x4c, 0x0a, 0x18, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xa6, 0x01, 0x0a, 0x1c, 0x47, 0x65, - 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x09, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, - 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x55, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0xbc, 0x02, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, - 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, - 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, - 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, - 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, - 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, - 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, - 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0x41, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x32, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, - 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x6d, 0x73, 0x22, 0x33, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x22, 0xa6, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, - 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, - 0x64, 0x22, 0x96, 0x04, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, - 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, - 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x26, - 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x64, 0x50, 0x69, - 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x12, 0x1e, - 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, + 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, + 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, + 0x22, 0x4c, 0x0a, 0x18, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xa6, + 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x28, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xbc, 0x02, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x41, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x32, 0x0a, 0x0e, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3e, 0x0a, + 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, + 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x47, + 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, + 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x22, 0x96, 0x04, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, + 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, + 0x6c, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, + 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x64, + 0x50, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, + 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, + 0x72, 0x6b, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, + 0x5c, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6d, 0x0a, + 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xa1, 0x01, 0x0a, + 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, + 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, - 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x0e, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, - 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x5c, 0x0a, 0x1d, 0x47, 0x65, - 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x22, 0x3a, 0x0a, 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2a, 0x67, 0x0a, 0x10, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x6f, 0x77, 0x4c, 0x6f, + 0x63, 0x6b, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x01, 0x12, 0x10, 0x0a, + 0x0c, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x65, 0x10, 0x02, 0x12, + 0x14, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x10, 0x03, 0x32, 0xc6, 0x06, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x66, 0x0a, 0x17, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x09, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x64, - 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x64, - 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, - 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, - 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, - 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x2a, 0x67, 0x0a, 0x10, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x6f, 0x77, 0x4c, 0x6f, 0x63, - 0x6b, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x65, 0x10, 0x02, 0x12, 0x14, - 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x10, 0x03, 0x32, 0xe3, 0x05, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x66, 0x0a, 0x17, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, - 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x22, 0x00, 0x12, 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, + 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, + 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, + 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, + 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, - 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, - 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x18, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, - 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, - 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5d, + 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, + 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x6c, 0x0a, + 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, + 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x14, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x16, + 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1211,45 +1318,49 @@ func file_pb_artistinfoArtwork_proto_rawDescGZIP() []byte { } var file_pb_artistinfoArtwork_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_pb_artistinfoArtwork_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_pb_artistinfoArtwork_proto_msgTypes = make([]protoimpl.MessageInfo, 16) var file_pb_artistinfoArtwork_proto_goTypes = []interface{}{ (ArtworkQueryMode)(0), // 0: artistinfo.ArtworkQueryMode (*ArtworkCommonNoParams)(nil), // 1: artistinfo.ArtworkCommonNoParams - (*CreateArtworkLockRecordReq)(nil), // 2: artistinfo.CreateArtworkLockRecordReq - (*ArtworkLockActionRequest)(nil), // 3: artistinfo.ArtworkLockActionRequest - (*GetArtworkLockRecordsRequest)(nil), // 4: artistinfo.GetArtworkLockRecordsRequest - (*ArtistLockInfo)(nil), // 5: artistinfo.ArtistLockInfo - (*ArtworkLockList)(nil), // 6: artistinfo.ArtworkLockList - (*ArtworkUidList)(nil), // 7: artistinfo.ArtworkUidList - (*DeleteArtworkRecordRequest)(nil), // 8: artistinfo.DeleteArtworkRecordRequest - (*GetArtworkLockHistoryRequest)(nil), // 9: artistinfo.GetArtworkLockHistoryRequest - (*GetArtworkLockDetailRequest)(nil), // 10: artistinfo.GetArtworkLockDetailRequest - (*ArtworkPreviewInfo)(nil), // 11: artistinfo.ArtworkPreviewInfo - (*GetArtworkLockHistoryResponse)(nil), // 12: artistinfo.GetArtworkLockHistoryResponse - (*ArtworkLockRecord)(nil), // 13: artistinfo.ArtworkLockRecord - (*UpdateArtworkAuditStatusRequest)(nil), // 14: artistinfo.UpdateArtworkAuditStatusRequest + (*ArtworkUidRequest)(nil), // 2: artistinfo.ArtworkUidRequest + (*CreateArtworkLockRecordReq)(nil), // 3: artistinfo.CreateArtworkLockRecordReq + (*ArtworkLockActionRequest)(nil), // 4: artistinfo.ArtworkLockActionRequest + (*GetArtworkLockRecordsRequest)(nil), // 5: artistinfo.GetArtworkLockRecordsRequest + (*ArtistLockInfo)(nil), // 6: artistinfo.ArtistLockInfo + (*ArtworkLockList)(nil), // 7: artistinfo.ArtworkLockList + (*ArtworkUidList)(nil), // 8: artistinfo.ArtworkUidList + (*DeleteArtworkRecordRequest)(nil), // 9: artistinfo.DeleteArtworkRecordRequest + (*GetArtworkLockHistoryRequest)(nil), // 10: artistinfo.GetArtworkLockHistoryRequest + (*GetArtworkLockDetailRequest)(nil), // 11: artistinfo.GetArtworkLockDetailRequest + (*ArtworkPreviewInfo)(nil), // 12: artistinfo.ArtworkPreviewInfo + (*GetArtworkLockHistoryResponse)(nil), // 13: artistinfo.GetArtworkLockHistoryResponse + (*ArtworkLockRecord)(nil), // 14: artistinfo.ArtworkLockRecord + (*UpdateArtworkAuditStatusRequest)(nil), // 15: artistinfo.UpdateArtworkAuditStatusRequest + (*CheckArtworkEditableResponse)(nil), // 16: artistinfo.CheckArtworkEditableResponse } var file_pb_artistinfoArtwork_proto_depIdxs = []int32{ 0, // 0: artistinfo.GetArtworkLockRecordsRequest.queryType:type_name -> artistinfo.ArtworkQueryMode - 5, // 1: artistinfo.ArtworkLockList.data:type_name -> artistinfo.ArtistLockInfo - 13, // 2: artistinfo.GetArtworkLockHistoryResponse.groupList:type_name -> artistinfo.ArtworkLockRecord - 11, // 3: artistinfo.ArtworkLockRecord.dataList:type_name -> artistinfo.ArtworkPreviewInfo - 2, // 4: artistinfo.ArtistInfoArtwork.CreateArtworkLockRecord:input_type -> artistinfo.CreateArtworkLockRecordReq - 3, // 5: artistinfo.ArtistInfoArtwork.ArtworkLockAction:input_type -> artistinfo.ArtworkLockActionRequest - 4, // 6: artistinfo.ArtistInfoArtwork.GetArtworkLockRecords:input_type -> artistinfo.GetArtworkLockRecordsRequest - 9, // 7: artistinfo.ArtistInfoArtwork.GetArtworkLockHistoryGroup:input_type -> artistinfo.GetArtworkLockHistoryRequest - 8, // 8: artistinfo.ArtistInfoArtwork.DeleteArtworkRecord:input_type -> artistinfo.DeleteArtworkRecordRequest - 10, // 9: artistinfo.ArtistInfoArtwork.GetArtworkLockDetail:input_type -> artistinfo.GetArtworkLockDetailRequest - 14, // 10: artistinfo.ArtistInfoArtwork.UpdateArtworkAuditStatus:input_type -> artistinfo.UpdateArtworkAuditStatusRequest - 1, // 11: artistinfo.ArtistInfoArtwork.CreateArtworkLockRecord:output_type -> artistinfo.ArtworkCommonNoParams - 1, // 12: artistinfo.ArtistInfoArtwork.ArtworkLockAction:output_type -> artistinfo.ArtworkCommonNoParams - 6, // 13: artistinfo.ArtistInfoArtwork.GetArtworkLockRecords:output_type -> artistinfo.ArtworkLockList - 12, // 14: artistinfo.ArtistInfoArtwork.GetArtworkLockHistoryGroup:output_type -> artistinfo.GetArtworkLockHistoryResponse - 1, // 15: artistinfo.ArtistInfoArtwork.DeleteArtworkRecord:output_type -> artistinfo.ArtworkCommonNoParams - 5, // 16: artistinfo.ArtistInfoArtwork.GetArtworkLockDetail:output_type -> artistinfo.ArtistLockInfo - 1, // 17: artistinfo.ArtistInfoArtwork.UpdateArtworkAuditStatus:output_type -> artistinfo.ArtworkCommonNoParams - 11, // [11:18] is the sub-list for method output_type - 4, // [4:11] is the sub-list for method input_type + 6, // 1: artistinfo.ArtworkLockList.data:type_name -> artistinfo.ArtistLockInfo + 14, // 2: artistinfo.GetArtworkLockHistoryResponse.groupList:type_name -> artistinfo.ArtworkLockRecord + 12, // 3: artistinfo.ArtworkLockRecord.dataList:type_name -> artistinfo.ArtworkPreviewInfo + 3, // 4: artistinfo.ArtistInfoArtwork.CreateArtworkLockRecord:input_type -> artistinfo.CreateArtworkLockRecordReq + 4, // 5: artistinfo.ArtistInfoArtwork.ArtworkLockAction:input_type -> artistinfo.ArtworkLockActionRequest + 5, // 6: artistinfo.ArtistInfoArtwork.GetArtworkLockRecords:input_type -> artistinfo.GetArtworkLockRecordsRequest + 10, // 7: artistinfo.ArtistInfoArtwork.GetArtworkLockHistoryGroup:input_type -> artistinfo.GetArtworkLockHistoryRequest + 9, // 8: artistinfo.ArtistInfoArtwork.DeleteArtworkRecord:input_type -> artistinfo.DeleteArtworkRecordRequest + 11, // 9: artistinfo.ArtistInfoArtwork.GetArtworkLockDetail:input_type -> artistinfo.GetArtworkLockDetailRequest + 15, // 10: artistinfo.ArtistInfoArtwork.UpdateArtworkAuditStatus:input_type -> artistinfo.UpdateArtworkAuditStatusRequest + 2, // 11: artistinfo.ArtistInfoArtwork.CheckArtworkEditable:input_type -> artistinfo.ArtworkUidRequest + 1, // 12: artistinfo.ArtistInfoArtwork.CreateArtworkLockRecord:output_type -> artistinfo.ArtworkCommonNoParams + 1, // 13: artistinfo.ArtistInfoArtwork.ArtworkLockAction:output_type -> artistinfo.ArtworkCommonNoParams + 7, // 14: artistinfo.ArtistInfoArtwork.GetArtworkLockRecords:output_type -> artistinfo.ArtworkLockList + 13, // 15: artistinfo.ArtistInfoArtwork.GetArtworkLockHistoryGroup:output_type -> artistinfo.GetArtworkLockHistoryResponse + 1, // 16: artistinfo.ArtistInfoArtwork.DeleteArtworkRecord:output_type -> artistinfo.ArtworkCommonNoParams + 6, // 17: artistinfo.ArtistInfoArtwork.GetArtworkLockDetail:output_type -> artistinfo.ArtistLockInfo + 1, // 18: artistinfo.ArtistInfoArtwork.UpdateArtworkAuditStatus:output_type -> artistinfo.ArtworkCommonNoParams + 16, // 19: artistinfo.ArtistInfoArtwork.CheckArtworkEditable:output_type -> artistinfo.CheckArtworkEditableResponse + 12, // [12:20] is the sub-list for method output_type + 4, // [4:12] is the sub-list for method input_type 4, // [4:4] is the sub-list for extension type_name 4, // [4:4] is the sub-list for extension extendee 0, // [0:4] is the sub-list for field type_name @@ -1274,7 +1385,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateArtworkLockRecordReq); i { + switch v := v.(*ArtworkUidRequest); i { case 0: return &v.state case 1: @@ -1286,7 +1397,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkLockActionRequest); i { + switch v := v.(*CreateArtworkLockRecordReq); i { case 0: return &v.state case 1: @@ -1298,7 +1409,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtworkLockRecordsRequest); i { + switch v := v.(*ArtworkLockActionRequest); i { case 0: return &v.state case 1: @@ -1310,7 +1421,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtistLockInfo); i { + switch v := v.(*GetArtworkLockRecordsRequest); i { case 0: return &v.state case 1: @@ -1322,7 +1433,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkLockList); i { + switch v := v.(*ArtistLockInfo); i { case 0: return &v.state case 1: @@ -1334,7 +1445,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkUidList); i { + switch v := v.(*ArtworkLockList); i { case 0: return &v.state case 1: @@ -1346,7 +1457,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteArtworkRecordRequest); i { + switch v := v.(*ArtworkUidList); i { case 0: return &v.state case 1: @@ -1358,7 +1469,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtworkLockHistoryRequest); i { + switch v := v.(*DeleteArtworkRecordRequest); i { case 0: return &v.state case 1: @@ -1370,7 +1481,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtworkLockDetailRequest); i { + switch v := v.(*GetArtworkLockHistoryRequest); i { case 0: return &v.state case 1: @@ -1382,7 +1493,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkPreviewInfo); i { + switch v := v.(*GetArtworkLockDetailRequest); i { case 0: return &v.state case 1: @@ -1394,7 +1505,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtworkLockHistoryResponse); i { + switch v := v.(*ArtworkPreviewInfo); i { case 0: return &v.state case 1: @@ -1406,7 +1517,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkLockRecord); i { + switch v := v.(*GetArtworkLockHistoryResponse); i { case 0: return &v.state case 1: @@ -1418,6 +1529,18 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtworkLockRecord); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtwork_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateArtworkAuditStatusRequest); i { case 0: return &v.state @@ -1429,6 +1552,18 @@ func file_pb_artistinfoArtwork_proto_init() { return nil } } + file_pb_artistinfoArtwork_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckArtworkEditableResponse); 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{ @@ -1436,7 +1571,7 @@ func file_pb_artistinfoArtwork_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_artistinfoArtwork_proto_rawDesc, NumEnums: 1, - NumMessages: 14, + NumMessages: 16, NumExtensions: 0, NumServices: 1, }, diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go index 1a31463..5e970e8 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go @@ -137,6 +137,110 @@ var _ interface { ErrorName() string } = ArtworkCommonNoParamsValidationError{} +// Validate checks the field values on ArtworkUidRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *ArtworkUidRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ArtworkUidRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ArtworkUidRequestMultiError, or nil if none found. +func (m *ArtworkUidRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ArtworkUidRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ArtworkUid + + if len(errors) > 0 { + return ArtworkUidRequestMultiError(errors) + } + + return nil +} + +// ArtworkUidRequestMultiError is an error wrapping multiple validation errors +// returned by ArtworkUidRequest.ValidateAll() if the designated constraints +// aren't met. +type ArtworkUidRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ArtworkUidRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ArtworkUidRequestMultiError) AllErrors() []error { return m } + +// ArtworkUidRequestValidationError is the validation error returned by +// ArtworkUidRequest.Validate if the designated constraints aren't met. +type ArtworkUidRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ArtworkUidRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ArtworkUidRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ArtworkUidRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ArtworkUidRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ArtworkUidRequestValidationError) ErrorName() string { + return "ArtworkUidRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ArtworkUidRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sArtworkUidRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ArtworkUidRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ArtworkUidRequestValidationError{} + // Validate checks the field values on CreateArtworkLockRecordReq with the // rules defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. @@ -1647,3 +1751,108 @@ var _ interface { Cause() error ErrorName() string } = UpdateArtworkAuditStatusRequestValidationError{} + +// Validate checks the field values on CheckArtworkEditableResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *CheckArtworkEditableResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CheckArtworkEditableResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// CheckArtworkEditableResponseMultiError, or nil if none found. +func (m *CheckArtworkEditableResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *CheckArtworkEditableResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Editable + + if len(errors) > 0 { + return CheckArtworkEditableResponseMultiError(errors) + } + + return nil +} + +// CheckArtworkEditableResponseMultiError is an error wrapping multiple +// validation errors returned by CheckArtworkEditableResponse.ValidateAll() if +// the designated constraints aren't met. +type CheckArtworkEditableResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CheckArtworkEditableResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CheckArtworkEditableResponseMultiError) AllErrors() []error { return m } + +// CheckArtworkEditableResponseValidationError is the validation error returned +// by CheckArtworkEditableResponse.Validate if the designated constraints +// aren't met. +type CheckArtworkEditableResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CheckArtworkEditableResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CheckArtworkEditableResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CheckArtworkEditableResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CheckArtworkEditableResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CheckArtworkEditableResponseValidationError) ErrorName() string { + return "CheckArtworkEditableResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e CheckArtworkEditableResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCheckArtworkEditableResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CheckArtworkEditableResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CheckArtworkEditableResponseValidationError{} diff --git a/pb/artistInfoArtwork/artistinfoArtwork_triple.pb.go b/pb/artistInfoArtwork/artistinfoArtwork_triple.pb.go index 411ea15..392cdaf 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork_triple.pb.go +++ b/pb/artistInfoArtwork/artistinfoArtwork_triple.pb.go @@ -36,6 +36,7 @@ type ArtistInfoArtworkClient interface { DeleteArtworkRecord(ctx context.Context, in *DeleteArtworkRecordRequest, opts ...grpc_go.CallOption) (*ArtworkCommonNoParams, common.ErrorWithAttachment) GetArtworkLockDetail(ctx context.Context, in *GetArtworkLockDetailRequest, opts ...grpc_go.CallOption) (*ArtistLockInfo, common.ErrorWithAttachment) UpdateArtworkAuditStatus(ctx context.Context, in *UpdateArtworkAuditStatusRequest, opts ...grpc_go.CallOption) (*ArtworkCommonNoParams, common.ErrorWithAttachment) + CheckArtworkEditable(ctx context.Context, in *ArtworkUidRequest, opts ...grpc_go.CallOption) (*CheckArtworkEditableResponse, common.ErrorWithAttachment) } type artistInfoArtworkClient struct { @@ -50,6 +51,7 @@ type ArtistInfoArtworkClientImpl struct { DeleteArtworkRecord func(ctx context.Context, in *DeleteArtworkRecordRequest) (*ArtworkCommonNoParams, error) GetArtworkLockDetail func(ctx context.Context, in *GetArtworkLockDetailRequest) (*ArtistLockInfo, error) UpdateArtworkAuditStatus func(ctx context.Context, in *UpdateArtworkAuditStatusRequest) (*ArtworkCommonNoParams, error) + CheckArtworkEditable func(ctx context.Context, in *ArtworkUidRequest) (*CheckArtworkEditableResponse, error) } func (c *ArtistInfoArtworkClientImpl) GetDubboStub(cc *triple.TripleConn) ArtistInfoArtworkClient { @@ -106,6 +108,12 @@ func (c *artistInfoArtworkClient) UpdateArtworkAuditStatus(ctx context.Context, return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateArtworkAuditStatus", in, out) } +func (c *artistInfoArtworkClient) CheckArtworkEditable(ctx context.Context, in *ArtworkUidRequest, opts ...grpc_go.CallOption) (*CheckArtworkEditableResponse, common.ErrorWithAttachment) { + out := new(CheckArtworkEditableResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CheckArtworkEditable", in, out) +} + // ArtistInfoArtworkServer is the server API for ArtistInfoArtwork service. // All implementations must embed UnimplementedArtistInfoArtworkServer // for forward compatibility @@ -118,6 +126,7 @@ type ArtistInfoArtworkServer interface { DeleteArtworkRecord(context.Context, *DeleteArtworkRecordRequest) (*ArtworkCommonNoParams, error) GetArtworkLockDetail(context.Context, *GetArtworkLockDetailRequest) (*ArtistLockInfo, error) UpdateArtworkAuditStatus(context.Context, *UpdateArtworkAuditStatusRequest) (*ArtworkCommonNoParams, error) + CheckArtworkEditable(context.Context, *ArtworkUidRequest) (*CheckArtworkEditableResponse, error) mustEmbedUnimplementedArtistInfoArtworkServer() } @@ -147,6 +156,9 @@ func (UnimplementedArtistInfoArtworkServer) GetArtworkLockDetail(context.Context func (UnimplementedArtistInfoArtworkServer) UpdateArtworkAuditStatus(context.Context, *UpdateArtworkAuditStatusRequest) (*ArtworkCommonNoParams, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateArtworkAuditStatus not implemented") } +func (UnimplementedArtistInfoArtworkServer) CheckArtworkEditable(context.Context, *ArtworkUidRequest) (*CheckArtworkEditableResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CheckArtworkEditable not implemented") +} func (s *UnimplementedArtistInfoArtworkServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -378,6 +390,35 @@ func _ArtistInfoArtwork_UpdateArtworkAuditStatus_Handler(srv interface{}, ctx co return interceptor(ctx, in, info, handler) } +func _ArtistInfoArtwork_CheckArtworkEditable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ArtworkUidRequest) + 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("CheckArtworkEditable", 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) +} + // ArtistInfoArtwork_ServiceDesc is the grpc_go.ServiceDesc for ArtistInfoArtwork service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -413,6 +454,10 @@ var ArtistInfoArtwork_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "UpdateArtworkAuditStatus", Handler: _ArtistInfoArtwork_UpdateArtworkAuditStatus_Handler, }, + { + MethodName: "CheckArtworkEditable", + Handler: _ArtistInfoArtwork_CheckArtworkEditable_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/artistinfoArtwork.proto", diff --git a/pb/artistinfoArtwork.proto b/pb/artistinfoArtwork.proto index 0c3b7e9..6bc22d0 100644 --- a/pb/artistinfoArtwork.proto +++ b/pb/artistinfoArtwork.proto @@ -5,6 +5,7 @@ option go_package = "./;artistInfoArtwork"; import "validate.proto"; import public "google/protobuf/timestamp.proto"; // protoc -I . -I ./pb --proto_path=. --go_out=./pb/artistInfoArtwork --go-triple_out=./pb/artistInfoArtwork --validate_out="lang=go:./pb/artistInfoArtwork" ./pb/artistinfoArtwork.proto + service ArtistInfoArtwork { //画作相关 rpc CreateArtworkLockRecord(CreateArtworkLockRecordReq)returns(ArtworkCommonNoParams){} //创建画作锁状态记录 @@ -14,10 +15,13 @@ service ArtistInfoArtwork { rpc DeleteArtworkRecord(DeleteArtworkRecordRequest)returns(ArtworkCommonNoParams){} //删除画作锁记录 rpc GetArtworkLockDetail(GetArtworkLockDetailRequest)returns(ArtistLockInfo){}//查询画作锁定详情 rpc UpdateArtworkAuditStatus(UpdateArtworkAuditStatusRequest)returns(ArtworkCommonNoParams){}//更新画作审批状态 + rpc CheckArtworkEditable(ArtworkUidRequest)returns(CheckArtworkEditableResponse){}//查询画作状态是否可编辑 } message ArtworkCommonNoParams{} - +message ArtworkUidRequest{ + string ArtworkUid =1; +} message CreateArtworkLockRecordReq{ string artistUid=1 [(validate.rules).message.required = true];//画家uid string artworkUid=2 [(validate.rules).message.required = true];//画作uid @@ -70,7 +74,7 @@ message GetArtworkLockHistoryRequest{ string artistUid=1; } message GetArtworkLockDetailRequest{ - string artworkUid=1 [(validate.rules).message.required = true];//画家uid; + string artworkUid=1 [(validate.rules).message.required = true];//画作uid; } //---- message ArtworkPreviewInfo { @@ -104,4 +108,7 @@ message UpdateArtworkAuditStatusRequest{ int64 auditStatus=5; string auditMark=6; string auditMark2=7; +} +message CheckArtworkEditableResponse{ + bool editable =1; } \ No newline at end of file