From 6c194a06462f2e82aaed8acaf75710a7e1db945c Mon Sep 17 00:00:00 2001 From: lzh <1625167628@qq.com> Date: Mon, 16 Jun 2025 10:20:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=9C=E5=93=81=E7=B1=BB=E5=9E=8B=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/cast/cast.pb.go | 1308 +++++++++++++++++++++------ api/cast/cast.pb.validate.go | 1075 +++++++++++++++++++++- api/cast/cast_triple.pb.go | 90 ++ pkg/service/bundle/bundleBalance.go | 8 +- 4 files changed, 2169 insertions(+), 312 deletions(-) diff --git a/api/cast/cast.pb.go b/api/cast/cast.pb.go index 386c824..a68f679 100644 --- a/api/cast/cast.pb.go +++ b/api/cast/cast.pb.go @@ -142,6 +142,7 @@ type MediaUserListReq struct { PlatformID PlatformIDENUM `protobuf:"varint,4,opt,name=platformID,proto3,enum=Cast.PlatformIDENUM" json:"platformID"` Page int32 `protobuf:"varint,5,opt,name=page,proto3" json:"page"` PageSize int32 `protobuf:"varint,6,opt,name=pageSize,proto3" json:"pageSize"` + ArtistUuid string `protobuf:"bytes,7,opt,name=artistUuid,proto3" json:"artistUuid"` } func (x *MediaUserListReq) Reset() { @@ -216,6 +217,13 @@ func (x *MediaUserListReq) GetPageSize() int32 { return 0 } +func (x *MediaUserListReq) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + type MediaUserListResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -542,12 +550,14 @@ type UpdateWorkImageReq struct { MediaAccountUuids []string `protobuf:"bytes,4,rep,name=mediaAccountUuids,proto3" json:"mediaAccountUuids"` MediaAccountNames []string `protobuf:"bytes,5,rep,name=mediaAccountNames,proto3" json:"mediaAccountNames"` PlatformIDs []PlatformIDENUM `protobuf:"varint,6,rep,packed,name=platformIDs,proto3,enum=Cast.PlatformIDENUM" json:"platformIDs"` - PublishConfig *PublishConfig `protobuf:"bytes,7,opt,name=publishConfig,proto3" json:"publishConfig"` - Action string `protobuf:"bytes,8,opt,name=action,proto3" json:"action"` - WorkUuid string `protobuf:"bytes,9,opt,name=workUuid,proto3" json:"workUuid"` - ArtistUuid string `protobuf:"bytes,10,opt,name=artistUuid,proto3" json:"artistUuid"` - ArtistPhone string `protobuf:"bytes,11,opt,name=artistPhone,proto3" json:"artistPhone"` - ArtistName string `protobuf:"bytes,12,opt,name=artistName,proto3" json:"artistName"` + PublishConfig1 *PublishConfig `protobuf:"bytes,7,opt,name=publishConfig1,proto3" json:"publishConfig1"` + PublishConfig2 *PublishConfig `protobuf:"bytes,8,opt,name=publishConfig2,proto3" json:"publishConfig2"` + PublishConfig3 *PublishConfig `protobuf:"bytes,9,opt,name=publishConfig3,proto3" json:"publishConfig3"` + Action string `protobuf:"bytes,10,opt,name=action,proto3" json:"action"` + WorkUuid string `protobuf:"bytes,11,opt,name=workUuid,proto3" json:"workUuid"` + ArtistUuid string `protobuf:"bytes,12,opt,name=artistUuid,proto3" json:"artistUuid"` + ArtistPhone string `protobuf:"bytes,13,opt,name=artistPhone,proto3" json:"artistPhone"` + ArtistName string `protobuf:"bytes,14,opt,name=artistName,proto3" json:"artistName"` } func (x *UpdateWorkImageReq) Reset() { @@ -622,9 +632,23 @@ func (x *UpdateWorkImageReq) GetPlatformIDs() []PlatformIDENUM { return nil } -func (x *UpdateWorkImageReq) GetPublishConfig() *PublishConfig { +func (x *UpdateWorkImageReq) GetPublishConfig1() *PublishConfig { if x != nil { - return x.PublishConfig + return x.PublishConfig1 + } + return nil +} + +func (x *UpdateWorkImageReq) GetPublishConfig2() *PublishConfig { + if x != nil { + return x.PublishConfig2 + } + return nil +} + +func (x *UpdateWorkImageReq) GetPublishConfig3() *PublishConfig { + if x != nil { + return x.PublishConfig3 } return nil } @@ -807,12 +831,14 @@ type UpdateWorkVideoReq struct { MediaAccountUuids []string `protobuf:"bytes,5,rep,name=mediaAccountUuids,proto3" json:"mediaAccountUuids"` MediaAccountNames []string `protobuf:"bytes,6,rep,name=mediaAccountNames,proto3" json:"mediaAccountNames"` PlatformIDs []PlatformIDENUM `protobuf:"varint,7,rep,packed,name=platformIDs,proto3,enum=Cast.PlatformIDENUM" json:"platformIDs"` - PublishConfig *PublishConfig `protobuf:"bytes,8,opt,name=publishConfig,proto3" json:"publishConfig"` - Action string `protobuf:"bytes,9,opt,name=action,proto3" json:"action"` - WorkUuid string `protobuf:"bytes,10,opt,name=workUuid,proto3" json:"workUuid"` - ArtistUuid string `protobuf:"bytes,11,opt,name=artistUuid,proto3" json:"artistUuid"` - ArtistPhone string `protobuf:"bytes,12,opt,name=artistPhone,proto3" json:"artistPhone"` - ArtistName string `protobuf:"bytes,13,opt,name=artistName,proto3" json:"artistName"` + PublishConfig1 *PublishConfig `protobuf:"bytes,8,opt,name=publishConfig1,proto3" json:"publishConfig1"` + PublishConfig2 *PublishConfig `protobuf:"bytes,9,opt,name=publishConfig2,proto3" json:"publishConfig2"` + PublishConfig3 *PublishConfig `protobuf:"bytes,10,opt,name=publishConfig3,proto3" json:"publishConfig3"` + Action string `protobuf:"bytes,11,opt,name=action,proto3" json:"action"` + WorkUuid string `protobuf:"bytes,12,opt,name=workUuid,proto3" json:"workUuid"` + ArtistUuid string `protobuf:"bytes,13,opt,name=artistUuid,proto3" json:"artistUuid"` + ArtistPhone string `protobuf:"bytes,14,opt,name=artistPhone,proto3" json:"artistPhone"` + ArtistName string `protobuf:"bytes,15,opt,name=artistName,proto3" json:"artistName"` } func (x *UpdateWorkVideoReq) Reset() { @@ -894,9 +920,23 @@ func (x *UpdateWorkVideoReq) GetPlatformIDs() []PlatformIDENUM { return nil } -func (x *UpdateWorkVideoReq) GetPublishConfig() *PublishConfig { +func (x *UpdateWorkVideoReq) GetPublishConfig1() *PublishConfig { if x != nil { - return x.PublishConfig + return x.PublishConfig1 + } + return nil +} + +func (x *UpdateWorkVideoReq) GetPublishConfig2() *PublishConfig { + if x != nil { + return x.PublishConfig2 + } + return nil +} + +func (x *UpdateWorkVideoReq) GetPublishConfig3() *PublishConfig { + if x != nil { + return x.PublishConfig3 } return nil } @@ -995,8 +1035,9 @@ type WorkListReq struct { StatusUpdateTimeEnd string `protobuf:"bytes,7,opt,name=statusUpdateTimeEnd,proto3" json:"statusUpdateTimeEnd"` Title string `protobuf:"bytes,8,opt,name=title,proto3" json:"title"` WorkStatus uint32 `protobuf:"varint,9,opt,name=workStatus,proto3" json:"workStatus"` - Page int32 `protobuf:"varint,10,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,11,opt,name=pageSize,proto3" json:"pageSize"` + MediaAccountUuid string `protobuf:"bytes,10,opt,name=mediaAccountUuid,proto3" json:"mediaAccountUuid"` + Page int32 `protobuf:"varint,11,opt,name=page,proto3" json:"page"` + PageSize int32 `protobuf:"varint,12,opt,name=pageSize,proto3" json:"pageSize"` } func (x *WorkListReq) Reset() { @@ -1092,6 +1133,13 @@ func (x *WorkListReq) GetWorkStatus() uint32 { return 0 } +func (x *WorkListReq) GetMediaAccountUuid() string { + if x != nil { + return x.MediaAccountUuid + } + return "" +} + func (x *WorkListReq) GetPage() int32 { if x != nil { return x.Page @@ -1204,6 +1252,107 @@ func (x *WorkDetailReq) GetWorkUuid() string { return "" } +type WorkLogInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkUuid string `protobuf:"bytes,1,opt,name=workUuid,proto3" json:"workUuid"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` + Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content"` + OperatorName string `protobuf:"bytes,4,opt,name=operatorName,proto3" json:"operatorName"` + OperatorID string `protobuf:"bytes,5,opt,name=operatorID,proto3" json:"operatorID"` + UpdateTime string `protobuf:"bytes,6,opt,name=updateTime,proto3" json:"updateTime"` + ExtraData string `protobuf:"bytes,7,opt,name=extraData,proto3" json:"extraData"` + WorkStatus uint32 `protobuf:"varint,8,opt,name=workStatus,proto3" json:"workStatus"` +} + +func (x *WorkLogInfo) Reset() { + *x = WorkLogInfo{} + mi := &file_pb_fiee_cast_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WorkLogInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkLogInfo) ProtoMessage() {} + +func (x *WorkLogInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkLogInfo.ProtoReflect.Descriptor instead. +func (*WorkLogInfo) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{14} +} + +func (x *WorkLogInfo) GetWorkUuid() string { + if x != nil { + return x.WorkUuid + } + return "" +} + +func (x *WorkLogInfo) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *WorkLogInfo) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *WorkLogInfo) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *WorkLogInfo) GetOperatorID() string { + if x != nil { + return x.OperatorID + } + return "" +} + +func (x *WorkLogInfo) GetUpdateTime() string { + if x != nil { + return x.UpdateTime + } + return "" +} + +func (x *WorkLogInfo) GetExtraData() string { + if x != nil { + return x.ExtraData + } + return "" +} + +func (x *WorkLogInfo) GetWorkStatus() uint32 { + if x != nil { + return x.WorkStatus + } + return 0 +} + type WorkDetailResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1217,15 +1366,19 @@ type WorkDetailResp struct { MediaAccountNames []string `protobuf:"bytes,6,rep,name=mediaAccountNames,proto3" json:"mediaAccountNames"` PlatformIDs []uint32 `protobuf:"varint,7,rep,packed,name=platformIDs,proto3" json:"platformIDs"` WorkStatus uint32 `protobuf:"varint,8,opt,name=workStatus,proto3" json:"workStatus"` - PublishConfig *PublishConfig `protobuf:"bytes,9,opt,name=publishConfig,proto3" json:"publishConfig"` - VideoUrl string `protobuf:"bytes,10,opt,name=videoUrl,proto3" json:"videoUrl"` - CoverUrl string `protobuf:"bytes,11,opt,name=coverUrl,proto3" json:"coverUrl"` - ApprovalID string `protobuf:"bytes,12,opt,name=approvalID,proto3" json:"approvalID"` + PublishConfig1 *PublishConfig `protobuf:"bytes,9,opt,name=publishConfig1,proto3" json:"publishConfig1"` + PublishConfig2 *PublishConfig `protobuf:"bytes,10,opt,name=publishConfig2,proto3" json:"publishConfig2"` + PublishConfig3 *PublishConfig `protobuf:"bytes,11,opt,name=publishConfig3,proto3" json:"publishConfig3"` + VideoUrl string `protobuf:"bytes,12,opt,name=videoUrl,proto3" json:"videoUrl"` + CoverUrl string `protobuf:"bytes,13,opt,name=coverUrl,proto3" json:"coverUrl"` + ApprovalID string `protobuf:"bytes,14,opt,name=approvalID,proto3" json:"approvalID"` + WorkLogData []*WorkLogInfo `protobuf:"bytes,15,rep,name=WorkLogData,proto3" json:"WorkLogData"` + WorkCategory uint32 `protobuf:"varint,16,opt,name=workCategory,proto3" json:"workCategory"` } func (x *WorkDetailResp) Reset() { *x = WorkDetailResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[14] + mi := &file_pb_fiee_cast_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1237,7 +1390,7 @@ func (x *WorkDetailResp) String() string { func (*WorkDetailResp) ProtoMessage() {} func (x *WorkDetailResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[14] + mi := &file_pb_fiee_cast_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1250,7 +1403,7 @@ func (x *WorkDetailResp) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkDetailResp.ProtoReflect.Descriptor instead. func (*WorkDetailResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{14} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{15} } func (x *WorkDetailResp) GetWorkUuid() string { @@ -1309,9 +1462,23 @@ func (x *WorkDetailResp) GetWorkStatus() uint32 { return 0 } -func (x *WorkDetailResp) GetPublishConfig() *PublishConfig { +func (x *WorkDetailResp) GetPublishConfig1() *PublishConfig { if x != nil { - return x.PublishConfig + return x.PublishConfig1 + } + return nil +} + +func (x *WorkDetailResp) GetPublishConfig2() *PublishConfig { + if x != nil { + return x.PublishConfig2 + } + return nil +} + +func (x *WorkDetailResp) GetPublishConfig3() *PublishConfig { + if x != nil { + return x.PublishConfig3 } return nil } @@ -1337,6 +1504,20 @@ func (x *WorkDetailResp) GetApprovalID() string { return "" } +func (x *WorkDetailResp) GetWorkLogData() []*WorkLogInfo { + if x != nil { + return x.WorkLogData + } + return nil +} + +func (x *WorkDetailResp) GetWorkCategory() uint32 { + if x != nil { + return x.WorkCategory + } + return 0 +} + type UpdateStatusReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1351,7 +1532,7 @@ type UpdateStatusReq struct { func (x *UpdateStatusReq) Reset() { *x = UpdateStatusReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[15] + mi := &file_pb_fiee_cast_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1363,7 +1544,7 @@ func (x *UpdateStatusReq) String() string { func (*UpdateStatusReq) ProtoMessage() {} func (x *UpdateStatusReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[15] + mi := &file_pb_fiee_cast_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1376,7 +1557,7 @@ func (x *UpdateStatusReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateStatusReq.ProtoReflect.Descriptor instead. func (*UpdateStatusReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{15} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{16} } func (x *UpdateStatusReq) GetWorkAction() WorkActionENUM { @@ -1414,6 +1595,210 @@ func (x *UpdateStatusReq) GetConfirmStatus() uint32 { return 0 } +type MediaAccountsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUuid string `protobuf:"bytes,1,opt,name=artistUuid,proto3" json:"artistUuid"` +} + +func (x *MediaAccountsReq) Reset() { + *x = MediaAccountsReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MediaAccountsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MediaAccountsReq) ProtoMessage() {} + +func (x *MediaAccountsReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MediaAccountsReq.ProtoReflect.Descriptor instead. +func (*MediaAccountsReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{17} +} + +func (x *MediaAccountsReq) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + +type MediaAccountsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*MediaAccountsResp_Info `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` +} + +func (x *MediaAccountsResp) Reset() { + *x = MediaAccountsResp{} + mi := &file_pb_fiee_cast_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MediaAccountsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MediaAccountsResp) ProtoMessage() {} + +func (x *MediaAccountsResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MediaAccountsResp.ProtoReflect.Descriptor instead. +func (*MediaAccountsResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{18} +} + +func (x *MediaAccountsResp) GetData() []*MediaAccountsResp_Info { + if x != nil { + return x.Data + } + return nil +} + +type MediaWorksReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MediaAccountUuid string `protobuf:"bytes,1,opt,name=mediaAccountUuid,proto3" json:"mediaAccountUuid"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page"` + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize"` +} + +func (x *MediaWorksReq) Reset() { + *x = MediaWorksReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MediaWorksReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MediaWorksReq) ProtoMessage() {} + +func (x *MediaWorksReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MediaWorksReq.ProtoReflect.Descriptor instead. +func (*MediaWorksReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{19} +} + +func (x *MediaWorksReq) GetMediaAccountUuid() string { + if x != nil { + return x.MediaAccountUuid + } + return "" +} + +func (x *MediaWorksReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *MediaWorksReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +type MediaWorksResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count"` + Data []*MediaWorksResp_Info `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` +} + +func (x *MediaWorksResp) Reset() { + *x = MediaWorksResp{} + mi := &file_pb_fiee_cast_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MediaWorksResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MediaWorksResp) ProtoMessage() {} + +func (x *MediaWorksResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MediaWorksResp.ProtoReflect.Descriptor instead. +func (*MediaWorksResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{20} +} + +func (x *MediaWorksResp) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *MediaWorksResp) GetData() []*MediaWorksResp_Info { + if x != nil { + return x.Data + } + return nil +} + type MediaUserListResp_Info struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1423,14 +1808,15 @@ type MediaUserListResp_Info struct { PlatformID uint32 `protobuf:"varint,2,opt,name=platformID,proto3" json:"platformID"` ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName"` ArtistPhone string `protobuf:"bytes,4,opt,name=artistPhone,proto3" json:"artistPhone"` - ManagerUserName string `protobuf:"bytes,5,opt,name=managerUserName,proto3" json:"managerUserName"` - ManagerUuid string `protobuf:"bytes,6,opt,name=managerUuid,proto3" json:"managerUuid"` - MediaAccountUuid string `protobuf:"bytes,7,opt,name=mediaAccountUuid,proto3" json:"mediaAccountUuid"` + ArtistUuid string `protobuf:"bytes,5,opt,name=artistUuid,proto3" json:"artistUuid"` + ManagerUserName string `protobuf:"bytes,6,opt,name=managerUserName,proto3" json:"managerUserName"` + ManagerUuid string `protobuf:"bytes,7,opt,name=managerUuid,proto3" json:"managerUuid"` + MediaAccountUuid string `protobuf:"bytes,8,opt,name=mediaAccountUuid,proto3" json:"mediaAccountUuid"` } func (x *MediaUserListResp_Info) Reset() { *x = MediaUserListResp_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[16] + mi := &file_pb_fiee_cast_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1442,7 +1828,7 @@ func (x *MediaUserListResp_Info) String() string { func (*MediaUserListResp_Info) ProtoMessage() {} func (x *MediaUserListResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[16] + mi := &file_pb_fiee_cast_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1486,6 +1872,13 @@ func (x *MediaUserListResp_Info) GetArtistPhone() string { return "" } +func (x *MediaUserListResp_Info) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + func (x *MediaUserListResp_Info) GetManagerUserName() string { if x != nil { return x.ManagerUserName @@ -1528,7 +1921,7 @@ type WorkListResp_Info struct { func (x *WorkListResp_Info) Reset() { *x = WorkListResp_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[17] + mi := &file_pb_fiee_cast_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1540,7 +1933,7 @@ func (x *WorkListResp_Info) String() string { func (*WorkListResp_Info) ProtoMessage() {} func (x *WorkListResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[17] + mi := &file_pb_fiee_cast_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1640,6 +2033,208 @@ func (x *WorkListResp_Info) GetManagerUuids() []string { return nil } +type MediaAccountsResp_Info struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlatformID uint32 `protobuf:"varint,1,opt,name=platformID,proto3" json:"platformID"` + FansCount uint32 `protobuf:"varint,2,opt,name=fansCount,proto3" json:"fansCount"` + WorkCount uint32 `protobuf:"varint,3,opt,name=workCount,proto3" json:"workCount"` + ArtistUuid string `protobuf:"bytes,4,opt,name=artistUuid,proto3" json:"artistUuid"` + MediaAccountUuid string `protobuf:"bytes,5,opt,name=mediaAccountUuid,proto3" json:"mediaAccountUuid"` + MediaAccountName string `protobuf:"bytes,6,opt,name=mediaAccountName,proto3" json:"mediaAccountName"` +} + +func (x *MediaAccountsResp_Info) Reset() { + *x = MediaAccountsResp_Info{} + mi := &file_pb_fiee_cast_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MediaAccountsResp_Info) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MediaAccountsResp_Info) ProtoMessage() {} + +func (x *MediaAccountsResp_Info) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[23] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MediaAccountsResp_Info.ProtoReflect.Descriptor instead. +func (*MediaAccountsResp_Info) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{18, 0} +} + +func (x *MediaAccountsResp_Info) GetPlatformID() uint32 { + if x != nil { + return x.PlatformID + } + return 0 +} + +func (x *MediaAccountsResp_Info) GetFansCount() uint32 { + if x != nil { + return x.FansCount + } + return 0 +} + +func (x *MediaAccountsResp_Info) GetWorkCount() uint32 { + if x != nil { + return x.WorkCount + } + return 0 +} + +func (x *MediaAccountsResp_Info) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + +func (x *MediaAccountsResp_Info) GetMediaAccountUuid() string { + if x != nil { + return x.MediaAccountUuid + } + return "" +} + +func (x *MediaAccountsResp_Info) GetMediaAccountName() string { + if x != nil { + return x.MediaAccountName + } + return "" +} + +type MediaWorksResp_Info struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkUuid string `protobuf:"bytes,1,opt,name=workUuid,proto3" json:"workUuid"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` + Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content"` + WorkCategory uint32 `protobuf:"varint,4,opt,name=workCategory,proto3" json:"workCategory"` + WorkStatus uint32 `protobuf:"varint,5,opt,name=workStatus,proto3" json:"workStatus"` + SubmitTime string `protobuf:"bytes,6,opt,name=submitTime,proto3" json:"submitTime"` + StatusUpdateTime string `protobuf:"bytes,7,opt,name=statusUpdateTime,proto3" json:"statusUpdateTime"` + Images []string `protobuf:"bytes,8,rep,name=images,proto3" json:"images"` + VideoUrl string `protobuf:"bytes,9,opt,name=videoUrl,proto3" json:"videoUrl"` + CoverUrl string `protobuf:"bytes,10,opt,name=coverUrl,proto3" json:"coverUrl"` +} + +func (x *MediaWorksResp_Info) Reset() { + *x = MediaWorksResp_Info{} + mi := &file_pb_fiee_cast_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MediaWorksResp_Info) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MediaWorksResp_Info) ProtoMessage() {} + +func (x *MediaWorksResp_Info) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[24] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MediaWorksResp_Info.ProtoReflect.Descriptor instead. +func (*MediaWorksResp_Info) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{20, 0} +} + +func (x *MediaWorksResp_Info) GetWorkUuid() string { + if x != nil { + return x.WorkUuid + } + return "" +} + +func (x *MediaWorksResp_Info) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *MediaWorksResp_Info) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *MediaWorksResp_Info) GetWorkCategory() uint32 { + if x != nil { + return x.WorkCategory + } + return 0 +} + +func (x *MediaWorksResp_Info) GetWorkStatus() uint32 { + if x != nil { + return x.WorkStatus + } + return 0 +} + +func (x *MediaWorksResp_Info) GetSubmitTime() string { + if x != nil { + return x.SubmitTime + } + return "" +} + +func (x *MediaWorksResp_Info) GetStatusUpdateTime() string { + if x != nil { + return x.StatusUpdateTime + } + return "" +} + +func (x *MediaWorksResp_Info) GetImages() []string { + if x != nil { + return x.Images + } + return nil +} + +func (x *MediaWorksResp_Info) GetVideoUrl() string { + if x != nil { + return x.VideoUrl + } + return "" +} + +func (x *MediaWorksResp_Info) GetCoverUrl() string { + if x != nil { + return x.CoverUrl + } + return "" +} + var File_pb_fiee_cast_proto protoreflect.FileDescriptor var file_pb_fiee_cast_proto_rawDesc = []byte{ @@ -1652,7 +2247,7 @@ var file_pb_fiee_cast_proto_rawDesc = []byte{ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0xe2, 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, + 0x22, 0x82, 0x02, 0x0a, 0x10, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x56, 0x61, @@ -1666,13 +2261,15 @@ var file_pb_fiee_cast_proto_rawDesc = []byte{ 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xea, 0x02, 0x0a, 0x11, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, + 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x55, 0x75, 0x69, 0x64, 0x22, 0x8a, 0x03, 0x0a, 0x11, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x1a, 0x8c, 0x02, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x10, + 0x75, 0x6e, 0x74, 0x1a, 0xac, 0x02, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, @@ -1681,13 +2278,15 @@ var file_pb_fiee_cast_proto_rawDesc = []byte{ 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, - 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x22, 0xfb, 0x02, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0a, @@ -1730,7 +2329,7 @@ var file_pb_fiee_cast_proto_rawDesc = []byte{ 0x67, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0xc1, 0x03, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x22, 0xbd, 0x04, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, @@ -1745,218 +2344,327 @@ var file_pb_fiee_cast_proto_rawDesc = []byte{ 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x49, 0x44, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, + 0x6d, 0x49, 0x44, 0x73, 0x12, 0x3b, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, + 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x31, 0x12, 0x3b, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, + 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x32, 0x12, 0x3b, + 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x33, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x31, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x75, 0x69, 0x64, 0x22, 0xbf, 0x01, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x66, + 0x6f, 0x72, 0x62, 0x69, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, + 0x61, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x6e, 0x51, 0x75, 0x6f, + 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, 0x6e, 0x51, 0x75, 0x6f, + 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x41, 0x49, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x69, 0x73, 0x41, 0x49, 0x22, 0xdd, 0x04, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, + 0x69, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x36, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, 0x52, 0x0b, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x3b, 0x0a, 0x0e, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x31, 0x12, 0x3b, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x32, 0x12, 0x3b, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, - 0x75, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, - 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, - 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, - 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, - 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, - 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x22, 0xbf, 0x01, 0x0a, 0x0d, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x6f, - 0x72, 0x62, 0x69, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0d, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, - 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, - 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x6e, 0x43, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x43, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x41, 0x49, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x69, 0x73, 0x41, 0x49, 0x22, 0xe1, 0x03, 0x0a, 0x12, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, - 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, - 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x49, 0x44, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x43, 0x61, 0x73, - 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, - 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x39, 0x0a, - 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x31, - 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, - 0x64, 0x22, 0x8d, 0x03, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x12, - 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, - 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, - 0x62, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, - 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x15, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x22, 0xfe, 0x03, 0x0a, 0x0c, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xaa, 0x03, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, - 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, - 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, - 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x49, 0x44, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x22, - 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x73, 0x18, 0x0c, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x75, 0x69, - 0x64, 0x73, 0x22, 0x2b, 0x0a, 0x0d, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x22, - 0xa5, 0x03, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, - 0x75, 0x69, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, + 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x33, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x75, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, + 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, + 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x22, 0xb9, 0x03, 0x0a, 0x0b, 0x57, 0x6f, + 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, + 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x73, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x45, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, + 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, + 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xfe, 0x03, 0x0a, 0x0c, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xaa, 0x03, 0x0a, 0x04, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, + 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x6f, + 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, + 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x49, 0x44, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x75, 0x69, + 0x64, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x55, 0x75, 0x69, 0x64, 0x73, 0x22, 0x2b, 0x0a, 0x0d, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x75, 0x69, 0x64, 0x22, 0xfb, 0x01, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x67, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, + 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, + 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, 0x44, 0x61, 0x74, 0x61, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x22, 0xfa, 0x04, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x55, 0x75, 0x69, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x49, 0x44, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3b, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x31, 0x12, 0x3b, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x22, 0xcf, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0a, 0x77, - 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x4e, 0x55, 0x4d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x24, 0x0a, - 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x6d, - 0x61, 0x72, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x3f, 0x0a, 0x0e, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x0b, 0x0a, 0x07, 0x55, - 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x49, 0x4b, 0x54, - 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x59, 0x4f, 0x55, 0x54, 0x55, 0x42, 0x45, 0x10, - 0x02, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x53, 0x10, 0x03, 0x2a, 0x62, 0x0a, 0x0e, 0x57, 0x6f, - 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x0d, 0x0a, 0x09, - 0x4e, 0x4f, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, - 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x52, - 0x4f, 0x56, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, - 0x41, 0x4c, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x50, 0x50, - 0x52, 0x4f, 0x56, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x04, 0x32, 0xe4, - 0x04, 0x0a, 0x04, 0x43, 0x61, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x4d, 0x65, 0x64, 0x69, 0x61, - 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, - 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, - 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, - 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, - 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x41, - 0x0a, 0x0d, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, - 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, - 0x12, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, - 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, + 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x32, + 0x12, 0x3b, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x33, 0x12, 0x1a, 0x0a, + 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x33, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x67, + 0x44, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x43, 0x61, 0x73, + 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x57, + 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, + 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x22, 0xcf, + 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x4e, 0x55, 0x4d, 0x52, 0x0a, 0x77, 0x6f, + 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, + 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x32, 0x0a, 0x10, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x71, 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, 0x22, 0xa2, 0x02, 0x0a, 0x11, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xda, 0x01, 0x0a, + 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x61, 0x6e, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x61, 0x6e, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, + 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x2a, 0x0a, + 0x10, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x6b, 0x0a, 0x0d, 0x4d, 0x65, 0x64, + 0x69, 0x61, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x8a, 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x64, 0x69, 0x61, + 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xb2, + 0x02, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, + 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x55, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x55, 0x72, 0x6c, 0x2a, 0x3f, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, + 0x44, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x49, 0x4b, 0x54, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x0b, + 0x0a, 0x07, 0x59, 0x4f, 0x55, 0x54, 0x55, 0x42, 0x45, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x49, + 0x4e, 0x53, 0x10, 0x03, 0x2a, 0x62, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, + 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x41, 0x4c, 0x10, 0x02, + 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x41, 0x4c, 0x5f, 0x50, 0x41, 0x53, + 0x53, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x41, 0x4c, 0x5f, + 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x04, 0x32, 0xe3, 0x05, 0x0a, 0x04, 0x43, 0x61, 0x73, + 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, + 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x43, 0x61, 0x73, + 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x43, 0x61, + 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0d, 0x55, 0x6e, 0x62, 0x69, + 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, + 0x2e, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x42, + 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x43, 0x61, 0x73, + 0x74, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x18, 0x2e, - 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, + 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x11, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x57, 0x6f, 0x72, - 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, - 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x43, - 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x63, 0x61, 0x73, 0x74, 0x3b, - 0x63, 0x61, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, + 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x33, + 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x11, 0x2e, 0x43, 0x61, 0x73, + 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x12, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, + 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, + 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, + 0x42, 0x0a, 0x0d, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x57, 0x6f, 0x72, 0x6b, + 0x73, 0x12, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x57, 0x6f, + 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, + 0x64, 0x69, 0x61, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0d, + 0x5a, 0x0b, 0x2e, 0x2f, 0x63, 0x61, 0x73, 0x74, 0x3b, 0x63, 0x61, 0x73, 0x74, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1972,7 +2680,7 @@ func file_pb_fiee_cast_proto_rawDescGZIP() []byte { } var file_pb_fiee_cast_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_pb_fiee_cast_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_pb_fiee_cast_proto_msgTypes = make([]protoimpl.MessageInfo, 25) var file_pb_fiee_cast_proto_goTypes = []any{ (PlatformIDENUM)(0), // 0: Cast.PlatformIDENUM (WorkActionENUM)(0), // 1: Cast.WorkActionENUM @@ -1990,46 +2698,66 @@ var file_pb_fiee_cast_proto_goTypes = []any{ (*WorkListReq)(nil), // 13: Cast.WorkListReq (*WorkListResp)(nil), // 14: Cast.WorkListResp (*WorkDetailReq)(nil), // 15: Cast.WorkDetailReq - (*WorkDetailResp)(nil), // 16: Cast.WorkDetailResp - (*UpdateStatusReq)(nil), // 17: Cast.UpdateStatusReq - (*MediaUserListResp_Info)(nil), // 18: Cast.MediaUserListResp.Info - (*WorkListResp_Info)(nil), // 19: Cast.WorkListResp.Info - (*emptypb.Empty)(nil), // 20: google.protobuf.Empty + (*WorkLogInfo)(nil), // 16: Cast.WorkLogInfo + (*WorkDetailResp)(nil), // 17: Cast.WorkDetailResp + (*UpdateStatusReq)(nil), // 18: Cast.UpdateStatusReq + (*MediaAccountsReq)(nil), // 19: Cast.MediaAccountsReq + (*MediaAccountsResp)(nil), // 20: Cast.MediaAccountsResp + (*MediaWorksReq)(nil), // 21: Cast.MediaWorksReq + (*MediaWorksResp)(nil), // 22: Cast.MediaWorksResp + (*MediaUserListResp_Info)(nil), // 23: Cast.MediaUserListResp.Info + (*WorkListResp_Info)(nil), // 24: Cast.WorkListResp.Info + (*MediaAccountsResp_Info)(nil), // 25: Cast.MediaAccountsResp.Info + (*MediaWorksResp_Info)(nil), // 26: Cast.MediaWorksResp.Info + (*emptypb.Empty)(nil), // 27: google.protobuf.Empty } var file_pb_fiee_cast_proto_depIdxs = []int32{ 0, // 0: Cast.MediaUserListReq.platformID:type_name -> Cast.PlatformIDENUM - 18, // 1: Cast.MediaUserListResp.data:type_name -> Cast.MediaUserListResp.Info + 23, // 1: Cast.MediaUserListResp.data:type_name -> Cast.MediaUserListResp.Info 0, // 2: Cast.UpdateMediaAccountReq.platformID:type_name -> Cast.PlatformIDENUM 0, // 3: Cast.UpdateWorkImageReq.platformIDs:type_name -> Cast.PlatformIDENUM - 10, // 4: Cast.UpdateWorkImageReq.publishConfig:type_name -> Cast.PublishConfig - 0, // 5: Cast.UpdateWorkVideoReq.platformIDs:type_name -> Cast.PlatformIDENUM - 10, // 6: Cast.UpdateWorkVideoReq.publishConfig:type_name -> Cast.PublishConfig - 19, // 7: Cast.WorkListResp.data:type_name -> Cast.WorkListResp.Info - 10, // 8: Cast.WorkDetailResp.publishConfig:type_name -> Cast.PublishConfig - 1, // 9: Cast.UpdateStatusReq.workAction:type_name -> Cast.WorkActionENUM - 2, // 10: Cast.Cast.MediaUserList:input_type -> Cast.MediaUserListReq - 4, // 11: Cast.Cast.UpdateMediaAccount:input_type -> Cast.UpdateMediaAccountReq - 6, // 12: Cast.Cast.UnbindManager:input_type -> Cast.UnbindManagerReq - 7, // 13: Cast.Cast.BindManager:input_type -> Cast.BindManagerReq - 8, // 14: Cast.Cast.UpdateWorkImage:input_type -> Cast.UpdateWorkImageReq - 11, // 15: Cast.Cast.UpdateWorkVideo:input_type -> Cast.UpdateWorkVideoReq - 13, // 16: Cast.Cast.WorkList:input_type -> Cast.WorkListReq - 15, // 17: Cast.Cast.WorkDetail:input_type -> Cast.WorkDetailReq - 17, // 18: Cast.Cast.UpdateStatus:input_type -> Cast.UpdateStatusReq - 3, // 19: Cast.Cast.MediaUserList:output_type -> Cast.MediaUserListResp - 5, // 20: Cast.Cast.UpdateMediaAccount:output_type -> Cast.UpdateMediaAccountResp - 20, // 21: Cast.Cast.UnbindManager:output_type -> google.protobuf.Empty - 20, // 22: Cast.Cast.BindManager:output_type -> google.protobuf.Empty - 9, // 23: Cast.Cast.UpdateWorkImage:output_type -> Cast.UpdateWorkImageResp - 12, // 24: Cast.Cast.UpdateWorkVideo:output_type -> Cast.UpdateWorkVideoResp - 14, // 25: Cast.Cast.WorkList:output_type -> Cast.WorkListResp - 16, // 26: Cast.Cast.WorkDetail:output_type -> Cast.WorkDetailResp - 20, // 27: Cast.Cast.UpdateStatus:output_type -> google.protobuf.Empty - 19, // [19:28] is the sub-list for method output_type - 10, // [10:19] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + 10, // 4: Cast.UpdateWorkImageReq.publishConfig1:type_name -> Cast.PublishConfig + 10, // 5: Cast.UpdateWorkImageReq.publishConfig2:type_name -> Cast.PublishConfig + 10, // 6: Cast.UpdateWorkImageReq.publishConfig3:type_name -> Cast.PublishConfig + 0, // 7: Cast.UpdateWorkVideoReq.platformIDs:type_name -> Cast.PlatformIDENUM + 10, // 8: Cast.UpdateWorkVideoReq.publishConfig1:type_name -> Cast.PublishConfig + 10, // 9: Cast.UpdateWorkVideoReq.publishConfig2:type_name -> Cast.PublishConfig + 10, // 10: Cast.UpdateWorkVideoReq.publishConfig3:type_name -> Cast.PublishConfig + 24, // 11: Cast.WorkListResp.data:type_name -> Cast.WorkListResp.Info + 10, // 12: Cast.WorkDetailResp.publishConfig1:type_name -> Cast.PublishConfig + 10, // 13: Cast.WorkDetailResp.publishConfig2:type_name -> Cast.PublishConfig + 10, // 14: Cast.WorkDetailResp.publishConfig3:type_name -> Cast.PublishConfig + 16, // 15: Cast.WorkDetailResp.WorkLogData:type_name -> Cast.WorkLogInfo + 1, // 16: Cast.UpdateStatusReq.workAction:type_name -> Cast.WorkActionENUM + 25, // 17: Cast.MediaAccountsResp.data:type_name -> Cast.MediaAccountsResp.Info + 26, // 18: Cast.MediaWorksResp.data:type_name -> Cast.MediaWorksResp.Info + 2, // 19: Cast.Cast.MediaUserList:input_type -> Cast.MediaUserListReq + 4, // 20: Cast.Cast.UpdateMediaAccount:input_type -> Cast.UpdateMediaAccountReq + 6, // 21: Cast.Cast.UnbindManager:input_type -> Cast.UnbindManagerReq + 7, // 22: Cast.Cast.BindManager:input_type -> Cast.BindManagerReq + 8, // 23: Cast.Cast.UpdateWorkImage:input_type -> Cast.UpdateWorkImageReq + 11, // 24: Cast.Cast.UpdateWorkVideo:input_type -> Cast.UpdateWorkVideoReq + 13, // 25: Cast.Cast.WorkList:input_type -> Cast.WorkListReq + 15, // 26: Cast.Cast.WorkDetail:input_type -> Cast.WorkDetailReq + 18, // 27: Cast.Cast.UpdateStatus:input_type -> Cast.UpdateStatusReq + 19, // 28: Cast.Cast.MediaAccounts:input_type -> Cast.MediaAccountsReq + 21, // 29: Cast.Cast.MediaWorks:input_type -> Cast.MediaWorksReq + 3, // 30: Cast.Cast.MediaUserList:output_type -> Cast.MediaUserListResp + 5, // 31: Cast.Cast.UpdateMediaAccount:output_type -> Cast.UpdateMediaAccountResp + 27, // 32: Cast.Cast.UnbindManager:output_type -> google.protobuf.Empty + 27, // 33: Cast.Cast.BindManager:output_type -> google.protobuf.Empty + 9, // 34: Cast.Cast.UpdateWorkImage:output_type -> Cast.UpdateWorkImageResp + 12, // 35: Cast.Cast.UpdateWorkVideo:output_type -> Cast.UpdateWorkVideoResp + 14, // 36: Cast.Cast.WorkList:output_type -> Cast.WorkListResp + 17, // 37: Cast.Cast.WorkDetail:output_type -> Cast.WorkDetailResp + 27, // 38: Cast.Cast.UpdateStatus:output_type -> google.protobuf.Empty + 20, // 39: Cast.Cast.MediaAccounts:output_type -> Cast.MediaAccountsResp + 22, // 40: Cast.Cast.MediaWorks:output_type -> Cast.MediaWorksResp + 30, // [30:41] is the sub-list for method output_type + 19, // [19:30] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { file_pb_fiee_cast_proto_init() } @@ -2043,7 +2771,7 @@ func file_pb_fiee_cast_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_fiee_cast_proto_rawDesc, NumEnums: 2, - NumMessages: 18, + NumMessages: 25, NumExtensions: 0, NumServices: 1, }, diff --git a/api/cast/cast.pb.validate.go b/api/cast/cast.pb.validate.go index 60ea0ee..d9a38d3 100644 --- a/api/cast/cast.pb.validate.go +++ b/api/cast/cast.pb.validate.go @@ -69,6 +69,8 @@ func (m *MediaUserListReq) validate(all bool) error { // no validation rules for PageSize + // no validation rules for ArtistUuid + if len(errors) > 0 { return MediaUserListReqMultiError(errors) } @@ -744,11 +746,11 @@ func (m *UpdateWorkImageReq) validate(all bool) error { // no validation rules for Content if all { - switch v := interface{}(m.GetPublishConfig()).(type) { + switch v := interface{}(m.GetPublishConfig1()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { errors = append(errors, UpdateWorkImageReqValidationError{ - field: "PublishConfig", + field: "PublishConfig1", reason: "embedded message failed validation", cause: err, }) @@ -756,16 +758,74 @@ func (m *UpdateWorkImageReq) validate(all bool) error { case interface{ Validate() error }: if err := v.Validate(); err != nil { errors = append(errors, UpdateWorkImageReqValidationError{ - field: "PublishConfig", + field: "PublishConfig1", reason: "embedded message failed validation", cause: err, }) } } - } else if v, ok := interface{}(m.GetPublishConfig()).(interface{ Validate() error }); ok { + } else if v, ok := interface{}(m.GetPublishConfig1()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { return UpdateWorkImageReqValidationError{ - field: "PublishConfig", + field: "PublishConfig1", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetPublishConfig2()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UpdateWorkImageReqValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UpdateWorkImageReqValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPublishConfig2()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpdateWorkImageReqValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetPublishConfig3()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UpdateWorkImageReqValidationError{ + field: "PublishConfig3", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UpdateWorkImageReqValidationError{ + field: "PublishConfig3", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPublishConfig3()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpdateWorkImageReqValidationError{ + field: "PublishConfig3", reason: "embedded message failed validation", cause: err, } @@ -1109,11 +1169,11 @@ func (m *UpdateWorkVideoReq) validate(all bool) error { // no validation rules for CoverUrl if all { - switch v := interface{}(m.GetPublishConfig()).(type) { + switch v := interface{}(m.GetPublishConfig1()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { errors = append(errors, UpdateWorkVideoReqValidationError{ - field: "PublishConfig", + field: "PublishConfig1", reason: "embedded message failed validation", cause: err, }) @@ -1121,16 +1181,74 @@ func (m *UpdateWorkVideoReq) validate(all bool) error { case interface{ Validate() error }: if err := v.Validate(); err != nil { errors = append(errors, UpdateWorkVideoReqValidationError{ - field: "PublishConfig", + field: "PublishConfig1", reason: "embedded message failed validation", cause: err, }) } } - } else if v, ok := interface{}(m.GetPublishConfig()).(interface{ Validate() error }); ok { + } else if v, ok := interface{}(m.GetPublishConfig1()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { return UpdateWorkVideoReqValidationError{ - field: "PublishConfig", + field: "PublishConfig1", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetPublishConfig2()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UpdateWorkVideoReqValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UpdateWorkVideoReqValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPublishConfig2()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpdateWorkVideoReqValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetPublishConfig3()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UpdateWorkVideoReqValidationError{ + field: "PublishConfig3", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UpdateWorkVideoReqValidationError{ + field: "PublishConfig3", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPublishConfig3()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpdateWorkVideoReqValidationError{ + field: "PublishConfig3", reason: "embedded message failed validation", cause: err, } @@ -1371,6 +1489,8 @@ func (m *WorkListReq) validate(all bool) error { // no validation rules for WorkStatus + // no validation rules for MediaAccountUuid + // no validation rules for Page // no validation rules for PageSize @@ -1689,6 +1809,121 @@ var _ interface { ErrorName() string } = WorkDetailReqValidationError{} +// Validate checks the field values on WorkLogInfo 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 *WorkLogInfo) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkLogInfo 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 WorkLogInfoMultiError, or +// nil if none found. +func (m *WorkLogInfo) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkLogInfo) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for WorkUuid + + // no validation rules for Title + + // no validation rules for Content + + // no validation rules for OperatorName + + // no validation rules for OperatorID + + // no validation rules for UpdateTime + + // no validation rules for ExtraData + + // no validation rules for WorkStatus + + if len(errors) > 0 { + return WorkLogInfoMultiError(errors) + } + + return nil +} + +// WorkLogInfoMultiError is an error wrapping multiple validation errors +// returned by WorkLogInfo.ValidateAll() if the designated constraints aren't met. +type WorkLogInfoMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkLogInfoMultiError) 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 WorkLogInfoMultiError) AllErrors() []error { return m } + +// WorkLogInfoValidationError is the validation error returned by +// WorkLogInfo.Validate if the designated constraints aren't met. +type WorkLogInfoValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkLogInfoValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkLogInfoValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkLogInfoValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkLogInfoValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkLogInfoValidationError) ErrorName() string { return "WorkLogInfoValidationError" } + +// Error satisfies the builtin error interface +func (e WorkLogInfoValidationError) 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 %sWorkLogInfo.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkLogInfoValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkLogInfoValidationError{} + // Validate checks the field values on WorkDetailResp 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. @@ -1720,11 +1955,11 @@ func (m *WorkDetailResp) validate(all bool) error { // no validation rules for WorkStatus if all { - switch v := interface{}(m.GetPublishConfig()).(type) { + switch v := interface{}(m.GetPublishConfig1()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { errors = append(errors, WorkDetailRespValidationError{ - field: "PublishConfig", + field: "PublishConfig1", reason: "embedded message failed validation", cause: err, }) @@ -1732,16 +1967,74 @@ func (m *WorkDetailResp) validate(all bool) error { case interface{ Validate() error }: if err := v.Validate(); err != nil { errors = append(errors, WorkDetailRespValidationError{ - field: "PublishConfig", + field: "PublishConfig1", reason: "embedded message failed validation", cause: err, }) } } - } else if v, ok := interface{}(m.GetPublishConfig()).(interface{ Validate() error }); ok { + } else if v, ok := interface{}(m.GetPublishConfig1()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { return WorkDetailRespValidationError{ - field: "PublishConfig", + field: "PublishConfig1", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetPublishConfig2()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkDetailRespValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkDetailRespValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPublishConfig2()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkDetailRespValidationError{ + field: "PublishConfig2", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetPublishConfig3()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkDetailRespValidationError{ + field: "PublishConfig3", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkDetailRespValidationError{ + field: "PublishConfig3", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPublishConfig3()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkDetailRespValidationError{ + field: "PublishConfig3", reason: "embedded message failed validation", cause: err, } @@ -1754,6 +2047,42 @@ func (m *WorkDetailResp) validate(all bool) error { // no validation rules for ApprovalID + for idx, item := range m.GetWorkLogData() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkDetailRespValidationError{ + field: fmt.Sprintf("WorkLogData[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkDetailRespValidationError{ + field: fmt.Sprintf("WorkLogData[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkDetailRespValidationError{ + field: fmt.Sprintf("WorkLogData[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for WorkCategory + if len(errors) > 0 { return WorkDetailRespMultiError(errors) } @@ -1942,6 +2271,486 @@ var _ interface { ErrorName() string } = UpdateStatusReqValidationError{} +// Validate checks the field values on MediaAccountsReq 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 *MediaAccountsReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on MediaAccountsReq 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 +// MediaAccountsReqMultiError, or nil if none found. +func (m *MediaAccountsReq) ValidateAll() error { + return m.validate(true) +} + +func (m *MediaAccountsReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ArtistUuid + + if len(errors) > 0 { + return MediaAccountsReqMultiError(errors) + } + + return nil +} + +// MediaAccountsReqMultiError is an error wrapping multiple validation errors +// returned by MediaAccountsReq.ValidateAll() if the designated constraints +// aren't met. +type MediaAccountsReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m MediaAccountsReqMultiError) 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 MediaAccountsReqMultiError) AllErrors() []error { return m } + +// MediaAccountsReqValidationError is the validation error returned by +// MediaAccountsReq.Validate if the designated constraints aren't met. +type MediaAccountsReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MediaAccountsReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MediaAccountsReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MediaAccountsReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MediaAccountsReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MediaAccountsReqValidationError) ErrorName() string { return "MediaAccountsReqValidationError" } + +// Error satisfies the builtin error interface +func (e MediaAccountsReqValidationError) 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 %sMediaAccountsReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MediaAccountsReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MediaAccountsReqValidationError{} + +// Validate checks the field values on MediaAccountsResp 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 *MediaAccountsResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on MediaAccountsResp 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 +// MediaAccountsRespMultiError, or nil if none found. +func (m *MediaAccountsResp) ValidateAll() error { + return m.validate(true) +} + +func (m *MediaAccountsResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetData() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, MediaAccountsRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, MediaAccountsRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return MediaAccountsRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return MediaAccountsRespMultiError(errors) + } + + return nil +} + +// MediaAccountsRespMultiError is an error wrapping multiple validation errors +// returned by MediaAccountsResp.ValidateAll() if the designated constraints +// aren't met. +type MediaAccountsRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m MediaAccountsRespMultiError) 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 MediaAccountsRespMultiError) AllErrors() []error { return m } + +// MediaAccountsRespValidationError is the validation error returned by +// MediaAccountsResp.Validate if the designated constraints aren't met. +type MediaAccountsRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MediaAccountsRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MediaAccountsRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MediaAccountsRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MediaAccountsRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MediaAccountsRespValidationError) ErrorName() string { + return "MediaAccountsRespValidationError" +} + +// Error satisfies the builtin error interface +func (e MediaAccountsRespValidationError) 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 %sMediaAccountsResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MediaAccountsRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MediaAccountsRespValidationError{} + +// Validate checks the field values on MediaWorksReq 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 *MediaWorksReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on MediaWorksReq 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 MediaWorksReqMultiError, or +// nil if none found. +func (m *MediaWorksReq) ValidateAll() error { + return m.validate(true) +} + +func (m *MediaWorksReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for MediaAccountUuid + + // no validation rules for Page + + // no validation rules for PageSize + + if len(errors) > 0 { + return MediaWorksReqMultiError(errors) + } + + return nil +} + +// MediaWorksReqMultiError is an error wrapping multiple validation errors +// returned by MediaWorksReq.ValidateAll() if the designated constraints +// aren't met. +type MediaWorksReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m MediaWorksReqMultiError) 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 MediaWorksReqMultiError) AllErrors() []error { return m } + +// MediaWorksReqValidationError is the validation error returned by +// MediaWorksReq.Validate if the designated constraints aren't met. +type MediaWorksReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MediaWorksReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MediaWorksReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MediaWorksReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MediaWorksReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MediaWorksReqValidationError) ErrorName() string { return "MediaWorksReqValidationError" } + +// Error satisfies the builtin error interface +func (e MediaWorksReqValidationError) 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 %sMediaWorksReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MediaWorksReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MediaWorksReqValidationError{} + +// Validate checks the field values on MediaWorksResp 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 *MediaWorksResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on MediaWorksResp 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 MediaWorksRespMultiError, +// or nil if none found. +func (m *MediaWorksResp) ValidateAll() error { + return m.validate(true) +} + +func (m *MediaWorksResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Count + + for idx, item := range m.GetData() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, MediaWorksRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, MediaWorksRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return MediaWorksRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return MediaWorksRespMultiError(errors) + } + + return nil +} + +// MediaWorksRespMultiError is an error wrapping multiple validation errors +// returned by MediaWorksResp.ValidateAll() if the designated constraints +// aren't met. +type MediaWorksRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m MediaWorksRespMultiError) 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 MediaWorksRespMultiError) AllErrors() []error { return m } + +// MediaWorksRespValidationError is the validation error returned by +// MediaWorksResp.Validate if the designated constraints aren't met. +type MediaWorksRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MediaWorksRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MediaWorksRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MediaWorksRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MediaWorksRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MediaWorksRespValidationError) ErrorName() string { return "MediaWorksRespValidationError" } + +// Error satisfies the builtin error interface +func (e MediaWorksRespValidationError) 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 %sMediaWorksResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MediaWorksRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MediaWorksRespValidationError{} + // Validate checks the field values on MediaUserListResp_Info 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. @@ -1972,6 +2781,8 @@ func (m *MediaUserListResp_Info) validate(all bool) error { // no validation rules for ArtistPhone + // no validation rules for ArtistUuid + // no validation rules for ManagerUserName // no validation rules for ManagerUuid @@ -2175,3 +2986,237 @@ var _ interface { Cause() error ErrorName() string } = WorkListResp_InfoValidationError{} + +// Validate checks the field values on MediaAccountsResp_Info 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 *MediaAccountsResp_Info) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on MediaAccountsResp_Info 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 +// MediaAccountsResp_InfoMultiError, or nil if none found. +func (m *MediaAccountsResp_Info) ValidateAll() error { + return m.validate(true) +} + +func (m *MediaAccountsResp_Info) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for PlatformID + + // no validation rules for FansCount + + // no validation rules for WorkCount + + // no validation rules for ArtistUuid + + // no validation rules for MediaAccountUuid + + // no validation rules for MediaAccountName + + if len(errors) > 0 { + return MediaAccountsResp_InfoMultiError(errors) + } + + return nil +} + +// MediaAccountsResp_InfoMultiError is an error wrapping multiple validation +// errors returned by MediaAccountsResp_Info.ValidateAll() if the designated +// constraints aren't met. +type MediaAccountsResp_InfoMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m MediaAccountsResp_InfoMultiError) 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 MediaAccountsResp_InfoMultiError) AllErrors() []error { return m } + +// MediaAccountsResp_InfoValidationError is the validation error returned by +// MediaAccountsResp_Info.Validate if the designated constraints aren't met. +type MediaAccountsResp_InfoValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MediaAccountsResp_InfoValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MediaAccountsResp_InfoValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MediaAccountsResp_InfoValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MediaAccountsResp_InfoValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MediaAccountsResp_InfoValidationError) ErrorName() string { + return "MediaAccountsResp_InfoValidationError" +} + +// Error satisfies the builtin error interface +func (e MediaAccountsResp_InfoValidationError) 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 %sMediaAccountsResp_Info.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MediaAccountsResp_InfoValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MediaAccountsResp_InfoValidationError{} + +// Validate checks the field values on MediaWorksResp_Info 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 *MediaWorksResp_Info) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on MediaWorksResp_Info 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 +// MediaWorksResp_InfoMultiError, or nil if none found. +func (m *MediaWorksResp_Info) ValidateAll() error { + return m.validate(true) +} + +func (m *MediaWorksResp_Info) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for WorkUuid + + // no validation rules for Title + + // no validation rules for Content + + // no validation rules for WorkCategory + + // no validation rules for WorkStatus + + // no validation rules for SubmitTime + + // no validation rules for StatusUpdateTime + + // no validation rules for VideoUrl + + // no validation rules for CoverUrl + + if len(errors) > 0 { + return MediaWorksResp_InfoMultiError(errors) + } + + return nil +} + +// MediaWorksResp_InfoMultiError is an error wrapping multiple validation +// errors returned by MediaWorksResp_Info.ValidateAll() if the designated +// constraints aren't met. +type MediaWorksResp_InfoMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m MediaWorksResp_InfoMultiError) 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 MediaWorksResp_InfoMultiError) AllErrors() []error { return m } + +// MediaWorksResp_InfoValidationError is the validation error returned by +// MediaWorksResp_Info.Validate if the designated constraints aren't met. +type MediaWorksResp_InfoValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MediaWorksResp_InfoValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MediaWorksResp_InfoValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MediaWorksResp_InfoValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MediaWorksResp_InfoValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MediaWorksResp_InfoValidationError) ErrorName() string { + return "MediaWorksResp_InfoValidationError" +} + +// Error satisfies the builtin error interface +func (e MediaWorksResp_InfoValidationError) 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 %sMediaWorksResp_Info.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MediaWorksResp_InfoValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MediaWorksResp_InfoValidationError{} diff --git a/api/cast/cast_triple.pb.go b/api/cast/cast_triple.pb.go index 787b81f..fe715db 100644 --- a/api/cast/cast_triple.pb.go +++ b/api/cast/cast_triple.pb.go @@ -38,6 +38,8 @@ type CastClient interface { WorkList(ctx context.Context, in *WorkListReq, opts ...grpc_go.CallOption) (*WorkListResp, common.ErrorWithAttachment) WorkDetail(ctx context.Context, in *WorkDetailReq, opts ...grpc_go.CallOption) (*WorkDetailResp, common.ErrorWithAttachment) UpdateStatus(ctx context.Context, in *UpdateStatusReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + MediaAccounts(ctx context.Context, in *MediaAccountsReq, opts ...grpc_go.CallOption) (*MediaAccountsResp, common.ErrorWithAttachment) + MediaWorks(ctx context.Context, in *MediaWorksReq, opts ...grpc_go.CallOption) (*MediaWorksResp, common.ErrorWithAttachment) } type castClient struct { @@ -54,6 +56,8 @@ type CastClientImpl struct { WorkList func(ctx context.Context, in *WorkListReq) (*WorkListResp, error) WorkDetail func(ctx context.Context, in *WorkDetailReq) (*WorkDetailResp, error) UpdateStatus func(ctx context.Context, in *UpdateStatusReq) (*emptypb.Empty, error) + MediaAccounts func(ctx context.Context, in *MediaAccountsReq) (*MediaAccountsResp, error) + MediaWorks func(ctx context.Context, in *MediaWorksReq) (*MediaWorksResp, error) } func (c *CastClientImpl) GetDubboStub(cc *triple.TripleConn) CastClient { @@ -122,6 +126,18 @@ func (c *castClient) UpdateStatus(ctx context.Context, in *UpdateStatusReq, opts return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateStatus", in, out) } +func (c *castClient) MediaAccounts(ctx context.Context, in *MediaAccountsReq, opts ...grpc_go.CallOption) (*MediaAccountsResp, common.ErrorWithAttachment) { + out := new(MediaAccountsResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/MediaAccounts", in, out) +} + +func (c *castClient) MediaWorks(ctx context.Context, in *MediaWorksReq, opts ...grpc_go.CallOption) (*MediaWorksResp, common.ErrorWithAttachment) { + out := new(MediaWorksResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/MediaWorks", in, out) +} + // CastServer is the server API for Cast service. // All implementations must embed UnimplementedCastServer // for forward compatibility @@ -135,6 +151,8 @@ type CastServer interface { WorkList(context.Context, *WorkListReq) (*WorkListResp, error) WorkDetail(context.Context, *WorkDetailReq) (*WorkDetailResp, error) UpdateStatus(context.Context, *UpdateStatusReq) (*emptypb.Empty, error) + MediaAccounts(context.Context, *MediaAccountsReq) (*MediaAccountsResp, error) + MediaWorks(context.Context, *MediaWorksReq) (*MediaWorksResp, error) mustEmbedUnimplementedCastServer() } @@ -170,6 +188,12 @@ func (UnimplementedCastServer) WorkDetail(context.Context, *WorkDetailReq) (*Wor func (UnimplementedCastServer) UpdateStatus(context.Context, *UpdateStatusReq) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateStatus not implemented") } +func (UnimplementedCastServer) MediaAccounts(context.Context, *MediaAccountsReq) (*MediaAccountsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method MediaAccounts not implemented") +} +func (UnimplementedCastServer) MediaWorks(context.Context, *MediaWorksReq) (*MediaWorksResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method MediaWorks not implemented") +} func (s *UnimplementedCastServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -459,6 +483,64 @@ func _Cast_UpdateStatus_Handler(srv interface{}, ctx context.Context, dec func(i return interceptor(ctx, in, info, handler) } +func _Cast_MediaAccounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(MediaAccountsReq) + 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("MediaAccounts", 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 _Cast_MediaWorks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(MediaWorksReq) + 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("MediaWorks", 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) +} + // Cast_ServiceDesc is the grpc_go.ServiceDesc for Cast service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -502,6 +584,14 @@ var Cast_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "UpdateStatus", Handler: _Cast_UpdateStatus_Handler, }, + { + MethodName: "MediaAccounts", + Handler: _Cast_MediaAccounts_Handler, + }, + { + MethodName: "MediaWorks", + Handler: _Cast_MediaWorks_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/fiee/cast.proto", diff --git a/pkg/service/bundle/bundleBalance.go b/pkg/service/bundle/bundleBalance.go index 9cdd01f..dfa421b 100644 --- a/pkg/service/bundle/bundleBalance.go +++ b/pkg/service/bundle/bundleBalance.go @@ -183,13 +183,7 @@ func WorkConfirm(c *gin.Context) { // 确认作品并扣除余量 service.Error(c, errors.New("作品不是待确认状态")) return } - var workCategory int // 1 图文 2 视频 - - if len(wordInfoRes.Images) == 0 { // 临时判断 - workCategory = 2 - } else { - workCategory = 1 - } + var workCategory = wordInfoRes.WorkCategory var addBalanceReq bundle.AddBundleBalanceReq addBalanceReq.UserId = int32(userInfo.ID)