From c8c093654dabe69a420f84f7b0da31e71d4f1f4e Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Tue, 28 Feb 2023 23:27:00 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_artwork.go | 10 +- cmd/internal/controller/supply.go | 209 +++-- cmd/internal/dao/artistInfo_user.go | 48 +- cmd/internal/dao/artistinfo_artwork.go | 5 +- cmd/internal/dao/contract.go | 13 +- cmd/internal/dao/supply.go | 782 +++++++++--------- cmd/internal/logic/supply.go | 168 ++-- cmd/internal/old/dao/artwork.go | 19 +- cmd/model/artworkEx.go | 71 ++ cmd/model/artworkLockRecord.go | 17 - cmd/model/{exhexam.go => artwork_ex_exam.go} | 7 +- .../{exhvideo.go => artwork_ex_video.go} | 0 cmd/model/artwork_main_lockRecord.go | 19 + cmd/model/model.go | 6 + cmd/model/{ => old}/artistinfo.go | 6 +- cmd/model/{ => old}/artwork.go | 6 +- cmd/model/{ => old}/artworkbatch.go | 8 +- cmd/model/{ => old}/artworkstate.go | 6 +- cmd/model/{ => old}/bank.go | 6 +- cmd/model/{ => old}/contract.go | 6 +- cmd/model/temp_artwork_ext_data.go | 55 ++ pb/artistInfoArtwork/artistinfoArtwork.pb.go | 318 +++---- .../artistinfoArtwork.pb.validate.go | 2 + pb/artistinfoArtwork.proto | 1 + pkg/db/init.go | 11 +- 25 files changed, 972 insertions(+), 827 deletions(-) create mode 100644 cmd/model/artworkEx.go delete mode 100644 cmd/model/artworkLockRecord.go rename cmd/model/{exhexam.go => artwork_ex_exam.go} (81%) rename cmd/model/{exhvideo.go => artwork_ex_video.go} (100%) create mode 100644 cmd/model/artwork_main_lockRecord.go rename cmd/model/{ => old}/artistinfo.go (91%) rename cmd/model/{ => old}/artwork.go (98%) rename cmd/model/{ => old}/artworkbatch.go (61%) rename cmd/model/{ => old}/artworkstate.go (72%) rename cmd/model/{ => old}/bank.go (75%) rename cmd/model/{ => old}/contract.go (98%) create mode 100644 cmd/model/temp_artwork_ext_data.go diff --git a/cmd/internal/controller/artistInfo_artwork.go b/cmd/internal/controller/artistInfo_artwork.go index 31de05c..9351357 100644 --- a/cmd/internal/controller/artistInfo_artwork.go +++ b/cmd/internal/controller/artistInfo_artwork.go @@ -41,16 +41,16 @@ func (a ArtistInfoArtworkProvider) ArtworkLockAction(ctx context.Context, reques return a.artistInfoLogic.ArtworkLockAction(request) } -// GetArtworkRecordUids 获取画作锁记录 -func (a ArtistInfoArtworkProvider) GetArtworkLockRecords(ctx context.Context, request *artistInfoArtwork.GetArtworkLockRecordsRequest) (*artistInfoArtwork.ArtworkLockList, error) { - return a.artistInfoLogic.GetArtworkLockRecords(request) -} - // DeleteArtworkRecord 删除话走锁记录 func (a ArtistInfoArtworkProvider) DeleteArtworkRecord(ctx context.Context, request *artistInfoArtwork.DeleteArtworkRecordRequest) (*artistInfoArtwork.ArtworkCommonNoParams, error) { return a.artistInfoLogic.DeleteArtworkRecord(request) } +// GetArtworkRecordUids 获取画作锁记录 +func (a ArtistInfoArtworkProvider) GetArtworkLockRecords(ctx context.Context, request *artistInfoArtwork.GetArtworkLockRecordsRequest) (*artistInfoArtwork.ArtworkLockList, error) { + return a.artistInfoLogic.GetArtworkLockRecords(request) +} + // GetArtworkLockHistoryGroup 查询画作历史记录,按照锁定时间分组 func (a ArtistInfoArtworkProvider) GetArtworkLockHistoryGroup(ctx context.Context, request *artistInfoArtwork.GetArtworkLockHistoryRequest) (*artistInfoArtwork.GetArtworkLockHistoryResponse, error) { return a.artistInfoLogic.GetArtworkLockHistoryGroup(request) diff --git a/cmd/internal/controller/supply.go b/cmd/internal/controller/supply.go index d4a4997..6189956 100644 --- a/cmd/internal/controller/supply.go +++ b/cmd/internal/controller/supply.go @@ -1,110 +1,103 @@ package controller -import ( - "context" - "fmt" - - "github.com/fonchain/fonchain-artistinfo/cmd/internal/logic" - "github.com/fonchain/fonchain-artistinfo/pb/supplyinfo" -) - -type SupplyProvider struct { - supplyinfo.UnimplementedSupplyInfoServer - SupplyLogic *logic.Supply -} - -func (a *SupplyProvider) GetSupplyInfoList(ctx context.Context, req *supplyinfo.GetSupplyInfoListRequest) (rep *supplyinfo.GetSupplyInfoListRespond, err error) { - fmt.Println("第一处") - if rep, err = a.SupplyLogic.GetSupplyInfoList(req); err != nil { - return nil, err - } - return rep, nil -} - -func (a *SupplyProvider) GetSupplyInfo(ctx context.Context, req *supplyinfo.GetSupplyInfoRequest) (rep *supplyinfo.GetSupplyInfoData, err error) { - fmt.Println("第一处") - if rep, err = a.SupplyLogic.GetSupplyInfo(req); err != nil { - return nil, err - } - return rep, nil -} - -func (a *SupplyProvider) UpdateSupplyInfo(ctx context.Context, req *supplyinfo.UpdateSupplyInfoRequest) (rep *supplyinfo.UpdateSupplyInfoRespond, err error) { - fmt.Println("第一处") - if rep, err = a.SupplyLogic.UpdateSupplyInfo(req); err != nil { - return nil, err - } - return rep, nil -} - -func (a *SupplyProvider) GetVideoList(ctx context.Context, req *supplyinfo.GetVideoListRequest) (rep *supplyinfo.GetVideoListRespond, err error) { - fmt.Println("第一处") - if rep, err = a.SupplyLogic.GetVideoList(req); err != nil { - return nil, err - } - return rep, nil -} - -func (a *SupplyProvider) GetVideo(ctx context.Context, req *supplyinfo.GetVideoRequest) (rep *supplyinfo.GetVideoListData, err error) { - fmt.Println("第一处") - if rep, err = a.SupplyLogic.GetVideo(req); err != nil { - return nil, err - } - return rep, nil -} - -func (a *SupplyProvider) UpdateVideo(ctx context.Context, req *supplyinfo.UpdateVideoRequest) (rep *supplyinfo.UpdateVideoRespond, err error) { - fmt.Println("第一处") - if rep, err = a.SupplyLogic.UpdateVideo(req); err != nil { - return nil, err - } - return rep, nil -} - -func (a *SupplyProvider) GetExam(ctx context.Context, req *supplyinfo.GetExamRequest) (rep *supplyinfo.GetExamListData, err error) { - fmt.Println("第一处") - if rep, err = a.SupplyLogic.GetExam(req); err != nil { - return nil, err - } - return rep, nil -} - -func (a *SupplyProvider) GetExamList(ctx context.Context, req *supplyinfo.GetExamListRequest) (rep *supplyinfo.GetExamListRespond, err error) { - fmt.Println("第一处") - if rep, err = a.SupplyLogic.GetExamList(req); err != nil { - return nil, err - } - return rep, nil -} - -func (a *SupplyProvider) UpdateExam(ctx context.Context, req *supplyinfo.UpdateExamRequest) (rep *supplyinfo.UpdateExamRespond, err error) { - fmt.Println("第一处") - if rep, err = a.SupplyLogic.UpdateExam(req); err != nil { - return nil, err - } - return rep, nil -} - -func (a *SupplyProvider) GetArtistInfoList(ctx context.Context, req *supplyinfo.GetArtistInfoListRequest) (rep *supplyinfo.GetArtistInfoListRespond, err error) { - fmt.Println("第一处") - if rep, err = a.SupplyLogic.GetArtistInfoList(req); err != nil { - return nil, err - } - return rep, nil -} - -func (a *SupplyProvider) GetArtistInfo(ctx context.Context, req *supplyinfo.GetArtistInfoRequest) (rep *supplyinfo.GetArtistInfoListData, err error) { - fmt.Println("第一处") - if rep, err = a.SupplyLogic.GetArtistInfo(req); err != nil { - return nil, err - } - return rep, nil -} - -func (a *SupplyProvider) UpdateArtistInfo(ctx context.Context, req *supplyinfo.UpdateArtistInfoRequest) (rep *supplyinfo.UpdateArtistInfoRespond, err error) { - fmt.Println("第一处") - if rep, err = a.SupplyLogic.UpdateArtistInfo(req); err != nil { - return nil, err - } - return rep, nil -} +// +//type SupplyProvider struct { +// supplyinfo.UnimplementedSupplyInfoServer +// SupplyLogic *logic.Supply +//} +// +//func (a *SupplyProvider) GetSupplyInfoList(ctx context.Context, req *supplyinfo.GetSupplyInfoListRequest) (rep *supplyinfo.GetSupplyInfoListRespond, err error) { +// fmt.Println("第一处") +// if rep, err = a.SupplyLogic.GetSupplyInfoList(req); err != nil { +// return nil, err +// } +// return rep, nil +//} +// +//func (a *SupplyProvider) GetSupplyInfo(ctx context.Context, req *supplyinfo.GetSupplyInfoRequest) (rep *supplyinfo.GetSupplyInfoData, err error) { +// fmt.Println("第一处") +// if rep, err = a.SupplyLogic.GetSupplyInfo(req); err != nil { +// return nil, err +// } +// return rep, nil +//} +// +//func (a *SupplyProvider) UpdateSupplyInfo(ctx context.Context, req *supplyinfo.UpdateSupplyInfoRequest) (rep *supplyinfo.UpdateSupplyInfoRespond, err error) { +// fmt.Println("第一处") +// if rep, err = a.SupplyLogic.UpdateSupplyInfo(req); err != nil { +// return nil, err +// } +// return rep, nil +//} +// +//func (a *SupplyProvider) GetVideoList(ctx context.Context, req *supplyinfo.GetVideoListRequest) (rep *supplyinfo.GetVideoListRespond, err error) { +// fmt.Println("第一处") +// if rep, err = a.SupplyLogic.GetVideoList(req); err != nil { +// return nil, err +// } +// return rep, nil +//} +// +//func (a *SupplyProvider) GetVideo(ctx context.Context, req *supplyinfo.GetVideoRequest) (rep *supplyinfo.GetVideoListData, err error) { +// fmt.Println("第一处") +// if rep, err = a.SupplyLogic.GetVideo(req); err != nil { +// return nil, err +// } +// return rep, nil +//} +// +//func (a *SupplyProvider) UpdateVideo(ctx context.Context, req *supplyinfo.UpdateVideoRequest) (rep *supplyinfo.UpdateVideoRespond, err error) { +// fmt.Println("第一处") +// if rep, err = a.SupplyLogic.UpdateVideo(req); err != nil { +// return nil, err +// } +// return rep, nil +//} +// +//func (a *SupplyProvider) GetExam(ctx context.Context, req *supplyinfo.GetExamRequest) (rep *supplyinfo.GetExamListData, err error) { +// fmt.Println("第一处") +// if rep, err = a.SupplyLogic.GetExam(req); err != nil { +// return nil, err +// } +// return rep, nil +//} +// +//func (a *SupplyProvider) GetExamList(ctx context.Context, req *supplyinfo.GetExamListRequest) (rep *supplyinfo.GetExamListRespond, err error) { +// fmt.Println("第一处") +// if rep, err = a.SupplyLogic.GetExamList(req); err != nil { +// return nil, err +// } +// return rep, nil +//} +// +//func (a *SupplyProvider) UpdateExam(ctx context.Context, req *supplyinfo.UpdateExamRequest) (rep *supplyinfo.UpdateExamRespond, err error) { +// fmt.Println("第一处") +// if rep, err = a.SupplyLogic.UpdateExam(req); err != nil { +// return nil, err +// } +// return rep, nil +//} +// +//func (a *SupplyProvider) GetArtistInfoList(ctx context.Context, req *supplyinfo.GetArtistInfoListRequest) (rep *supplyinfo.GetArtistInfoListRespond, err error) { +// fmt.Println("第一处") +// if rep, err = a.SupplyLogic.GetArtistInfoList(req); err != nil { +// return nil, err +// } +// return rep, nil +//} +// +//func (a *SupplyProvider) GetArtistInfo(ctx context.Context, req *supplyinfo.GetArtistInfoRequest) (rep *supplyinfo.GetArtistInfoListData, err error) { +// fmt.Println("第一处") +// if rep, err = a.SupplyLogic.GetArtistInfo(req); err != nil { +// return nil, err +// } +// return rep, nil +//} +// +//func (a *SupplyProvider) UpdateArtistInfo(ctx context.Context, req *supplyinfo.UpdateArtistInfoRequest) (rep *supplyinfo.UpdateArtistInfoRespond, err error) { +// fmt.Println("第一处") +// if rep, err = a.SupplyLogic.UpdateArtistInfo(req); err != nil { +// return nil, err +// } +// return rep, nil +//} diff --git a/cmd/internal/dao/artistInfo_user.go b/cmd/internal/dao/artistInfo_user.go index 7318600..373c955 100644 --- a/cmd/internal/dao/artistInfo_user.go +++ b/cmd/internal/dao/artistInfo_user.go @@ -386,30 +386,30 @@ func UnFinishList(req *artistInfoUser.UnFinishListRequest) (rep *artistInfoUser. // return nil, err //} //rep.AccountStateList = accountStateCount - var supplyInfo model.SupplyInfo - var supplyInfoCount int64 - if err := db.DB.Model(&supplyInfo).Where("types = ? and user_id = ? ", "1", user.ID).Count(&supplyInfoCount).Error; err != nil { - zap.L().Error("get user info err", zap.Error(err)) - err = errors.New(m.ERROR_SELECT) - return nil, err - } - rep.SupplyInfoList += supplyInfoCount - var exhVideo model.ExhVideo - var exhVideoCount int64 - if err := db.DB.Model(&exhVideo).Where("types = ? and user_id = ? ", "1", user.ID).Count(&exhVideoCount).Error; err != nil { - zap.L().Error("get user info err", zap.Error(err)) - err = errors.New(m.ERROR_SELECT) - return nil, err - } - rep.SupplyInfoList += exhVideoCount - var exhExam model.ExhExam - var exhExamCount int64 - if err := db.DB.Model(&exhExam).Where("types = ? and user_id = ? ", "1", user.ID).Count(&exhExamCount).Error; err != nil { - zap.L().Error("get user info err", zap.Error(err)) - err = errors.New(m.ERROR_SELECT) - return nil, err - } - rep.SupplyInfoList += exhExamCount + //var supplyInfo model.SupplyInfo + //var supplyInfoCount int64 + //if err := db.DB.Model(&supplyInfo).Where("types = ? and user_id = ? ", "1", user.ID).Count(&supplyInfoCount).Error; err != nil { + // zap.L().Error("get user info err", zap.Error(err)) + // err = errors.New(m.ERROR_SELECT) + // return nil, err + //} + //rep.SupplyInfoList += supplyInfoCount + //var exhVideo model.ExhVideo + //var exhVideoCount int64 + //if err := db.DB.Model(&exhVideo).Where("types = ? and user_id = ? ", "1", user.ID).Count(&exhVideoCount).Error; err != nil { + // zap.L().Error("get user info err", zap.Error(err)) + // err = errors.New(m.ERROR_SELECT) + // return nil, err + //} + //rep.SupplyInfoList += exhVideoCount + //var exhExam model.ExhExam + //var exhExamCount int64 + //if err := db.DB.Model(&exhExam).Where("types = ? and user_id = ? ", "1", user.ID).Count(&exhExamCount).Error; err != nil { + // zap.L().Error("get user info err", zap.Error(err)) + // err = errors.New(m.ERROR_SELECT) + // return nil, err + //} + //rep.SupplyInfoList += exhExamCount return rep, nil } diff --git a/cmd/internal/dao/artistinfo_artwork.go b/cmd/internal/dao/artistinfo_artwork.go index 8892f97..ed5bf8b 100644 --- a/cmd/internal/dao/artistinfo_artwork.go +++ b/cmd/internal/dao/artistinfo_artwork.go @@ -117,7 +117,7 @@ func GetArtworkLockRecords(req *artistInfoArtwork.GetArtworkLockRecordsRequest) case artistInfoArtwork.ArtworkQueryMode_NowPreSaveArtwork: //当前暂存的画作 tx = tx.Where("status = 1") case artistInfoArtwork.ArtworkQueryMode_NowLockedArtwork: //当前已锁定的画作 - tx = tx.Where("status = 2", req.ArtistUid) + tx = tx.Where("status = 2") case artistInfoArtwork.ArtworkQueryMode_ArtistCanSee: //画家能看到的画作(暂存和锁定) //弃用,画家看到的是暂存的画作 tx = tx.Where("status < 3") case artistInfoArtwork.ArtworkQueryMode_AllUnlockArtwork: //所有已解锁的画作(历史画作) @@ -125,6 +125,9 @@ func GetArtworkLockRecords(req *artistInfoArtwork.GetArtworkLockRecordsRequest) //case artistInfoArtwork.ArtworkQueryMode_AllHistoryArtwork: //所有历史画作 // tx = tx.Where("status > 1") } + if req.AuditStatus != 0 { + tx = tx.Where("audit_status = ?", req.AuditStatus) + } err = tx.Find(&datas).Error for _, v := range datas { resp.Data = append(resp.Data, &artistInfoArtwork.ArtistLockInfo{ diff --git a/cmd/internal/dao/contract.go b/cmd/internal/dao/contract.go index ceebb12..a8d2753 100644 --- a/cmd/internal/dao/contract.go +++ b/cmd/internal/dao/contract.go @@ -2,6 +2,7 @@ package dao import ( "errors" + "github.com/fonchain/fonchain-artistinfo/cmd/model/old" "time" "github.com/fonchain/fonchain-artistinfo/cmd/model" @@ -12,7 +13,7 @@ import ( ) func FinishContract(id string) (err error) { - var contracts model.Contract + var contracts old.Contract if err = db.DB.Where("transaction_id = ?", id).First(&contracts).Error; err != nil { zap.L().Error("get contract info err", zap.Error(err)) err = errors.New(m.ERROR_SELECT) @@ -59,7 +60,7 @@ func ContractList(req *contract.ContractListRequest) (rep *contract.ContractList args = append(args, req.State) } - var contractModel []model.Contract + var contractModel []old.Contract if err = db.DB.Where(sqlWhere, args...).Find(&contractModel).Error; err != nil { zap.L().Error("get contractModels info err", zap.Error(err)) err = errors.New(m.ERROR_SELECT) @@ -150,7 +151,7 @@ func ContractTxList(req *contract.ContractTxListRequest) (rep *contract.Contract } func GetContract(id int32) (rep *contract.ContractData, err error) { - var con model.Contract + var con old.Contract if err = db.DB.Where("id = ? ", id).First(&con).Error; err != nil { zap.L().Error("get contract info err", zap.Error(err)) err = errors.New(m.ERROR_SELECT) @@ -175,8 +176,8 @@ func GetContract(id int32) (rep *contract.ContractData, err error) { // 更新交易id func UpdateContract(req *contract.UpdateContractRequest) error { //数据库操作异常 - var con model.Contract - if err := db.DB.Model(&con).Updates(&model.Contract{ContractId: req.ContractId, ViewUrl: req.ViewUrl, DownloadUrl: req.DownloadUrl}).Error; err != nil { + var con old.Contract + if err := db.DB.Model(&con).Updates(&old.Contract{ContractId: req.ContractId, ViewUrl: req.ViewUrl, DownloadUrl: req.DownloadUrl}).Error; err != nil { return err } return nil @@ -184,7 +185,7 @@ func UpdateContract(req *contract.UpdateContractRequest) error { // 更新交易id func UpdateContractTx(txId string, contractId int32) (err error) { - var con model.Contract + var con old.Contract con.ID = contractId if err = db.DB.Model(&con).Update("transaction_id", txId).Error; err != nil { return diff --git a/cmd/internal/dao/supply.go b/cmd/internal/dao/supply.go index 7438e7b..0003f72 100644 --- a/cmd/internal/dao/supply.go +++ b/cmd/internal/dao/supply.go @@ -1,398 +1,388 @@ package dao -import ( - "encoding/json" - "errors" - - "github.com/fonchain/fonchain-artistinfo/cmd/model" - "github.com/fonchain/fonchain-artistinfo/pb/supplyinfo" - db "github.com/fonchain/fonchain-artistinfo/pkg/db" - "github.com/fonchain/fonchain-artistinfo/pkg/m" - "go.uber.org/zap" -) - -func GetSupplyInfoList(id, num int32) (rep *supplyinfo.GetSupplyInfoListRespond, err error) { - rep = &supplyinfo.GetSupplyInfoListRespond{} - var datas []*supplyinfo.GetSupplyInfoData - - var supplyInfoList []model.SupplyInfo - if err := db.DB.Where("user_id = ? and types <= ?", id, num).Find(&supplyInfoList).Error; err != nil { - zap.L().Error("get supplyInfo infos err", zap.Error(err)) - err = errors.New(m.ERROR_SELECT) - return nil, err - } - - for i, v := range supplyInfoList { - supplyInfoList[i].CreateTime = v.CreatedAt.Format("2006-01-02") - data := &supplyinfo.GetSupplyInfoData{} - data.ID = uint64(supplyInfoList[i].ID) - data.ArtworkId = supplyInfoList[i].ArtworkId - data.ArtistId = supplyInfoList[i].ArtistId - data.UserId = uint64(supplyInfoList[i].UserId) - data.Name = supplyInfoList[i].Name - data.ModelYear = supplyInfoList[i].ModelYear - data.Photo = supplyInfoList[i].Photo - data.ArtistPhoto = supplyInfoList[i].ArtistPhoto - data.Width = uint64(supplyInfoList[i].Width) - data.Height = uint64(supplyInfoList[i].Height) - data.Ruler = uint64(supplyInfoList[i].Ruler) - data.ExhibitInfo = supplyInfoList[i].ExhibitInfo - data.ExhibitPic1 = supplyInfoList[i].ExhibitPic1 - data.ExhibitPic2 = supplyInfoList[i].ExhibitPic2 - data.CreateTime = supplyInfoList[i].CreateTime - data.Introduct = supplyInfoList[i].Introduct - data.NetworkTrace = supplyInfoList[i].NetworkTrace - data.CreateAddress = supplyInfoList[i].CreateAddress - data.Url = supplyInfoList[i].Url - data.Types = supplyInfoList[i].State - data.Remark = supplyInfoList[i].Remark - data.Remark2 = supplyInfoList[i].Remark2 - data.Enable = supplyInfoList[i].Enable - datas = append(datas, data) - } - rep.Data = datas - - return -} - -func GetSupplyInfo(req *supplyinfo.GetSupplyInfoRequest) (rep *supplyinfo.GetSupplyInfoData, err error) { - rep = &supplyinfo.GetSupplyInfoData{} - - var supplyInfoTmp model.SupplyInfo - if err := db.DB.Where("id = ?", req.Id).Find(&supplyInfoTmp).Error; err != nil { - zap.L().Error("get supplyInfo infos err", zap.Error(err)) - err = errors.New(m.ERROR_SELECT) - return nil, err - } - rep.ID = uint64(supplyInfoTmp.ID) - rep.ArtworkId = supplyInfoTmp.ArtworkId - rep.ArtistId = supplyInfoTmp.ArtistId - rep.UserId = uint64(supplyInfoTmp.UserId) - rep.Name = supplyInfoTmp.Name - rep.ModelYear = supplyInfoTmp.ModelYear - rep.Photo = supplyInfoTmp.Photo - rep.ArtistPhoto = supplyInfoTmp.ArtistPhoto - rep.Width = uint64(supplyInfoTmp.Width) - rep.Height = uint64(supplyInfoTmp.Height) - rep.Ruler = uint64(supplyInfoTmp.Ruler) - rep.ExhibitInfo = supplyInfoTmp.ExhibitInfo - rep.ExhibitPic1 = supplyInfoTmp.ExhibitPic1 - rep.ExhibitPic2 = supplyInfoTmp.ExhibitPic2 - rep.CreateTime = supplyInfoTmp.CreateTime - rep.Introduct = supplyInfoTmp.Introduct - rep.NetworkTrace = supplyInfoTmp.NetworkTrace - rep.CreateAddress = supplyInfoTmp.CreateAddress - rep.Url = supplyInfoTmp.Url - rep.Types = supplyInfoTmp.State - rep.Remark = supplyInfoTmp.Remark - rep.Remark2 = supplyInfoTmp.Remark2 - rep.Enable = supplyInfoTmp.Enable - - return -} - -func UpdateSupplyInfo(req *supplyinfo.UpdateSupplyInfoRequest) (rep *supplyinfo.UpdateSupplyInfoRespond, err error) { - var SupplyInfo model.SupplyInfo - if err := db.DB.Where("id = ? ", req.ID).Find(&SupplyInfo).Error; err != nil { - zap.L().Error("get supplyInfo info err", zap.Error(err)) - err = errors.New(m.ERROR_SELECT) - return nil, err - } - - SupplyInfo.CreateTime = req.CreateTime - SupplyInfo.ModelYear = req.ModelYear - SupplyInfo.NetworkTrace = req.NetworkTrace - SupplyInfo.Url = req.Url - SupplyInfo.Introduct = req.Introduct - SupplyInfo.State = req.Types - SupplyInfo.ExhibitInfo = req.ExhibitInfo - SupplyInfo.ExhibitPic1 = req.ExhibitPic1 - SupplyInfo.ExhibitPic2 = req.ExhibitPic2 - - if err = db.DB.Save(&SupplyInfo).Error; err != nil { - zap.L().Error("save supplyInfo info err", zap.Error(err)) - err = errors.New(m.SAVE_ERROR) - return - } - - return -} - -func GetVideoList(id int32) (rep *supplyinfo.GetVideoListRespond, err error) { - rep = &supplyinfo.GetVideoListRespond{} - var datas []*supplyinfo.GetVideoListData - - var ExhVideo []model.ExhVideo - if err := db.DB.Where("user_id = ? and types <=4", id).Find(&ExhVideo).Error; err != nil { - zap.L().Error("get exhVideo infos err", zap.Error(err)) - err = errors.New(m.ERROR_SELECT) - return nil, err - } - - for _, v := range ExhVideo { - var data supplyinfo.GetVideoListData - data.ID = uint64(v.ID) - data.UserId = uint64(v.UserId) - data.Url = v.Url - data.Types = v.State - data.Remark = v.Remark - data.Remark2 = v.Remark2 - data.Enable = v.Enable - - datas = append(datas, &data) - } - - rep.Data = datas - - return -} - -func GetVideo(req *supplyinfo.GetVideoRequest) (rep *supplyinfo.GetVideoListData, err error) { - rep = &supplyinfo.GetVideoListData{} - - var ExhVideo model.ExhVideo - if err := db.DB.Where("id = ?", req.ID).First(&ExhVideo).Error; err != nil { - zap.L().Error("get exhVideo info err", zap.Error(err)) - err = errors.New(m.ERROR_SELECT) - return nil, err - } - - rep.ID = uint64(ExhVideo.ID) - rep.UserId = uint64(ExhVideo.UserId) - rep.Url = ExhVideo.Url - rep.Types = ExhVideo.State - rep.Remark = ExhVideo.Remark - rep.Remark2 = ExhVideo.Remark2 - rep.Enable = ExhVideo.Enable - - return -} - -func UpdateVideo(req *supplyinfo.UpdateVideoRequest) (rep *supplyinfo.UpdateVideoRespond, err error) { - rep = &supplyinfo.UpdateVideoRespond{} - - var ExhVideo model.ExhVideo - if err := db.DB.Where("id = ? ", req.ID).First(&ExhVideo).Error; err != nil { - zap.L().Error("get exhVideo info err", zap.Error(err)) - err = errors.New(m.ERROR_SELECT) - return nil, err - } - - ExhVideo.Url = req.Url - ExhVideo.State = req.Types - - if err := db.DB.Save(&ExhVideo).Error; err != nil { - zap.L().Error("save exhVideo info err", zap.Error(err)) - err = errors.New(m.SAVE_ERROR) - return nil, err - } - - return -} - -func GetExam(req *supplyinfo.GetExamRequest) (rep *supplyinfo.GetExamListData, err error) { - rep = &supplyinfo.GetExamListData{} - - var ExhExam model.ExhExam - if err := db.DB.Where("id = ?", req.ID).First(&ExhExam).Error; err != nil { - zap.L().Error("get exhVideo info err", zap.Error(err)) - err = errors.New(m.ERROR_SELECT) - return nil, err - } - - rep.ID = uint64(ExhExam.ID) - rep.UserId = uint64(ExhExam.UserId) - rep.Title = ExhExam.Title - rep.Class = ExhExam.Class - rep.TitleScore = uint64(ExhExam.TitleScore) - rep.Score = ExhExam.Score - rep.Types = ExhExam.State - rep.Remark = ExhExam.Remark - rep.Remark2 = ExhExam.Remark2 - rep.Enable = ExhExam.Enable - return -} - -func GetExamList(req *supplyinfo.GetExamListRequest) (rep *supplyinfo.GetExamListRespond, err error) { - rep = &supplyinfo.GetExamListRespond{} - var datas []*supplyinfo.GetExamListData - - var ExhExam []model.ExhExam - if err := db.DB.Where("user_id = ? and types <=4", req.ID).Find(&ExhExam).Error; err != nil { - zap.L().Error("get exhVideo infos err", zap.Error(err)) - err = errors.New(m.ERROR_SELECT) - return nil, err - } - - for _, v := range ExhExam { - var data supplyinfo.GetExamListData - - data.ID = uint64(v.ID) - data.UserId = uint64(v.UserId) - data.Title = v.Title - data.Class = v.Class - data.TitleScore = uint64(v.TitleScore) - data.Score = v.Score - data.Types = v.State - data.Remark = v.Remark - data.Remark2 = v.Remark2 - data.Enable = v.Enable - - datas = append(datas, &data) - } - - rep.Data = datas - - return -} - -func UpdateExam(req *supplyinfo.UpdateExamRequest) (rep *supplyinfo.UpdateExamRespond, err error) { - rep = &supplyinfo.UpdateExamRespond{} - - var ExhExam model.ExhExam - if err := db.DB.Where("id = ? ", req.ID).First(&ExhExam).Error; err != nil { - zap.L().Error("get exhVideo info err", zap.Error(err)) - err = errors.New(m.ERROR_SELECT) - return nil, err - } - - ExhExam.Score = req.Score - ExhExam.Class = req.Class - ExhExam.State = req.Types - ExhExam.Title = req.Title - ExhExam.Class = req.Class - ExhExam.TitleScore = uint(req.TitleScore) - ExhExam.Score = req.Score - ExhExam.State = req.Types - ExhExam.Remark = req.Remark - ExhExam.Remark2 = req.Remark2 - - var score map[string]int32 - var titleScore int32 - - json.Unmarshal([]byte(req.Score), &score) - - for _, v := range score { - titleScore = titleScore + v - } - - ExhExam.TitleScore = uint(titleScore) - - if err = db.DB.Save(&ExhExam).Error; err != nil { - zap.L().Error("save supplyInfo info err", zap.Error(err)) - err = errors.New(m.SAVE_ERROR) - return - } - - if req.Types == "2" { - type titleScore struct { - UserId uint - Score int - } - - var tmp []model.ExhExam - if err = db.DB.Where("class = ?", req.Class).Order("title_score desc").Find(&tmp).Error; err != nil { - zap.L().Error("get exhExam infos err", zap.Error(err)) - err = errors.New(m.ERROR_SELECT) - return nil, err - } - - var ranking int - for k, v := range tmp { - if v.UserId == uint(req.UserId) { - ranking = k - } - } - - percent := (ranking + 1) / len(tmp) * 100 - rep.Percent = int32(percent) - return - } - - return -} - -func GetArtistInfoList(id int32) (rep *supplyinfo.GetArtistInfoListRespond, err error) { - rep = &supplyinfo.GetArtistInfoListRespond{} - var datas []*supplyinfo.GetArtistInfoListData - - var artistInfoTmp []model.ArtistInfo - if err = db.DB.Where("user_id = ? and state <=4 ", id).Find(&artistInfoTmp).Error; err != nil { - zap.L().Error("get artistInfo infos err", zap.Error(err)) - err = errors.New(m.ERROR_SELECT) - return nil, err - } - - for k, v := range artistInfoTmp { - artistInfoTmp[k].Model.ID = v.ID - data := &supplyinfo.GetArtistInfoListData{} - - data.ID = uint64(artistInfoTmp[k].ID) - data.UserId = uint64(artistInfoTmp[k].UserId) - data.ArtistId = artistInfoTmp[k].ArtistId - data.BankAccount = artistInfoTmp[k].BankAccount - data.BankName = artistInfoTmp[k].BankName - data.Introduct = artistInfoTmp[k].Introduct - data.CountryArtLevel = artistInfoTmp[k].CountryArtLevel - data.ArtistCertPic = artistInfoTmp[k].ArtistCertPic - data.Remark = artistInfoTmp[k].Remark - data.Remark2 = artistInfoTmp[k].Remark2 - data.State = uint64(artistInfoTmp[k].State) - - datas = append(datas, data) - } - - rep.Data = datas - - return -} - -func GetArtistInfo(req *supplyinfo.GetArtistInfoRequest) (rep *supplyinfo.GetArtistInfoListData, err error) { - rep = &supplyinfo.GetArtistInfoListData{} - - var artistInfoTmp model.ArtistInfo - if err := db.DB.Where("id = ?", req.ID).Find(&artistInfoTmp).Error; err != nil { - zap.L().Error("get artistInfo info err", zap.Error(err)) - err = errors.New(m.ERROR_SELECT) - return nil, err - } - rep.ID = uint64(artistInfoTmp.ID) - rep.UserId = uint64(artistInfoTmp.UserId) - rep.ArtistId = artistInfoTmp.ArtistId - rep.BankAccount = artistInfoTmp.BankAccount - rep.BankName = artistInfoTmp.BankName - rep.Introduct = artistInfoTmp.Introduct - rep.CountryArtLevel = artistInfoTmp.CountryArtLevel - rep.ArtistCertPic = artistInfoTmp.ArtistCertPic - rep.Remark = artistInfoTmp.Remark - rep.Remark2 = artistInfoTmp.Remark2 - rep.State = uint64(artistInfoTmp.State) - - return -} - -func UpdateArtistInfo(req *supplyinfo.UpdateArtistInfoRequest) (rep *supplyinfo.UpdateArtistInfoRespond, err error) { - rep = &supplyinfo.UpdateArtistInfoRespond{} - - var artistInfoTmp model.ArtistInfo - if err := db.DB.Where("id = ? ", req.ID).Find(&artistInfoTmp).Error; err != nil { - zap.L().Error("get artistInfo info err", zap.Error(err)) - err = errors.New(m.ERROR_SELECT) - return nil, err - } - - artistInfoTmp.BankAccount = req.BankAccount - artistInfoTmp.BankName = req.BankName - artistInfoTmp.Introduct = req.Introduct - artistInfoTmp.State = uint(req.State) - artistInfoTmp.CountryArtLevel = req.CountryArtLevel - artistInfoTmp.ArtistCertPic = req.ArtistCertPic - - if err = db.DB.Save(&artistInfoTmp).Error; err != nil { - zap.L().Error("save supplyInfo info err", zap.Error(err)) - err = errors.New(m.SAVE_ERROR) - return - } - - return -} +// +//func GetSupplyInfoList(id, num int32) (rep *supplyinfo.GetSupplyInfoListRespond, err error) { +// rep = &supplyinfo.GetSupplyInfoListRespond{} +// var datas []*supplyinfo.GetSupplyInfoData +// +// var supplyInfoList []model.SupplyInfo +// if err := db.DB.Where("user_id = ? and types <= ?", id, num).Find(&supplyInfoList).Error; err != nil { +// zap.L().Error("get supplyInfo infos err", zap.Error(err)) +// err = errors.New(m.ERROR_SELECT) +// return nil, err +// } +// +// for i, v := range supplyInfoList { +// supplyInfoList[i].CreateTime = v.CreatedAt.Format("2006-01-02") +// data := &supplyinfo.GetSupplyInfoData{} +// data.ID = uint64(supplyInfoList[i].ID) +// data.ArtworkId = supplyInfoList[i].ArtworkId +// data.ArtistId = supplyInfoList[i].ArtistId +// data.UserId = uint64(supplyInfoList[i].UserId) +// data.Name = supplyInfoList[i].Name +// data.ModelYear = supplyInfoList[i].ModelYear +// data.Photo = supplyInfoList[i].Photo +// data.ArtistPhoto = supplyInfoList[i].ArtistPhoto +// data.Width = uint64(supplyInfoList[i].Width) +// data.Height = uint64(supplyInfoList[i].Height) +// data.Ruler = uint64(supplyInfoList[i].Ruler) +// data.ExhibitInfo = supplyInfoList[i].ExhibitInfo +// data.ExhibitPic1 = supplyInfoList[i].ExhibitPic1 +// data.ExhibitPic2 = supplyInfoList[i].ExhibitPic2 +// data.CreateTime = supplyInfoList[i].CreateTime +// data.Introduct = supplyInfoList[i].Introduct +// data.NetworkTrace = supplyInfoList[i].NetworkTrace +// data.CreateAddress = supplyInfoList[i].CreateAddress +// data.Url = supplyInfoList[i].Url +// data.Types = supplyInfoList[i].State +// data.Remark = supplyInfoList[i].Remark +// data.Remark2 = supplyInfoList[i].Remark2 +// data.Enable = supplyInfoList[i].Enable +// datas = append(datas, data) +// } +// rep.Data = datas +// +// return +//} +// +//func GetSupplyInfo(req *supplyinfo.GetSupplyInfoRequest) (rep *supplyinfo.GetSupplyInfoData, err error) { +// rep = &supplyinfo.GetSupplyInfoData{} +// +// var supplyInfoTmp model.SupplyInfo +// if err := db.DB.Where("id = ?", req.Id).Find(&supplyInfoTmp).Error; err != nil { +// zap.L().Error("get supplyInfo infos err", zap.Error(err)) +// err = errors.New(m.ERROR_SELECT) +// return nil, err +// } +// rep.ID = uint64(supplyInfoTmp.ID) +// rep.ArtworkId = supplyInfoTmp.ArtworkId +// rep.ArtistId = supplyInfoTmp.ArtistId +// rep.UserId = uint64(supplyInfoTmp.UserId) +// rep.Name = supplyInfoTmp.Name +// rep.ModelYear = supplyInfoTmp.ModelYear +// rep.Photo = supplyInfoTmp.Photo +// rep.ArtistPhoto = supplyInfoTmp.ArtistPhoto +// rep.Width = uint64(supplyInfoTmp.Width) +// rep.Height = uint64(supplyInfoTmp.Height) +// rep.Ruler = uint64(supplyInfoTmp.Ruler) +// rep.ExhibitInfo = supplyInfoTmp.ExhibitInfo +// rep.ExhibitPic1 = supplyInfoTmp.ExhibitPic1 +// rep.ExhibitPic2 = supplyInfoTmp.ExhibitPic2 +// rep.CreateTime = supplyInfoTmp.CreateTime +// rep.Introduct = supplyInfoTmp.Introduct +// rep.NetworkTrace = supplyInfoTmp.NetworkTrace +// rep.CreateAddress = supplyInfoTmp.CreateAddress +// rep.Url = supplyInfoTmp.Url +// rep.Types = supplyInfoTmp.State +// rep.Remark = supplyInfoTmp.Remark +// rep.Remark2 = supplyInfoTmp.Remark2 +// rep.Enable = supplyInfoTmp.Enable +// +// return +//} +// +//func UpdateSupplyInfo(req *supplyinfo.UpdateSupplyInfoRequest) (rep *supplyinfo.UpdateSupplyInfoRespond, err error) { +// var SupplyInfo model.SupplyInfo +// if err := db.DB.Where("id = ? ", req.ID).Find(&SupplyInfo).Error; err != nil { +// zap.L().Error("get supplyInfo info err", zap.Error(err)) +// err = errors.New(m.ERROR_SELECT) +// return nil, err +// } +// +// SupplyInfo.CreateTime = req.CreateTime +// SupplyInfo.ModelYear = req.ModelYear +// SupplyInfo.NetworkTrace = req.NetworkTrace +// SupplyInfo.Url = req.Url +// SupplyInfo.Introduct = req.Introduct +// SupplyInfo.State = req.Types +// SupplyInfo.ExhibitInfo = req.ExhibitInfo +// SupplyInfo.ExhibitPic1 = req.ExhibitPic1 +// SupplyInfo.ExhibitPic2 = req.ExhibitPic2 +// +// if err = db.DB.Save(&SupplyInfo).Error; err != nil { +// zap.L().Error("save supplyInfo info err", zap.Error(err)) +// err = errors.New(m.SAVE_ERROR) +// return +// } +// +// return +//} +// +//func GetVideoList(id int32) (rep *supplyinfo.GetVideoListRespond, err error) { +// rep = &supplyinfo.GetVideoListRespond{} +// var datas []*supplyinfo.GetVideoListData +// +// var ExhVideo []model.ExhVideo +// if err := db.DB.Where("user_id = ? and types <=4", id).Find(&ExhVideo).Error; err != nil { +// zap.L().Error("get exhVideo infos err", zap.Error(err)) +// err = errors.New(m.ERROR_SELECT) +// return nil, err +// } +// +// for _, v := range ExhVideo { +// var data supplyinfo.GetVideoListData +// data.ID = uint64(v.ID) +// data.UserId = uint64(v.UserId) +// data.Url = v.Url +// data.Types = v.State +// data.Remark = v.Remark +// data.Remark2 = v.Remark2 +// data.Enable = v.Enable +// +// datas = append(datas, &data) +// } +// +// rep.Data = datas +// +// return +//} +// +//func GetVideo(req *supplyinfo.GetVideoRequest) (rep *supplyinfo.GetVideoListData, err error) { +// rep = &supplyinfo.GetVideoListData{} +// +// var ExhVideo model.ExhVideo +// if err := db.DB.Where("id = ?", req.ID).First(&ExhVideo).Error; err != nil { +// zap.L().Error("get exhVideo info err", zap.Error(err)) +// err = errors.New(m.ERROR_SELECT) +// return nil, err +// } +// +// rep.ID = uint64(ExhVideo.ID) +// rep.UserId = uint64(ExhVideo.UserId) +// rep.Url = ExhVideo.Url +// rep.Types = ExhVideo.State +// rep.Remark = ExhVideo.Remark +// rep.Remark2 = ExhVideo.Remark2 +// rep.Enable = ExhVideo.Enable +// +// return +//} +// +//func UpdateVideo(req *supplyinfo.UpdateVideoRequest) (rep *supplyinfo.UpdateVideoRespond, err error) { +// rep = &supplyinfo.UpdateVideoRespond{} +// +// var ExhVideo model.ExhVideo +// if err := db.DB.Where("id = ? ", req.ID).First(&ExhVideo).Error; err != nil { +// zap.L().Error("get exhVideo info err", zap.Error(err)) +// err = errors.New(m.ERROR_SELECT) +// return nil, err +// } +// +// ExhVideo.Url = req.Url +// ExhVideo.State = req.Types +// +// if err := db.DB.Save(&ExhVideo).Error; err != nil { +// zap.L().Error("save exhVideo info err", zap.Error(err)) +// err = errors.New(m.SAVE_ERROR) +// return nil, err +// } +// +// return +//} +// +//func GetExam(req *supplyinfo.GetExamRequest) (rep *supplyinfo.GetExamListData, err error) { +// rep = &supplyinfo.GetExamListData{} +// +// var ExhExam model.ExhExam +// if err := db.DB.Where("id = ?", req.ID).First(&ExhExam).Error; err != nil { +// zap.L().Error("get exhVideo info err", zap.Error(err)) +// err = errors.New(m.ERROR_SELECT) +// return nil, err +// } +// +// rep.ID = uint64(ExhExam.ID) +// rep.UserId = uint64(ExhExam.UserId) +// rep.Title = ExhExam.Title +// rep.Class = ExhExam.Class +// rep.TitleScore = uint64(ExhExam.TitleScore) +// rep.Score = ExhExam.Score +// rep.Types = ExhExam.State +// rep.Remark = ExhExam.Remark +// rep.Remark2 = ExhExam.Remark2 +// rep.Enable = ExhExam.Enable +// return +//} +// +//func GetExamList(req *supplyinfo.GetExamListRequest) (rep *supplyinfo.GetExamListRespond, err error) { +// rep = &supplyinfo.GetExamListRespond{} +// var datas []*supplyinfo.GetExamListData +// +// var ExhExam []model.ExhExam +// if err := db.DB.Where("user_id = ? and types <=4", req.ID).Find(&ExhExam).Error; err != nil { +// zap.L().Error("get exhVideo infos err", zap.Error(err)) +// err = errors.New(m.ERROR_SELECT) +// return nil, err +// } +// +// for _, v := range ExhExam { +// var data supplyinfo.GetExamListData +// +// data.ID = uint64(v.ID) +// data.UserId = uint64(v.UserId) +// data.Title = v.Title +// data.Class = v.Class +// data.TitleScore = uint64(v.TitleScore) +// data.Score = v.Score +// data.Types = v.State +// data.Remark = v.Remark +// data.Remark2 = v.Remark2 +// data.Enable = v.Enable +// +// datas = append(datas, &data) +// } +// +// rep.Data = datas +// +// return +//} +// +//func UpdateExam(req *supplyinfo.UpdateExamRequest) (rep *supplyinfo.UpdateExamRespond, err error) { +// rep = &supplyinfo.UpdateExamRespond{} +// +// var ExhExam model.ExhExam +// if err := db.DB.Where("id = ? ", req.ID).First(&ExhExam).Error; err != nil { +// zap.L().Error("get exhVideo info err", zap.Error(err)) +// err = errors.New(m.ERROR_SELECT) +// return nil, err +// } +// +// ExhExam.Score = req.Score +// ExhExam.Class = req.Class +// ExhExam.State = req.Types +// ExhExam.Title = req.Title +// ExhExam.Class = req.Class +// ExhExam.TitleScore = uint(req.TitleScore) +// ExhExam.Score = req.Score +// ExhExam.State = req.Types +// ExhExam.Remark = req.Remark +// ExhExam.Remark2 = req.Remark2 +// +// var score map[string]int32 +// var titleScore int32 +// +// json.Unmarshal([]byte(req.Score), &score) +// +// for _, v := range score { +// titleScore = titleScore + v +// } +// +// ExhExam.TitleScore = uint(titleScore) +// +// if err = db.DB.Save(&ExhExam).Error; err != nil { +// zap.L().Error("save supplyInfo info err", zap.Error(err)) +// err = errors.New(m.SAVE_ERROR) +// return +// } +// +// if req.Types == "2" { +// type titleScore struct { +// UserId uint +// Score int +// } +// +// var tmp []model.ExhExam +// if err = db.DB.Where("class = ?", req.Class).Order("title_score desc").Find(&tmp).Error; err != nil { +// zap.L().Error("get exhExam infos err", zap.Error(err)) +// err = errors.New(m.ERROR_SELECT) +// return nil, err +// } +// +// var ranking int +// for k, v := range tmp { +// if v.UserId == uint(req.UserId) { +// ranking = k +// } +// } +// +// percent := (ranking + 1) / len(tmp) * 100 +// rep.Percent = int32(percent) +// return +// } +// +// return +//} +// +//func GetArtistInfoList(id int32) (rep *supplyinfo.GetArtistInfoListRespond, err error) { +// rep = &supplyinfo.GetArtistInfoListRespond{} +// var datas []*supplyinfo.GetArtistInfoListData +// +// var artistInfoTmp []old.ArtistInfo +// if err = db.DB.Where("user_id = ? and state <=4 ", id).Find(&artistInfoTmp).Error; err != nil { +// zap.L().Error("get artistInfo infos err", zap.Error(err)) +// err = errors.New(m.ERROR_SELECT) +// return nil, err +// } +// +// for k, v := range artistInfoTmp { +// artistInfoTmp[k].Model.ID = v.ID +// data := &supplyinfo.GetArtistInfoListData{} +// +// data.ID = uint64(artistInfoTmp[k].ID) +// data.UserId = uint64(artistInfoTmp[k].UserId) +// data.ArtistId = artistInfoTmp[k].ArtistId +// data.BankAccount = artistInfoTmp[k].BankAccount +// data.BankName = artistInfoTmp[k].BankName +// data.Introduct = artistInfoTmp[k].Introduct +// data.CountryArtLevel = artistInfoTmp[k].CountryArtLevel +// data.ArtistCertPic = artistInfoTmp[k].ArtistCertPic +// data.Remark = artistInfoTmp[k].Remark +// data.Remark2 = artistInfoTmp[k].Remark2 +// data.State = uint64(artistInfoTmp[k].State) +// +// datas = append(datas, data) +// } +// +// rep.Data = datas +// +// return +//} +// +//func GetArtistInfo(req *supplyinfo.GetArtistInfoRequest) (rep *supplyinfo.GetArtistInfoListData, err error) { +// rep = &supplyinfo.GetArtistInfoListData{} +// +// var artistInfoTmp old.ArtistInfo +// if err := db.DB.Where("id = ?", req.ID).Find(&artistInfoTmp).Error; err != nil { +// zap.L().Error("get artistInfo info err", zap.Error(err)) +// err = errors.New(m.ERROR_SELECT) +// return nil, err +// } +// rep.ID = uint64(artistInfoTmp.ID) +// rep.UserId = uint64(artistInfoTmp.UserId) +// rep.ArtistId = artistInfoTmp.ArtistId +// rep.BankAccount = artistInfoTmp.BankAccount +// rep.BankName = artistInfoTmp.BankName +// rep.Introduct = artistInfoTmp.Introduct +// rep.CountryArtLevel = artistInfoTmp.CountryArtLevel +// rep.ArtistCertPic = artistInfoTmp.ArtistCertPic +// rep.Remark = artistInfoTmp.Remark +// rep.Remark2 = artistInfoTmp.Remark2 +// rep.State = uint64(artistInfoTmp.State) +// +// return +//} +// +//func UpdateArtistInfo(req *supplyinfo.UpdateArtistInfoRequest) (rep *supplyinfo.UpdateArtistInfoRespond, err error) { +// rep = &supplyinfo.UpdateArtistInfoRespond{} +// +// var artistInfoTmp old.ArtistInfo +// if err := db.DB.Where("id = ? ", req.ID).Find(&artistInfoTmp).Error; err != nil { +// zap.L().Error("get artistInfo info err", zap.Error(err)) +// err = errors.New(m.ERROR_SELECT) +// return nil, err +// } +// +// artistInfoTmp.BankAccount = req.BankAccount +// artistInfoTmp.BankName = req.BankName +// artistInfoTmp.Introduct = req.Introduct +// artistInfoTmp.State = uint(req.State) +// artistInfoTmp.CountryArtLevel = req.CountryArtLevel +// artistInfoTmp.ArtistCertPic = req.ArtistCertPic +// +// if err = db.DB.Save(&artistInfoTmp).Error; err != nil { +// zap.L().Error("save supplyInfo info err", zap.Error(err)) +// err = errors.New(m.SAVE_ERROR) +// return +// } +// +// return +//} diff --git a/cmd/internal/logic/supply.go b/cmd/internal/logic/supply.go index e857470..0ef4c2e 100644 --- a/cmd/internal/logic/supply.go +++ b/cmd/internal/logic/supply.go @@ -1,88 +1,84 @@ package logic -import ( - "github.com/fonchain/fonchain-artistinfo/cmd/internal/dao" - "github.com/fonchain/fonchain-artistinfo/pb/supplyinfo" -) - -type ISupply interface { - GetSupplyInfoList(req *supplyinfo.GetSupplyInfoListRequest) (rep *supplyinfo.GetSupplyInfoListRespond, err error) - GetSupplyInfo(req *supplyinfo.GetSupplyInfoRequest) (rep *supplyinfo.GetSupplyInfoData, err error) - UpdateSupplyInfo(req *supplyinfo.UpdateSupplyInfoRequest) (rep *supplyinfo.UpdateSupplyInfoRespond, err error) - GetVideoList(req *supplyinfo.GetVideoListRequest) (rep *supplyinfo.GetVideoListRespond, err error) - GetVideo(req *supplyinfo.GetVideoRequest) (rep *supplyinfo.GetVideoListData, err error) - UpdateVideo(req *supplyinfo.UpdateVideoRequest) (rep *supplyinfo.UpdateVideoRespond, err error) - GetExam(req *supplyinfo.GetExamRequest) (rep *supplyinfo.GetExamListData, err error) - GetExamList(req *supplyinfo.GetExamListRequest) (rep *supplyinfo.GetExamListRespond, err error) - UpdateExam(req *supplyinfo.UpdateExamRequest) (rep *supplyinfo.UpdateExamRespond, err error) - GetArtistInfoList(req *supplyinfo.GetArtistInfoListRequest) (rep *supplyinfo.GetArtistInfoListRespond, err error) - GetArtistInfo(req *supplyinfo.GetArtistInfoRequest) (rep *supplyinfo.GetArtistInfoListData, err error) - UpdateArtistInfo(req *supplyinfo.UpdateArtistInfoRequest) (rep *supplyinfo.UpdateArtistInfoRespond, err error) -} - -func NewSupply() ISupply { - return &Supply{} -} - -type Supply struct { -} - -func (a *Supply) GetSupplyInfoList(req *supplyinfo.GetSupplyInfoListRequest) (rep *supplyinfo.GetSupplyInfoListRespond, err error) { - rep, err = dao.GetSupplyInfoList(int32(req.ArtistId), int32(req.Types)) - return -} - -func (a *Supply) GetSupplyInfo(req *supplyinfo.GetSupplyInfoRequest) (rep *supplyinfo.GetSupplyInfoData, err error) { - rep, err = dao.GetSupplyInfo(req) - return -} - -func (a *Supply) UpdateSupplyInfo(req *supplyinfo.UpdateSupplyInfoRequest) (rep *supplyinfo.UpdateSupplyInfoRespond, err error) { - rep, err = dao.UpdateSupplyInfo(req) - return -} - -func (a *Supply) GetVideoList(req *supplyinfo.GetVideoListRequest) (rep *supplyinfo.GetVideoListRespond, err error) { - rep, err = dao.GetVideoList(int32(req.UserId)) - return -} - -func (a *Supply) GetVideo(req *supplyinfo.GetVideoRequest) (rep *supplyinfo.GetVideoListData, err error) { - rep, err = dao.GetVideo(req) - return -} - -func (a *Supply) UpdateVideo(req *supplyinfo.UpdateVideoRequest) (rep *supplyinfo.UpdateVideoRespond, err error) { - rep, err = dao.UpdateVideo(req) - return -} - -func (a *Supply) GetExam(req *supplyinfo.GetExamRequest) (rep *supplyinfo.GetExamListData, err error) { - rep, err = dao.GetExam(req) - return -} - -func (a *Supply) GetExamList(req *supplyinfo.GetExamListRequest) (rep *supplyinfo.GetExamListRespond, err error) { - rep, err = dao.GetExamList(req) - return -} - -func (a *Supply) UpdateExam(req *supplyinfo.UpdateExamRequest) (rep *supplyinfo.UpdateExamRespond, err error) { - rep, err = dao.UpdateExam(req) - return -} - -func (a *Supply) GetArtistInfoList(req *supplyinfo.GetArtistInfoListRequest) (rep *supplyinfo.GetArtistInfoListRespond, err error) { - rep, err = dao.GetArtistInfoList(int32(req.UserId)) - return -} - -func (a *Supply) GetArtistInfo(req *supplyinfo.GetArtistInfoRequest) (rep *supplyinfo.GetArtistInfoListData, err error) { - rep, err = dao.GetArtistInfo(req) - return -} - -func (a *Supply) UpdateArtistInfo(req *supplyinfo.UpdateArtistInfoRequest) (rep *supplyinfo.UpdateArtistInfoRespond, err error) { - rep, err = dao.UpdateArtistInfo(req) - return -} +// +//type ISupply interface { +// GetSupplyInfoList(req *supplyinfo.GetSupplyInfoListRequest) (rep *supplyinfo.GetSupplyInfoListRespond, err error) +// GetSupplyInfo(req *supplyinfo.GetSupplyInfoRequest) (rep *supplyinfo.GetSupplyInfoData, err error) +// UpdateSupplyInfo(req *supplyinfo.UpdateSupplyInfoRequest) (rep *supplyinfo.UpdateSupplyInfoRespond, err error) +// GetVideoList(req *supplyinfo.GetVideoListRequest) (rep *supplyinfo.GetVideoListRespond, err error) +// GetVideo(req *supplyinfo.GetVideoRequest) (rep *supplyinfo.GetVideoListData, err error) +// UpdateVideo(req *supplyinfo.UpdateVideoRequest) (rep *supplyinfo.UpdateVideoRespond, err error) +// GetExam(req *supplyinfo.GetExamRequest) (rep *supplyinfo.GetExamListData, err error) +// GetExamList(req *supplyinfo.GetExamListRequest) (rep *supplyinfo.GetExamListRespond, err error) +// UpdateExam(req *supplyinfo.UpdateExamRequest) (rep *supplyinfo.UpdateExamRespond, err error) +// GetArtistInfoList(req *supplyinfo.GetArtistInfoListRequest) (rep *supplyinfo.GetArtistInfoListRespond, err error) +// GetArtistInfo(req *supplyinfo.GetArtistInfoRequest) (rep *supplyinfo.GetArtistInfoListData, err error) +// UpdateArtistInfo(req *supplyinfo.UpdateArtistInfoRequest) (rep *supplyinfo.UpdateArtistInfoRespond, err error) +//} +// +//func NewSupply() ISupply { +// return &Supply{} +//} +// +//type Supply struct { +//} +// +//func (a *Supply) GetSupplyInfoList(req *supplyinfo.GetSupplyInfoListRequest) (rep *supplyinfo.GetSupplyInfoListRespond, err error) { +// rep, err = dao.GetSupplyInfoList(int32(req.ArtistId), int32(req.Types)) +// return +//} +// +//func (a *Supply) GetSupplyInfo(req *supplyinfo.GetSupplyInfoRequest) (rep *supplyinfo.GetSupplyInfoData, err error) { +// rep, err = dao.GetSupplyInfo(req) +// return +//} +// +//func (a *Supply) UpdateSupplyInfo(req *supplyinfo.UpdateSupplyInfoRequest) (rep *supplyinfo.UpdateSupplyInfoRespond, err error) { +// rep, err = dao.UpdateSupplyInfo(req) +// return +//} +// +//func (a *Supply) GetVideoList(req *supplyinfo.GetVideoListRequest) (rep *supplyinfo.GetVideoListRespond, err error) { +// rep, err = dao.GetVideoList(int32(req.UserId)) +// return +//} +// +//func (a *Supply) GetVideo(req *supplyinfo.GetVideoRequest) (rep *supplyinfo.GetVideoListData, err error) { +// rep, err = dao.GetVideo(req) +// return +//} +// +//func (a *Supply) UpdateVideo(req *supplyinfo.UpdateVideoRequest) (rep *supplyinfo.UpdateVideoRespond, err error) { +// rep, err = dao.UpdateVideo(req) +// return +//} +// +//func (a *Supply) GetExam(req *supplyinfo.GetExamRequest) (rep *supplyinfo.GetExamListData, err error) { +// rep, err = dao.GetExam(req) +// return +//} +// +//func (a *Supply) GetExamList(req *supplyinfo.GetExamListRequest) (rep *supplyinfo.GetExamListRespond, err error) { +// rep, err = dao.GetExamList(req) +// return +//} +// +//func (a *Supply) UpdateExam(req *supplyinfo.UpdateExamRequest) (rep *supplyinfo.UpdateExamRespond, err error) { +// rep, err = dao.UpdateExam(req) +// return +//} +// +//func (a *Supply) GetArtistInfoList(req *supplyinfo.GetArtistInfoListRequest) (rep *supplyinfo.GetArtistInfoListRespond, err error) { +// rep, err = dao.GetArtistInfoList(int32(req.UserId)) +// return +//} +// +//func (a *Supply) GetArtistInfo(req *supplyinfo.GetArtistInfoRequest) (rep *supplyinfo.GetArtistInfoListData, err error) { +// rep, err = dao.GetArtistInfo(req) +// return +//} +// +//func (a *Supply) UpdateArtistInfo(req *supplyinfo.UpdateArtistInfoRequest) (rep *supplyinfo.UpdateArtistInfoRespond, err error) { +// rep, err = dao.UpdateArtistInfo(req) +// return +//} diff --git a/cmd/internal/old/dao/artwork.go b/cmd/internal/old/dao/artwork.go index b90bc96..6835acc 100644 --- a/cmd/internal/old/dao/artwork.go +++ b/cmd/internal/old/dao/artwork.go @@ -4,6 +4,7 @@ import ( "encoding/json" "errors" "fmt" + "github.com/fonchain/fonchain-artistinfo/cmd/model/old" "github.com/fonchain/fonchain-artistinfo/pb/old/artwork" "github.com/fonchain/fonchain-artistinfo/cmd/model" @@ -19,7 +20,7 @@ func ArtworkAdd(res *artwork.ArtworkAddRequest) (req *artwork.ArtworkAddRespond, err = errors.New(m.ERROR_MARSHAL) return } - artwork := &model.Artwork{ + artwork := &old.Artwork{ ArtistId: res.ArtistId, Name: res.Name, ModelYear: res.ModelYear, @@ -46,7 +47,7 @@ func ArtworkAdd(res *artwork.ArtworkAddRequest) (req *artwork.ArtworkAddRespond, } func UpdateArtwork(data *artwork.UpdateArtworkRequest) (err error) { - var artwork model.Artwork + var artwork old.Artwork artwork.ID = int32(data.ID) if err = db.DB.First(&artwork).Error; err != nil { zap.L().Error("get artwork info err", zap.Error(err)) @@ -86,7 +87,7 @@ func UpdateArtwork(data *artwork.UpdateArtworkRequest) (err error) { } func DelArtwork(id int32) (err error) { - if err = db.DB.Where("id = ?", id).Delete(&model.Artwork{}).Error; err != nil { + if err = db.DB.Where("id = ?", id).Delete(&old.Artwork{}).Error; err != nil { zap.L().Error("delete artwork info err", zap.Error(err)) err = errors.New(m.ERROR_DELETE) return @@ -96,7 +97,7 @@ func DelArtwork(id int32) (err error) { } func ApproveArtwork(req *artwork.ApproveArtworkRequest) (rep *artwork.ApproveArtworkRespond, err error) { - var artwork model.Artwork + var artwork old.Artwork artwork.ID = req.ArtworkId var state int32 if req.IsApprove { @@ -104,7 +105,7 @@ func ApproveArtwork(req *artwork.ApproveArtworkRequest) (rep *artwork.ApproveArt } else { state = 4 } - if err = db.DB.Model(&artwork).Updates(model.Artwork{State: state, Remark: req.Remark, Remark2: req.Remark2, ArtworkId: req.MgmtArtworkId}).Where("id", req.ArtworkId).Error; err != nil { + if err = db.DB.Model(&artwork).Updates(old.Artwork{State: state, Remark: req.Remark, Remark2: req.Remark2, ArtworkId: req.MgmtArtworkId}).Where("id", req.ArtworkId).Error; err != nil { zap.L().Error("get artwork info err", zap.Error(err)) err = errors.New(m.ERROR_SELECT) return @@ -115,7 +116,7 @@ func GetArtworkList(req *artwork.GetArtworkListRequest) (rep *artwork.GetArtwork rep = &artwork.GetArtworkListRespond{} var datas []*artwork.UpdateArtworkRequest fmt.Println("111") - var artworkList []model.Artwork + var artworkList []old.Artwork //找到用户 p[] if err = db.DB.Order("created_at desc").Where("artist_id = ?", req.ID).Find(&artworkList).Error; err != nil { fmt.Println("222") @@ -154,7 +155,7 @@ func GetArtworkList(req *artwork.GetArtworkListRequest) (rep *artwork.GetArtwork func GetArtwork(id int32) (rep *artwork.GetArtworkRespond, err error) { rep = &artwork.GetArtworkRespond{} - var artworkRes model.Artwork + var artworkRes old.Artwork if err = db.DB.Where("id = ?", id).First(&artworkRes).Error; err != nil { zap.L().Error("get artwork info err", zap.Error(err)) err = errors.New(m.ERROR_SELECT) @@ -187,7 +188,7 @@ func GetArtwork(id int32) (rep *artwork.GetArtworkRespond, err error) { } func UploadArtwork(Id uint64) (err error) { - var artwork model.Artwork + var artwork old.Artwork if err = db.DB.Find(&artwork, "id = ?", Id).Error; err != nil { zap.L().Error("get artwork info err", zap.Error(err)) err = errors.New(m.ERROR_SELECT) @@ -238,7 +239,7 @@ func GetMgmtArtworkList(req *artwork.GetMgmtArtworkListRequest) (rep *artwork.Ge return } rep.Count = uint64(artworkCount) - var artworkList []model.Artwork + var artworkList []old.Artwork //找到用户 sqlWhere = sqlWhere + " limit ?,? " args = append(args, (req.Page-1)*req.PageSize) diff --git a/cmd/model/artworkEx.go b/cmd/model/artworkEx.go new file mode 100644 index 0000000..ca40768 --- /dev/null +++ b/cmd/model/artworkEx.go @@ -0,0 +1,71 @@ +// Package model ----------------------------- +// @file : artworkEx.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2023/2/28 8:58 +// ------------------------------------------- +package model + +import "fmt" + +// 画展补充信息审批表 +//type ArtExhibitionAudit struct { +// Model +// //ArtworkUid string `json:"artworkUid" gorm:"column:artwork_uid;comment:画作uid"` +// //ArtistUid string `json:"artistUid" gorm:"column:artist_uid;comment:画家uid"` +// //UserId int64 `json:"userId" gorm:"column:user_id;comment:画家宝用户id"` +// LockTime string `json:"lockTime" gorm:"column:lock_time;comment:锁定时间"` +// AuditType auditType `json:"auditType" gorm:"column:audit_type;comment:审批类型"` +// AuditModel +//} +// +//func (a ArtExhibitionAudit) TableName() string { +// return "art_exhibition_audit" +//} + +//// 画作信息补充审批 +//type AuditArtworkExt struct { +// AuditInfo ArtExhibitionAudit `json:"AuditInfo" gorm:"polymorphic:Owner;polymorphicValue:AuditType_ArtworkExt"` +//} +// +//// 画家视频资料补充审批 +//type AuditArtistVideo struct { +// ArtworkId +// AuditInfo ArtExhibitionAudit `json:"AuditInfo" gorm:"polymorphic:Owner;polymorphicValue:AuditType_ArtistVideo"` +//} +// +//// 画家信息补充审批 +//type AuditArtistExt struct { +// AuditInfo ArtExhibitionAudit `json:"AuditInfo" gorm:"polymorphic:Owner;polymorphicValue:AuditType_ArtistExt"` +//} +// +//// 画家指数补充审批 +//type AuditArtistIndex struct { +// AuditInfo ArtExhibitionAudit `json:"AuditInfo" gorm:"polymorphic:Owner;polymorphicValue:AuditType_ArtistIndex"` +//} + +// ====================================== +// auditType 审批类型 +type auditType int + +const ( + AuditType_ArtworkExt auditType = iota + 1 + AuditType_ArtistVideo + AuditType_ArtistIndex + AuditType_ArtistExt +) + +var auditTypeMapper = map[auditType]string{ + AuditType_ArtworkExt: "画作信息补充审批", + AuditType_ArtistVideo: "画家视频资料补充审批", + AuditType_ArtistIndex: "画家指数补充审批", + AuditType_ArtistExt: "画家信息补充审批", +} + +func (a auditType) String() string { + if str, ok := auditTypeMapper[a]; ok { + return str + } else { + return fmt.Sprintf("未知的审批类型:%d", int(a)) + } +} diff --git a/cmd/model/artworkLockRecord.go b/cmd/model/artworkLockRecord.go deleted file mode 100644 index ec23c90..0000000 --- a/cmd/model/artworkLockRecord.go +++ /dev/null @@ -1,17 +0,0 @@ -package model - -type ArtworkLockRecord struct { - Model - ArtistUid string `json:"artistUid" gorm:"column:artist_uid;type:varchar(191);comment:画家uid"` - ArtworkUid string `json:"artworkUid" gorm:"column:artwork_uid;type:varchar(191);comment:画作uid"` - Status int64 `json:"status" gorm:"column:status;default:1;comment:1=准备/暂存 2=锁定 3=解锁"` - LockTime string `json:"lockTime" gorm:"column:lock_time;锁定时间"` - AuditStatus int64 `json:"auditStatus" gorm:"column:audit_status;default:1;comment:审核状态 1:待审核/暂存 2:审核通过 3:审核不通过"` - AuditMark string `json:"auditMark" gorm:"column:audit_mark;comment:审核备注"` - AuditMark2 string `json:"auditMark2" gorm:"column:audit_mark2;comment:审核备注2"` - //UserInfo User `gorm:"foreignKey:ArtistUid;reference:MgmtArtistUid"` -} - -func (a ArtworkLockRecord) TableName() string { - return "artwork_lock_record" -} diff --git a/cmd/model/exhexam.go b/cmd/model/artwork_ex_exam.go similarity index 81% rename from cmd/model/exhexam.go rename to cmd/model/artwork_ex_exam.go index 264c4ae..f6afada 100644 --- a/cmd/model/exhexam.go +++ b/cmd/model/artwork_ex_exam.go @@ -1,9 +1,10 @@ package model // 画家指数 -type ExhExam struct { +type ArtworkExExam struct { Model UserId uint `gorm:"column:user_id;default:0;comment:账号id" json:"userId"` + ArtistUid string `json:"artistUid" gorm:"column:artist_uid;comment:"` Title string `gorm:"column:title;type:varchar(64);default:''" json:"title"` Class string `gorm:"column:class;type:varchar(25);default:''" json:"class"` TitleScore uint `gorm:"column:title_score;default:0" json:"titleScore"` @@ -14,6 +15,6 @@ type ExhExam struct { Enable bool `gorm:"column:enable;default:0" json:"enable"` } -func (e ExhExam) TableName() string { - return "exh_exam" +func (e ArtworkExExam) TableName() string { + return "artwork_ex_exam" } diff --git a/cmd/model/exhvideo.go b/cmd/model/artwork_ex_video.go similarity index 100% rename from cmd/model/exhvideo.go rename to cmd/model/artwork_ex_video.go diff --git a/cmd/model/artwork_main_lockRecord.go b/cmd/model/artwork_main_lockRecord.go new file mode 100644 index 0000000..6372c1e --- /dev/null +++ b/cmd/model/artwork_main_lockRecord.go @@ -0,0 +1,19 @@ +package model + +// 此表作为画家宝中的画作中间表的主表(画作主要数据保存在画作微服务中),请悉知 +type ArtworkLockRecord struct { + Model + ArtistUid string `json:"artistUid" gorm:"column:artist_uid;type:varchar(191);comment:画家uid"` + ArtworkUid string `json:"artworkUid" gorm:"column:artwork_uid;type:varchar(191);comment:画作uid"` + Status int64 `json:"status" gorm:"column:status;default:1;comment:1=准备/暂存 2=锁定 3=解锁"` + LockTime string `json:"lockTime" gorm:"column:lock_time;comment:锁定时间"` + //画作补充信息审批记录 + AuditStatus int64 `json:"auditStatus" gorm:"column:audit_status;default:1;comment:画作补充信息审核状态 1:待审核/暂存 2:审核通过 3:审核不通过"` + AuditMark string `json:"auditMark" gorm:"column:audit_mark;comment:审核备注"` + AuditMark2 string `json:"auditMark2" gorm:"column:audit_mark2;comment:审核备注2"` + //UserInfo User `gorm:"foreignKey:ArtistUid;reference:MgmtArtistUid"` +} + +func (a ArtworkLockRecord) TableName() string { + return "artwork_lock_record" +} diff --git a/cmd/model/model.go b/cmd/model/model.go index 4451c00..b27358f 100644 --- a/cmd/model/model.go +++ b/cmd/model/model.go @@ -11,3 +11,9 @@ type Model struct { UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at;type:bigint" json:"deletedAt"` } + +type AuditModel struct { + AuditStatus int64 `json:"auditStatus" gorm:"column:audit_status;default:1;comment:审核状态 1:待审核/暂存 2:审核通过 3:审核不通过"` + AuditMark string `json:"auditMark" gorm:"column:audit_mark;comment:审核备注"` + AuditMark2 string `json:"auditMark2" gorm:"column:audit_mark2;comment:审核备注2"` +} \ No newline at end of file diff --git a/cmd/model/artistinfo.go b/cmd/model/old/artistinfo.go similarity index 91% rename from cmd/model/artistinfo.go rename to cmd/model/old/artistinfo.go index c3e49e0..27e1f3c 100644 --- a/cmd/model/artistinfo.go +++ b/cmd/model/old/artistinfo.go @@ -1,8 +1,10 @@ -package model +package old + +import "github.com/fonchain/fonchain-artistinfo/cmd/model" // User 用户模型 type ArtistInfo struct { - Model + model.Model UserId uint `gorm:"not null default:0" json:"userId"` ArtistId string `gorm:"type:varchar(256) default ''" json:"artistId"` BankAccount string `gorm:"type:varchar(25) not null" json:"bankAccount"` diff --git a/cmd/model/artwork.go b/cmd/model/old/artwork.go similarity index 98% rename from cmd/model/artwork.go rename to cmd/model/old/artwork.go index 10534d8..318af6c 100644 --- a/cmd/model/artwork.go +++ b/cmd/model/old/artwork.go @@ -1,8 +1,10 @@ -package model +package old + +import "github.com/fonchain/fonchain-artistinfo/cmd/model" // User 用户模型 type Artwork struct { - Model + model.Model ID int32 `gorm:"not null" json:"id"` ArtistId uint64 `gorm:"not null" json:"artistId"` Name string `gorm:"type:varchar(256) not null" json:"name"` diff --git a/cmd/model/artworkbatch.go b/cmd/model/old/artworkbatch.go similarity index 61% rename from cmd/model/artworkbatch.go rename to cmd/model/old/artworkbatch.go index b617ddc..c2a4133 100644 --- a/cmd/model/artworkbatch.go +++ b/cmd/model/old/artworkbatch.go @@ -1,8 +1,10 @@ -package model +package old -//User 用户模型 +import "github.com/fonchain/fonchain-artistinfo/cmd/model" + +// User 用户模型 type ArtworkBatch struct { - Model + model.Model ID int32 `gorm:"not null"` BatchId int32 `gorm:"not null"` ArtistId int32 `gorm:"not null"` diff --git a/cmd/model/artworkstate.go b/cmd/model/old/artworkstate.go similarity index 72% rename from cmd/model/artworkstate.go rename to cmd/model/old/artworkstate.go index 9a37473..967f83d 100644 --- a/cmd/model/artworkstate.go +++ b/cmd/model/old/artworkstate.go @@ -1,8 +1,10 @@ -package model +package old + +import "github.com/fonchain/fonchain-artistinfo/cmd/model" // 考核 用户模型 type ArtworkState struct { - Model + model.Model ID int32 `gorm:"not null"` ArtworkId int32 `gorm:"default:0"` State int32 `gorm:"default:0"` diff --git a/cmd/model/bank.go b/cmd/model/old/bank.go similarity index 75% rename from cmd/model/bank.go rename to cmd/model/old/bank.go index c60329e..bf83b42 100644 --- a/cmd/model/bank.go +++ b/cmd/model/old/bank.go @@ -1,8 +1,10 @@ -package model +package old + +import "github.com/fonchain/fonchain-artistinfo/cmd/model" // User 用户模型 type Bank struct { - Model + model.Model ID int32 `gorm:"not null"` UserId int32 `gorm:" not null"` BankAccount string `gorm:"type:varchar(25) not null"` diff --git a/cmd/model/contract.go b/cmd/model/old/contract.go similarity index 98% rename from cmd/model/contract.go rename to cmd/model/old/contract.go index 67b9a09..6f3b37f 100644 --- a/cmd/model/contract.go +++ b/cmd/model/old/contract.go @@ -1,8 +1,10 @@ -package model +package old + +import "github.com/fonchain/fonchain-artistinfo/cmd/model" // Contract 用户模型 type Contract struct { - Model + model.Model ID int32 `gorm:"not null"` UserId int32 `gorm:"not null"` CardId string `gorm:"type:varchar(256) default ''"` diff --git a/cmd/model/temp_artwork_ext_data.go b/cmd/model/temp_artwork_ext_data.go new file mode 100644 index 0000000..b398b50 --- /dev/null +++ b/cmd/model/temp_artwork_ext_data.go @@ -0,0 +1,55 @@ +// Package model ----------------------------- +// @file : temp_artwork_ext_data.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2023/2/28 11:51 +// ------------------------------------------- +package model + +import ( + "gorm.io/plugin/soft_delete" + "time" +) + +type ArtworkExtData struct { + Id int32 `gorm:"column:id;primaryKey;autoIncrement:true" json:"Id"` //type:int32 comment: + ArtworkId int32 `gorm:"column:artwork_id" json:"ArtworkId"` //type:int32 + ArtworkUuid string `gorm:"column:artwork_uuid" json:"ArtworkUuid"` //type:string comment:画作的uuid + ArtType int32 `gorm:"column:art_type" json:"ArtType"` //type:string comment:艺术类别 + ArtTitle int32 `gorm:"column:art_title" json:"ArtTitle"` //type:string comment:艺术主题 + ArtStyle int32 `gorm:"column:art_style" json:"ArtStyle"` //type:string comment:风格 + Color int32 `gorm:"column:color" json:"Color"` //type:string comment:颜色 + PenTechniques string `gorm:"column:pen_techniques" json:"PenTechniques"` //type:string comment:笔墨技法 + ArtIdea string `gorm:"column:art_idea" json:"ArtIdea"` //type:string comment:绘画思想 + ExpressIdea string `gorm:"column:express_idea" json:"ExpressIdea"` //type:string comment:表达思想 + ArtStory string `gorm:"column:art_story" json:"ArtStory"` //type:string comment:创作背景故事 + FirstPublish string `gorm:"column:first_publish" json:"FirstPublish"` //type:string comment:首次发表 + FirstPublishImg string `gorm:"column:first_publish_img" json:"FirstPublishImg"` //type:string comment:首次发表截图 + FirstName string `gorm:"column:first_name" json:"FirstName"` //type:string comment:首次命名 + FirstNameImg string `gorm:"column:first_name_img" json:"FirstNameImg"` //type:string comment:首次命名截图 + CopyrightHash string `gorm:"column:copyright_hash" json:"CopyrightHash"` //type:string comment:版权哈希 + RealrightHash string `gorm:"column:realright_hash" json:"RealrightHash"` //type:string comment:物权哈希 + SprayPosition string `gorm:"column:spray_position" json:"SprayPosition"` //type:string comment:喷涂位置 + SprayRemark string `gorm:"column:spray_remark" json:"SprayRemark"` //type:string comment:喷涂备注 + AuthDataHash string `gorm:"column:auth_data_hash" json:"AuthData"` //type:string comment:鉴证数据 + DigiShootDate string `gorm:"column:digi_shoot_date" json:"DigiShootDate"` //type:string comment:数字化拍摄时间 + DigiMakeDate string `gorm:"column:digi_make_date" json:"DigiMakeDate"` //type:string comment:数字化后期制作时间 + DigiArtImg string `gorm:"column:digi_art_img" json:"DigiArtImg"` //type:string comment:数字化画作图 + DigiArtCopyrightImg string `gorm:"column:digi_art_copyright_img" json:"DigiArtCopyrightImg"` //type:string comment:数字化画作版权图 + DigiCopyrightInfo string `gorm:"column:digi_copyright_info" json:"DigiCopyrightInfo"` //type:string comment:数字化画作版权信息 + DigiCopyrightFile string `gorm:"column:digi_copyright_file" json:"DigiCopyrightFile"` //type:string comment:数字化画作版权文件 + Tags string `gorm:"column:tags" json:"Tags"` //type:string comment:选择标签 + ThirdComment string `gorm:"column:third_comment" json:"ThirdComment"` //type:string comment:第三方评价 + AuthTime string `gorm:"column:auth_time;comment:鉴证时间" json:"auth_time"` + AuthImg string `gorm:"column:auth_img" json:"AuthImg"` //type:string comment:鉴证图 + Status int32 `gorm:"column:status;type:tinyint(4);default:1;comment:状态 正常 2 删除;NOT NULL" json:"status"` + CreatedAt time.Time `gorm:"column:created_at" json:"CreatedAt"` //type:int32 comment: + UpdatedAt time.Time `gorm:"column:updated_at" json:"UpdatedAt"` //type:int32 comment: + DeletedAt soft_delete.DeletedAt //type:int32 comment: +} + +// TableName 表名:artwork_ext_data,画作补充数据。 +// 说明: +func (ArtworkExtData) TableName() string { + return "artwork_ext_data" +} diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.go index fd037df..b65332a 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.go @@ -247,8 +247,9 @@ type GetArtworkLockRecordsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ArtistUid string `protobuf:"bytes,1,opt,name=artistUid,proto3" json:"artistUid,omitempty"` //画家uid - QueryType ArtworkQueryMode `protobuf:"varint,2,opt,name=queryType,proto3,enum=artistinfo.ArtworkQueryMode" json:"queryType,omitempty"` //查询模式 + ArtistUid string `protobuf:"bytes,1,opt,name=artistUid,proto3" json:"artistUid,omitempty"` //画家uid + QueryType ArtworkQueryMode `protobuf:"varint,2,opt,name=queryType,proto3,enum=artistinfo.ArtworkQueryMode" json:"queryType,omitempty"` //查询模式 + AuditStatus int64 `protobuf:"varint,3,opt,name=AuditStatus,proto3" json:"AuditStatus,omitempty"` //审批状态 可选 } func (x *GetArtworkLockRecordsRequest) Reset() { @@ -297,6 +298,13 @@ func (x *GetArtworkLockRecordsRequest) GetQueryType() ArtworkQueryMode { return ArtworkQueryMode_NowPreSaveArtwork } +func (x *GetArtworkLockRecordsRequest) GetAuditStatus() int64 { + if x != nil { + return x.AuditStatus + } + return 0 +} + type ArtistLockInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1025,7 +1033,7 @@ var file_pb_artistinfoArtwork_proto_rawDesc = []byte{ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x84, 0x01, 0x0a, 0x1c, 0x47, 0x65, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xa6, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, @@ -1034,158 +1042,160 @@ var file_pb_artistinfoArtwork_proto_rawDesc = []byte{ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x22, 0xbc, 0x02, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, - 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, - 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, - 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, - 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, - 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, - 0x41, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x32, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, - 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, - 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x55, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, - 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x22, - 0x96, 0x04, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, - 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, - 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x0a, - 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, - 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, - 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x5c, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x09, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, - 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x61, 0x74, - 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x64, 0x61, 0x74, - 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, - 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, - 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, - 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x2a, 0x67, 0x0a, 0x10, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, - 0x11, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x65, - 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x65, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, - 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x10, 0x03, 0x32, 0xe3, 0x05, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x66, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, - 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, - 0x12, 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, - 0x12, 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, - 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, - 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0xbc, 0x02, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, + 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, + 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, + 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, + 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x22, 0x41, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x32, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x18, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, + 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, + 0x64, 0x22, 0x96, 0x04, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, + 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x26, + 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x64, 0x50, 0x69, + 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x12, 0x1e, + 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x5c, 0x0a, 0x1d, 0x47, 0x65, + 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x64, + 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x64, + 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, + 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, + 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x2a, 0x67, 0x0a, 0x10, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x6f, 0x77, 0x4c, 0x6f, 0x63, + 0x6b, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x65, 0x10, 0x02, 0x12, 0x14, + 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x10, 0x03, 0x32, 0xe3, 0x05, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x66, 0x0a, 0x17, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x22, 0x00, 0x12, 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x18, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, + 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go index a523cc5..1a31463 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go @@ -379,6 +379,8 @@ func (m *GetArtworkLockRecordsRequest) validate(all bool) error { // no validation rules for QueryType + // no validation rules for AuditStatus + if len(errors) > 0 { return GetArtworkLockRecordsRequestMultiError(errors) } diff --git a/pb/artistinfoArtwork.proto b/pb/artistinfoArtwork.proto index 6a15350..0c3b7e9 100644 --- a/pb/artistinfoArtwork.proto +++ b/pb/artistinfoArtwork.proto @@ -38,6 +38,7 @@ enum ArtworkQueryMode { message GetArtworkLockRecordsRequest{ string artistUid =1 [(validate.rules).message.required = true];//画家uid ArtworkQueryMode queryType =2 ; //查询模式 + int64 AuditStatus =3; //审批状态 可选 } message ArtistLockInfo{ diff --git a/pkg/db/init.go b/pkg/db/init.go index 0172f89..64fa1f1 100644 --- a/pkg/db/init.go +++ b/pkg/db/init.go @@ -2,6 +2,7 @@ package model import ( "fmt" + "github.com/fonchain/fonchain-artistinfo/cmd/model/old" "os" "strings" "time" @@ -94,19 +95,19 @@ func Database(conn string) { func migration() { //自迁移模式 err := DB.AutoMigrate( - &model.Bank{}, + &old.Bank{}, &model.RealName{}, &model.User{}, &model.Invite{}, - &model.Artwork{}, + &old.Artwork{}, //&model.Contract{}, //&model.SupplyInfo{}, //&model.ExhVideo{}, //&model.ExhExam{}, - &model.ArtistInfo{}, + &old.ArtistInfo{}, &model.UserInvited{}, - &model.ArtworkState{}, - &model.ArtworkBatch{}, + &old.ArtworkState{}, + &old.ArtworkBatch{}, &model.TempArtistInfo{}, &model.ArtworkLockRecord{}, ) From b88c957a78fcc483ecd0d51fbcd15014f1a99275 Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Wed, 1 Mar 2023 08:34:45 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=BB=E4=BD=9C?= =?UTF-8?q?=E5=8F=AF=E7=BC=96=E8=BE=91=E7=8A=B6=E6=80=81=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_artwork.go | 5 + cmd/internal/logic/artistinfo_artwork.go | 14 + pb/artistInfoArtwork/artistinfoArtwork.pb.go | 649 +++++++++++------- .../artistinfoArtwork.pb.validate.go | 209 ++++++ .../artistinfoArtwork_triple.pb.go | 45 ++ pb/artistinfoArtwork.proto | 11 +- 6 files changed, 674 insertions(+), 259 deletions(-) diff --git a/cmd/internal/controller/artistInfo_artwork.go b/cmd/internal/controller/artistInfo_artwork.go index 9351357..477407a 100644 --- a/cmd/internal/controller/artistInfo_artwork.go +++ b/cmd/internal/controller/artistInfo_artwork.go @@ -20,6 +20,11 @@ type ArtistInfoArtworkProvider struct { artistInfoLogic logic.ArtistInfoArtworkLogic } +// 检查画作是否可编辑 +func (a ArtistInfoArtworkProvider) CheckArtworkEditable(ctx context.Context, request *artistInfoArtwork.ArtworkUidRequest) (*artistInfoArtwork.CheckArtworkEditableResponse, error) { + return a.artistInfoLogic.CheckArtworkEditable(request) +} + func (a ArtistInfoArtworkProvider) UpdateArtworkAuditStatus(ctx context.Context, request *artistInfoArtwork.UpdateArtworkAuditStatusRequest) (*artistInfoArtwork.ArtworkCommonNoParams, error) { return a.artistInfoLogic.UpdateArtworkAuditStatus(request) } diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index ad1ec3f..923bca3 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -156,3 +156,17 @@ func (a ArtistInfoArtworkLogic) UpdateArtworkAuditStatus(request *artistInfoArtw err = dao.UpdateAuditStatus(request.ArtworkUid, request.AuditStatus, request.AuditMark, request.AuditMark2) return } +func (a ArtistInfoArtworkLogic) CheckArtworkEditable(request *artistInfoArtwork.ArtworkUidRequest) (res *artistInfoArtwork.CheckArtworkEditableResponse, err error) { + res = &artistInfoArtwork.CheckArtworkEditableResponse{ + Editable: false, + } + lockDetail, err := dao.GetArtworkLockDetail(request.ArtworkUid) + if err != nil { + return nil, err + } + //如果画作为锁定状态 并且有锁定时间 并且状态不是已通过 + if lockDetail.Status == 1 && lockDetail.LockTime != "" && lockDetail.AuditStatus != 2 { + res.Editable = true + } + return +} diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.go index b65332a..bd495da 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.go @@ -116,6 +116,53 @@ func (*ArtworkCommonNoParams) Descriptor() ([]byte, []int) { return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{0} } +type ArtworkUidRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtworkUid string `protobuf:"bytes,1,opt,name=ArtworkUid,proto3" json:"ArtworkUid,omitempty"` +} + +func (x *ArtworkUidRequest) Reset() { + *x = ArtworkUidRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtwork_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtworkUidRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtworkUidRequest) ProtoMessage() {} + +func (x *ArtworkUidRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtwork_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArtworkUidRequest.ProtoReflect.Descriptor instead. +func (*ArtworkUidRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{1} +} + +func (x *ArtworkUidRequest) GetArtworkUid() string { + if x != nil { + return x.ArtworkUid + } + return "" +} + type CreateArtworkLockRecordReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -130,7 +177,7 @@ type CreateArtworkLockRecordReq struct { func (x *CreateArtworkLockRecordReq) Reset() { *x = CreateArtworkLockRecordReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[1] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -143,7 +190,7 @@ func (x *CreateArtworkLockRecordReq) String() string { func (*CreateArtworkLockRecordReq) ProtoMessage() {} func (x *CreateArtworkLockRecordReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[1] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -156,7 +203,7 @@ func (x *CreateArtworkLockRecordReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateArtworkLockRecordReq.ProtoReflect.Descriptor instead. func (*CreateArtworkLockRecordReq) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{1} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{2} } func (x *CreateArtworkLockRecordReq) GetArtistUid() string { @@ -199,7 +246,7 @@ type ArtworkLockActionRequest struct { func (x *ArtworkLockActionRequest) Reset() { *x = ArtworkLockActionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[2] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -212,7 +259,7 @@ func (x *ArtworkLockActionRequest) String() string { func (*ArtworkLockActionRequest) ProtoMessage() {} func (x *ArtworkLockActionRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[2] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -225,7 +272,7 @@ func (x *ArtworkLockActionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkLockActionRequest.ProtoReflect.Descriptor instead. func (*ArtworkLockActionRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{2} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{3} } func (x *ArtworkLockActionRequest) GetArtistUid() string { @@ -255,7 +302,7 @@ type GetArtworkLockRecordsRequest struct { func (x *GetArtworkLockRecordsRequest) Reset() { *x = GetArtworkLockRecordsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[3] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -268,7 +315,7 @@ func (x *GetArtworkLockRecordsRequest) String() string { func (*GetArtworkLockRecordsRequest) ProtoMessage() {} func (x *GetArtworkLockRecordsRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[3] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -281,7 +328,7 @@ func (x *GetArtworkLockRecordsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtworkLockRecordsRequest.ProtoReflect.Descriptor instead. func (*GetArtworkLockRecordsRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{3} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{4} } func (x *GetArtworkLockRecordsRequest) GetArtistUid() string { @@ -325,7 +372,7 @@ type ArtistLockInfo struct { func (x *ArtistLockInfo) Reset() { *x = ArtistLockInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[4] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -338,7 +385,7 @@ func (x *ArtistLockInfo) String() string { func (*ArtistLockInfo) ProtoMessage() {} func (x *ArtistLockInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[4] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -351,7 +398,7 @@ func (x *ArtistLockInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistLockInfo.ProtoReflect.Descriptor instead. func (*ArtistLockInfo) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{4} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{5} } func (x *ArtistLockInfo) GetArtistUid() string { @@ -435,7 +482,7 @@ type ArtworkLockList struct { func (x *ArtworkLockList) Reset() { *x = ArtworkLockList{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[5] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -448,7 +495,7 @@ func (x *ArtworkLockList) String() string { func (*ArtworkLockList) ProtoMessage() {} func (x *ArtworkLockList) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[5] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -461,7 +508,7 @@ func (x *ArtworkLockList) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkLockList.ProtoReflect.Descriptor instead. func (*ArtworkLockList) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{5} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{6} } func (x *ArtworkLockList) GetData() []*ArtistLockInfo { @@ -482,7 +529,7 @@ type ArtworkUidList struct { func (x *ArtworkUidList) Reset() { *x = ArtworkUidList{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[6] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -495,7 +542,7 @@ func (x *ArtworkUidList) String() string { func (*ArtworkUidList) ProtoMessage() {} func (x *ArtworkUidList) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[6] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -508,7 +555,7 @@ func (x *ArtworkUidList) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkUidList.ProtoReflect.Descriptor instead. func (*ArtworkUidList) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{6} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{7} } func (x *ArtworkUidList) GetArtworkUids() []string { @@ -529,7 +576,7 @@ type DeleteArtworkRecordRequest struct { func (x *DeleteArtworkRecordRequest) Reset() { *x = DeleteArtworkRecordRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[7] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -542,7 +589,7 @@ func (x *DeleteArtworkRecordRequest) String() string { func (*DeleteArtworkRecordRequest) ProtoMessage() {} func (x *DeleteArtworkRecordRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[7] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -555,7 +602,7 @@ func (x *DeleteArtworkRecordRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteArtworkRecordRequest.ProtoReflect.Descriptor instead. func (*DeleteArtworkRecordRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{7} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{8} } func (x *DeleteArtworkRecordRequest) GetArtworkUids() []string { @@ -576,7 +623,7 @@ type GetArtworkLockHistoryRequest struct { func (x *GetArtworkLockHistoryRequest) Reset() { *x = GetArtworkLockHistoryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[8] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -589,7 +636,7 @@ func (x *GetArtworkLockHistoryRequest) String() string { func (*GetArtworkLockHistoryRequest) ProtoMessage() {} func (x *GetArtworkLockHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[8] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -602,7 +649,7 @@ func (x *GetArtworkLockHistoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtworkLockHistoryRequest.ProtoReflect.Descriptor instead. func (*GetArtworkLockHistoryRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{8} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{9} } func (x *GetArtworkLockHistoryRequest) GetArtistUid() string { @@ -617,13 +664,13 @@ type GetArtworkLockDetailRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ArtworkUid string `protobuf:"bytes,1,opt,name=artworkUid,proto3" json:"artworkUid,omitempty"` //画家uid; + ArtworkUid string `protobuf:"bytes,1,opt,name=artworkUid,proto3" json:"artworkUid,omitempty"` //画作uid; } func (x *GetArtworkLockDetailRequest) Reset() { *x = GetArtworkLockDetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[9] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -636,7 +683,7 @@ func (x *GetArtworkLockDetailRequest) String() string { func (*GetArtworkLockDetailRequest) ProtoMessage() {} func (x *GetArtworkLockDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[9] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -649,7 +696,7 @@ func (x *GetArtworkLockDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtworkLockDetailRequest.ProtoReflect.Descriptor instead. func (*GetArtworkLockDetailRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{9} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{10} } func (x *GetArtworkLockDetailRequest) GetArtworkUid() string { @@ -687,7 +734,7 @@ type ArtworkPreviewInfo struct { func (x *ArtworkPreviewInfo) Reset() { *x = ArtworkPreviewInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[10] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -700,7 +747,7 @@ func (x *ArtworkPreviewInfo) String() string { func (*ArtworkPreviewInfo) ProtoMessage() {} func (x *ArtworkPreviewInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[10] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -713,7 +760,7 @@ func (x *ArtworkPreviewInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkPreviewInfo.ProtoReflect.Descriptor instead. func (*ArtworkPreviewInfo) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{10} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{11} } func (x *ArtworkPreviewInfo) GetArtistUuid() string { @@ -846,7 +893,7 @@ type GetArtworkLockHistoryResponse struct { func (x *GetArtworkLockHistoryResponse) Reset() { *x = GetArtworkLockHistoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[11] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -859,7 +906,7 @@ func (x *GetArtworkLockHistoryResponse) String() string { func (*GetArtworkLockHistoryResponse) ProtoMessage() {} func (x *GetArtworkLockHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[11] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -872,7 +919,7 @@ func (x *GetArtworkLockHistoryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtworkLockHistoryResponse.ProtoReflect.Descriptor instead. func (*GetArtworkLockHistoryResponse) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{11} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{12} } func (x *GetArtworkLockHistoryResponse) GetGroupList() []*ArtworkLockRecord { @@ -894,7 +941,7 @@ type ArtworkLockRecord struct { func (x *ArtworkLockRecord) Reset() { *x = ArtworkLockRecord{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[12] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -907,7 +954,7 @@ func (x *ArtworkLockRecord) String() string { func (*ArtworkLockRecord) ProtoMessage() {} func (x *ArtworkLockRecord) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[12] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -920,7 +967,7 @@ func (x *ArtworkLockRecord) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkLockRecord.ProtoReflect.Descriptor instead. func (*ArtworkLockRecord) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{12} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{13} } func (x *ArtworkLockRecord) GetLockGroup() string { @@ -951,7 +998,7 @@ type UpdateArtworkAuditStatusRequest struct { func (x *UpdateArtworkAuditStatusRequest) Reset() { *x = UpdateArtworkAuditStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[13] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -964,7 +1011,7 @@ func (x *UpdateArtworkAuditStatusRequest) String() string { func (*UpdateArtworkAuditStatusRequest) ProtoMessage() {} func (x *UpdateArtworkAuditStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[13] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -977,7 +1024,7 @@ func (x *UpdateArtworkAuditStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateArtworkAuditStatusRequest.ProtoReflect.Descriptor instead. func (*UpdateArtworkAuditStatusRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{13} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{14} } func (x *UpdateArtworkAuditStatusRequest) GetArtworkUid() string { @@ -1008,6 +1055,53 @@ func (x *UpdateArtworkAuditStatusRequest) GetAuditMark2() string { return "" } +type CheckArtworkEditableResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Editable bool `protobuf:"varint,1,opt,name=editable,proto3" json:"editable,omitempty"` +} + +func (x *CheckArtworkEditableResponse) Reset() { + *x = CheckArtworkEditableResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtwork_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckArtworkEditableResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckArtworkEditableResponse) ProtoMessage() {} + +func (x *CheckArtworkEditableResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtwork_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CheckArtworkEditableResponse.ProtoReflect.Descriptor instead. +func (*CheckArtworkEditableResponse) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{15} +} + +func (x *CheckArtworkEditableResponse) GetEditable() bool { + if x != nil { + return x.Editable + } + return false +} + var File_pb_artistinfoArtwork_proto protoreflect.FileDescriptor var file_pb_artistinfoArtwork_proto_rawDesc = []byte{ @@ -1018,184 +1112,197 @@ var file_pb_artistinfoArtwork_proto_rawDesc = []byte{ 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x17, 0x0a, 0x15, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, - 0x71, 0x12, 0x28, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, - 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0a, 0x61, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x4c, 0x0a, 0x18, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xa6, 0x01, 0x0a, 0x1c, 0x47, 0x65, - 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x09, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, - 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x55, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0xbc, 0x02, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, - 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, - 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, - 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, - 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, - 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, - 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, - 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0x41, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x32, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, - 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x6d, 0x73, 0x22, 0x33, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x22, 0xa6, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, - 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, - 0x64, 0x22, 0x96, 0x04, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, - 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, - 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x26, - 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x64, 0x50, 0x69, - 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x12, 0x1e, - 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, + 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, + 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, + 0x22, 0x4c, 0x0a, 0x18, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xa6, + 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x28, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xbc, 0x02, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x41, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x32, 0x0a, 0x0e, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3e, 0x0a, + 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, + 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x47, + 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, + 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x22, 0x96, 0x04, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, + 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, + 0x6c, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, + 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x64, + 0x50, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, + 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, + 0x72, 0x6b, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, + 0x5c, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6d, 0x0a, + 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xa1, 0x01, 0x0a, + 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, + 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, - 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x0e, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, - 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x5c, 0x0a, 0x1d, 0x47, 0x65, - 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x22, 0x3a, 0x0a, 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2a, 0x67, 0x0a, 0x10, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x6f, 0x77, 0x4c, 0x6f, + 0x63, 0x6b, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x01, 0x12, 0x10, 0x0a, + 0x0c, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x65, 0x10, 0x02, 0x12, + 0x14, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x10, 0x03, 0x32, 0xc6, 0x06, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x66, 0x0a, 0x17, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x09, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x64, - 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x64, - 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, - 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, - 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, - 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x2a, 0x67, 0x0a, 0x10, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x6f, 0x77, 0x4c, 0x6f, 0x63, - 0x6b, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x65, 0x10, 0x02, 0x12, 0x14, - 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x10, 0x03, 0x32, 0xe3, 0x05, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x66, 0x0a, 0x17, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, - 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x22, 0x00, 0x12, 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, + 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, + 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, + 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, + 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, - 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, - 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x18, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, - 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, - 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5d, + 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, + 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x6c, 0x0a, + 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, + 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x14, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x16, + 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1211,45 +1318,49 @@ func file_pb_artistinfoArtwork_proto_rawDescGZIP() []byte { } var file_pb_artistinfoArtwork_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_pb_artistinfoArtwork_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_pb_artistinfoArtwork_proto_msgTypes = make([]protoimpl.MessageInfo, 16) var file_pb_artistinfoArtwork_proto_goTypes = []interface{}{ (ArtworkQueryMode)(0), // 0: artistinfo.ArtworkQueryMode (*ArtworkCommonNoParams)(nil), // 1: artistinfo.ArtworkCommonNoParams - (*CreateArtworkLockRecordReq)(nil), // 2: artistinfo.CreateArtworkLockRecordReq - (*ArtworkLockActionRequest)(nil), // 3: artistinfo.ArtworkLockActionRequest - (*GetArtworkLockRecordsRequest)(nil), // 4: artistinfo.GetArtworkLockRecordsRequest - (*ArtistLockInfo)(nil), // 5: artistinfo.ArtistLockInfo - (*ArtworkLockList)(nil), // 6: artistinfo.ArtworkLockList - (*ArtworkUidList)(nil), // 7: artistinfo.ArtworkUidList - (*DeleteArtworkRecordRequest)(nil), // 8: artistinfo.DeleteArtworkRecordRequest - (*GetArtworkLockHistoryRequest)(nil), // 9: artistinfo.GetArtworkLockHistoryRequest - (*GetArtworkLockDetailRequest)(nil), // 10: artistinfo.GetArtworkLockDetailRequest - (*ArtworkPreviewInfo)(nil), // 11: artistinfo.ArtworkPreviewInfo - (*GetArtworkLockHistoryResponse)(nil), // 12: artistinfo.GetArtworkLockHistoryResponse - (*ArtworkLockRecord)(nil), // 13: artistinfo.ArtworkLockRecord - (*UpdateArtworkAuditStatusRequest)(nil), // 14: artistinfo.UpdateArtworkAuditStatusRequest + (*ArtworkUidRequest)(nil), // 2: artistinfo.ArtworkUidRequest + (*CreateArtworkLockRecordReq)(nil), // 3: artistinfo.CreateArtworkLockRecordReq + (*ArtworkLockActionRequest)(nil), // 4: artistinfo.ArtworkLockActionRequest + (*GetArtworkLockRecordsRequest)(nil), // 5: artistinfo.GetArtworkLockRecordsRequest + (*ArtistLockInfo)(nil), // 6: artistinfo.ArtistLockInfo + (*ArtworkLockList)(nil), // 7: artistinfo.ArtworkLockList + (*ArtworkUidList)(nil), // 8: artistinfo.ArtworkUidList + (*DeleteArtworkRecordRequest)(nil), // 9: artistinfo.DeleteArtworkRecordRequest + (*GetArtworkLockHistoryRequest)(nil), // 10: artistinfo.GetArtworkLockHistoryRequest + (*GetArtworkLockDetailRequest)(nil), // 11: artistinfo.GetArtworkLockDetailRequest + (*ArtworkPreviewInfo)(nil), // 12: artistinfo.ArtworkPreviewInfo + (*GetArtworkLockHistoryResponse)(nil), // 13: artistinfo.GetArtworkLockHistoryResponse + (*ArtworkLockRecord)(nil), // 14: artistinfo.ArtworkLockRecord + (*UpdateArtworkAuditStatusRequest)(nil), // 15: artistinfo.UpdateArtworkAuditStatusRequest + (*CheckArtworkEditableResponse)(nil), // 16: artistinfo.CheckArtworkEditableResponse } var file_pb_artistinfoArtwork_proto_depIdxs = []int32{ 0, // 0: artistinfo.GetArtworkLockRecordsRequest.queryType:type_name -> artistinfo.ArtworkQueryMode - 5, // 1: artistinfo.ArtworkLockList.data:type_name -> artistinfo.ArtistLockInfo - 13, // 2: artistinfo.GetArtworkLockHistoryResponse.groupList:type_name -> artistinfo.ArtworkLockRecord - 11, // 3: artistinfo.ArtworkLockRecord.dataList:type_name -> artistinfo.ArtworkPreviewInfo - 2, // 4: artistinfo.ArtistInfoArtwork.CreateArtworkLockRecord:input_type -> artistinfo.CreateArtworkLockRecordReq - 3, // 5: artistinfo.ArtistInfoArtwork.ArtworkLockAction:input_type -> artistinfo.ArtworkLockActionRequest - 4, // 6: artistinfo.ArtistInfoArtwork.GetArtworkLockRecords:input_type -> artistinfo.GetArtworkLockRecordsRequest - 9, // 7: artistinfo.ArtistInfoArtwork.GetArtworkLockHistoryGroup:input_type -> artistinfo.GetArtworkLockHistoryRequest - 8, // 8: artistinfo.ArtistInfoArtwork.DeleteArtworkRecord:input_type -> artistinfo.DeleteArtworkRecordRequest - 10, // 9: artistinfo.ArtistInfoArtwork.GetArtworkLockDetail:input_type -> artistinfo.GetArtworkLockDetailRequest - 14, // 10: artistinfo.ArtistInfoArtwork.UpdateArtworkAuditStatus:input_type -> artistinfo.UpdateArtworkAuditStatusRequest - 1, // 11: artistinfo.ArtistInfoArtwork.CreateArtworkLockRecord:output_type -> artistinfo.ArtworkCommonNoParams - 1, // 12: artistinfo.ArtistInfoArtwork.ArtworkLockAction:output_type -> artistinfo.ArtworkCommonNoParams - 6, // 13: artistinfo.ArtistInfoArtwork.GetArtworkLockRecords:output_type -> artistinfo.ArtworkLockList - 12, // 14: artistinfo.ArtistInfoArtwork.GetArtworkLockHistoryGroup:output_type -> artistinfo.GetArtworkLockHistoryResponse - 1, // 15: artistinfo.ArtistInfoArtwork.DeleteArtworkRecord:output_type -> artistinfo.ArtworkCommonNoParams - 5, // 16: artistinfo.ArtistInfoArtwork.GetArtworkLockDetail:output_type -> artistinfo.ArtistLockInfo - 1, // 17: artistinfo.ArtistInfoArtwork.UpdateArtworkAuditStatus:output_type -> artistinfo.ArtworkCommonNoParams - 11, // [11:18] is the sub-list for method output_type - 4, // [4:11] is the sub-list for method input_type + 6, // 1: artistinfo.ArtworkLockList.data:type_name -> artistinfo.ArtistLockInfo + 14, // 2: artistinfo.GetArtworkLockHistoryResponse.groupList:type_name -> artistinfo.ArtworkLockRecord + 12, // 3: artistinfo.ArtworkLockRecord.dataList:type_name -> artistinfo.ArtworkPreviewInfo + 3, // 4: artistinfo.ArtistInfoArtwork.CreateArtworkLockRecord:input_type -> artistinfo.CreateArtworkLockRecordReq + 4, // 5: artistinfo.ArtistInfoArtwork.ArtworkLockAction:input_type -> artistinfo.ArtworkLockActionRequest + 5, // 6: artistinfo.ArtistInfoArtwork.GetArtworkLockRecords:input_type -> artistinfo.GetArtworkLockRecordsRequest + 10, // 7: artistinfo.ArtistInfoArtwork.GetArtworkLockHistoryGroup:input_type -> artistinfo.GetArtworkLockHistoryRequest + 9, // 8: artistinfo.ArtistInfoArtwork.DeleteArtworkRecord:input_type -> artistinfo.DeleteArtworkRecordRequest + 11, // 9: artistinfo.ArtistInfoArtwork.GetArtworkLockDetail:input_type -> artistinfo.GetArtworkLockDetailRequest + 15, // 10: artistinfo.ArtistInfoArtwork.UpdateArtworkAuditStatus:input_type -> artistinfo.UpdateArtworkAuditStatusRequest + 2, // 11: artistinfo.ArtistInfoArtwork.CheckArtworkEditable:input_type -> artistinfo.ArtworkUidRequest + 1, // 12: artistinfo.ArtistInfoArtwork.CreateArtworkLockRecord:output_type -> artistinfo.ArtworkCommonNoParams + 1, // 13: artistinfo.ArtistInfoArtwork.ArtworkLockAction:output_type -> artistinfo.ArtworkCommonNoParams + 7, // 14: artistinfo.ArtistInfoArtwork.GetArtworkLockRecords:output_type -> artistinfo.ArtworkLockList + 13, // 15: artistinfo.ArtistInfoArtwork.GetArtworkLockHistoryGroup:output_type -> artistinfo.GetArtworkLockHistoryResponse + 1, // 16: artistinfo.ArtistInfoArtwork.DeleteArtworkRecord:output_type -> artistinfo.ArtworkCommonNoParams + 6, // 17: artistinfo.ArtistInfoArtwork.GetArtworkLockDetail:output_type -> artistinfo.ArtistLockInfo + 1, // 18: artistinfo.ArtistInfoArtwork.UpdateArtworkAuditStatus:output_type -> artistinfo.ArtworkCommonNoParams + 16, // 19: artistinfo.ArtistInfoArtwork.CheckArtworkEditable:output_type -> artistinfo.CheckArtworkEditableResponse + 12, // [12:20] is the sub-list for method output_type + 4, // [4:12] is the sub-list for method input_type 4, // [4:4] is the sub-list for extension type_name 4, // [4:4] is the sub-list for extension extendee 0, // [0:4] is the sub-list for field type_name @@ -1274,7 +1385,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateArtworkLockRecordReq); i { + switch v := v.(*ArtworkUidRequest); i { case 0: return &v.state case 1: @@ -1286,7 +1397,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkLockActionRequest); i { + switch v := v.(*CreateArtworkLockRecordReq); i { case 0: return &v.state case 1: @@ -1298,7 +1409,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtworkLockRecordsRequest); i { + switch v := v.(*ArtworkLockActionRequest); i { case 0: return &v.state case 1: @@ -1310,7 +1421,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtistLockInfo); i { + switch v := v.(*GetArtworkLockRecordsRequest); i { case 0: return &v.state case 1: @@ -1322,7 +1433,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkLockList); i { + switch v := v.(*ArtistLockInfo); i { case 0: return &v.state case 1: @@ -1334,7 +1445,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkUidList); i { + switch v := v.(*ArtworkLockList); i { case 0: return &v.state case 1: @@ -1346,7 +1457,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteArtworkRecordRequest); i { + switch v := v.(*ArtworkUidList); i { case 0: return &v.state case 1: @@ -1358,7 +1469,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtworkLockHistoryRequest); i { + switch v := v.(*DeleteArtworkRecordRequest); i { case 0: return &v.state case 1: @@ -1370,7 +1481,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtworkLockDetailRequest); i { + switch v := v.(*GetArtworkLockHistoryRequest); i { case 0: return &v.state case 1: @@ -1382,7 +1493,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkPreviewInfo); i { + switch v := v.(*GetArtworkLockDetailRequest); i { case 0: return &v.state case 1: @@ -1394,7 +1505,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtworkLockHistoryResponse); i { + switch v := v.(*ArtworkPreviewInfo); i { case 0: return &v.state case 1: @@ -1406,7 +1517,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkLockRecord); i { + switch v := v.(*GetArtworkLockHistoryResponse); i { case 0: return &v.state case 1: @@ -1418,6 +1529,18 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtworkLockRecord); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtwork_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateArtworkAuditStatusRequest); i { case 0: return &v.state @@ -1429,6 +1552,18 @@ func file_pb_artistinfoArtwork_proto_init() { return nil } } + file_pb_artistinfoArtwork_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckArtworkEditableResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1436,7 +1571,7 @@ func file_pb_artistinfoArtwork_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_artistinfoArtwork_proto_rawDesc, NumEnums: 1, - NumMessages: 14, + NumMessages: 16, NumExtensions: 0, NumServices: 1, }, diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go index 1a31463..5e970e8 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go @@ -137,6 +137,110 @@ var _ interface { ErrorName() string } = ArtworkCommonNoParamsValidationError{} +// Validate checks the field values on ArtworkUidRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *ArtworkUidRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ArtworkUidRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ArtworkUidRequestMultiError, or nil if none found. +func (m *ArtworkUidRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ArtworkUidRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ArtworkUid + + if len(errors) > 0 { + return ArtworkUidRequestMultiError(errors) + } + + return nil +} + +// ArtworkUidRequestMultiError is an error wrapping multiple validation errors +// returned by ArtworkUidRequest.ValidateAll() if the designated constraints +// aren't met. +type ArtworkUidRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ArtworkUidRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ArtworkUidRequestMultiError) AllErrors() []error { return m } + +// ArtworkUidRequestValidationError is the validation error returned by +// ArtworkUidRequest.Validate if the designated constraints aren't met. +type ArtworkUidRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ArtworkUidRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ArtworkUidRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ArtworkUidRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ArtworkUidRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ArtworkUidRequestValidationError) ErrorName() string { + return "ArtworkUidRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ArtworkUidRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sArtworkUidRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ArtworkUidRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ArtworkUidRequestValidationError{} + // Validate checks the field values on CreateArtworkLockRecordReq with the // rules defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. @@ -1647,3 +1751,108 @@ var _ interface { Cause() error ErrorName() string } = UpdateArtworkAuditStatusRequestValidationError{} + +// Validate checks the field values on CheckArtworkEditableResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *CheckArtworkEditableResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CheckArtworkEditableResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// CheckArtworkEditableResponseMultiError, or nil if none found. +func (m *CheckArtworkEditableResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *CheckArtworkEditableResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Editable + + if len(errors) > 0 { + return CheckArtworkEditableResponseMultiError(errors) + } + + return nil +} + +// CheckArtworkEditableResponseMultiError is an error wrapping multiple +// validation errors returned by CheckArtworkEditableResponse.ValidateAll() if +// the designated constraints aren't met. +type CheckArtworkEditableResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CheckArtworkEditableResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CheckArtworkEditableResponseMultiError) AllErrors() []error { return m } + +// CheckArtworkEditableResponseValidationError is the validation error returned +// by CheckArtworkEditableResponse.Validate if the designated constraints +// aren't met. +type CheckArtworkEditableResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CheckArtworkEditableResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CheckArtworkEditableResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CheckArtworkEditableResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CheckArtworkEditableResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CheckArtworkEditableResponseValidationError) ErrorName() string { + return "CheckArtworkEditableResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e CheckArtworkEditableResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCheckArtworkEditableResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CheckArtworkEditableResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CheckArtworkEditableResponseValidationError{} diff --git a/pb/artistInfoArtwork/artistinfoArtwork_triple.pb.go b/pb/artistInfoArtwork/artistinfoArtwork_triple.pb.go index 411ea15..392cdaf 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork_triple.pb.go +++ b/pb/artistInfoArtwork/artistinfoArtwork_triple.pb.go @@ -36,6 +36,7 @@ type ArtistInfoArtworkClient interface { DeleteArtworkRecord(ctx context.Context, in *DeleteArtworkRecordRequest, opts ...grpc_go.CallOption) (*ArtworkCommonNoParams, common.ErrorWithAttachment) GetArtworkLockDetail(ctx context.Context, in *GetArtworkLockDetailRequest, opts ...grpc_go.CallOption) (*ArtistLockInfo, common.ErrorWithAttachment) UpdateArtworkAuditStatus(ctx context.Context, in *UpdateArtworkAuditStatusRequest, opts ...grpc_go.CallOption) (*ArtworkCommonNoParams, common.ErrorWithAttachment) + CheckArtworkEditable(ctx context.Context, in *ArtworkUidRequest, opts ...grpc_go.CallOption) (*CheckArtworkEditableResponse, common.ErrorWithAttachment) } type artistInfoArtworkClient struct { @@ -50,6 +51,7 @@ type ArtistInfoArtworkClientImpl struct { DeleteArtworkRecord func(ctx context.Context, in *DeleteArtworkRecordRequest) (*ArtworkCommonNoParams, error) GetArtworkLockDetail func(ctx context.Context, in *GetArtworkLockDetailRequest) (*ArtistLockInfo, error) UpdateArtworkAuditStatus func(ctx context.Context, in *UpdateArtworkAuditStatusRequest) (*ArtworkCommonNoParams, error) + CheckArtworkEditable func(ctx context.Context, in *ArtworkUidRequest) (*CheckArtworkEditableResponse, error) } func (c *ArtistInfoArtworkClientImpl) GetDubboStub(cc *triple.TripleConn) ArtistInfoArtworkClient { @@ -106,6 +108,12 @@ func (c *artistInfoArtworkClient) UpdateArtworkAuditStatus(ctx context.Context, return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateArtworkAuditStatus", in, out) } +func (c *artistInfoArtworkClient) CheckArtworkEditable(ctx context.Context, in *ArtworkUidRequest, opts ...grpc_go.CallOption) (*CheckArtworkEditableResponse, common.ErrorWithAttachment) { + out := new(CheckArtworkEditableResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CheckArtworkEditable", in, out) +} + // ArtistInfoArtworkServer is the server API for ArtistInfoArtwork service. // All implementations must embed UnimplementedArtistInfoArtworkServer // for forward compatibility @@ -118,6 +126,7 @@ type ArtistInfoArtworkServer interface { DeleteArtworkRecord(context.Context, *DeleteArtworkRecordRequest) (*ArtworkCommonNoParams, error) GetArtworkLockDetail(context.Context, *GetArtworkLockDetailRequest) (*ArtistLockInfo, error) UpdateArtworkAuditStatus(context.Context, *UpdateArtworkAuditStatusRequest) (*ArtworkCommonNoParams, error) + CheckArtworkEditable(context.Context, *ArtworkUidRequest) (*CheckArtworkEditableResponse, error) mustEmbedUnimplementedArtistInfoArtworkServer() } @@ -147,6 +156,9 @@ func (UnimplementedArtistInfoArtworkServer) GetArtworkLockDetail(context.Context func (UnimplementedArtistInfoArtworkServer) UpdateArtworkAuditStatus(context.Context, *UpdateArtworkAuditStatusRequest) (*ArtworkCommonNoParams, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateArtworkAuditStatus not implemented") } +func (UnimplementedArtistInfoArtworkServer) CheckArtworkEditable(context.Context, *ArtworkUidRequest) (*CheckArtworkEditableResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CheckArtworkEditable not implemented") +} func (s *UnimplementedArtistInfoArtworkServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -378,6 +390,35 @@ func _ArtistInfoArtwork_UpdateArtworkAuditStatus_Handler(srv interface{}, ctx co return interceptor(ctx, in, info, handler) } +func _ArtistInfoArtwork_CheckArtworkEditable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ArtworkUidRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CheckArtworkEditable", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + // ArtistInfoArtwork_ServiceDesc is the grpc_go.ServiceDesc for ArtistInfoArtwork service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -413,6 +454,10 @@ var ArtistInfoArtwork_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "UpdateArtworkAuditStatus", Handler: _ArtistInfoArtwork_UpdateArtworkAuditStatus_Handler, }, + { + MethodName: "CheckArtworkEditable", + Handler: _ArtistInfoArtwork_CheckArtworkEditable_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/artistinfoArtwork.proto", diff --git a/pb/artistinfoArtwork.proto b/pb/artistinfoArtwork.proto index 0c3b7e9..6bc22d0 100644 --- a/pb/artistinfoArtwork.proto +++ b/pb/artistinfoArtwork.proto @@ -5,6 +5,7 @@ option go_package = "./;artistInfoArtwork"; import "validate.proto"; import public "google/protobuf/timestamp.proto"; // protoc -I . -I ./pb --proto_path=. --go_out=./pb/artistInfoArtwork --go-triple_out=./pb/artistInfoArtwork --validate_out="lang=go:./pb/artistInfoArtwork" ./pb/artistinfoArtwork.proto + service ArtistInfoArtwork { //画作相关 rpc CreateArtworkLockRecord(CreateArtworkLockRecordReq)returns(ArtworkCommonNoParams){} //创建画作锁状态记录 @@ -14,10 +15,13 @@ service ArtistInfoArtwork { rpc DeleteArtworkRecord(DeleteArtworkRecordRequest)returns(ArtworkCommonNoParams){} //删除画作锁记录 rpc GetArtworkLockDetail(GetArtworkLockDetailRequest)returns(ArtistLockInfo){}//查询画作锁定详情 rpc UpdateArtworkAuditStatus(UpdateArtworkAuditStatusRequest)returns(ArtworkCommonNoParams){}//更新画作审批状态 + rpc CheckArtworkEditable(ArtworkUidRequest)returns(CheckArtworkEditableResponse){}//查询画作状态是否可编辑 } message ArtworkCommonNoParams{} - +message ArtworkUidRequest{ + string ArtworkUid =1; +} message CreateArtworkLockRecordReq{ string artistUid=1 [(validate.rules).message.required = true];//画家uid string artworkUid=2 [(validate.rules).message.required = true];//画作uid @@ -70,7 +74,7 @@ message GetArtworkLockHistoryRequest{ string artistUid=1; } message GetArtworkLockDetailRequest{ - string artworkUid=1 [(validate.rules).message.required = true];//画家uid; + string artworkUid=1 [(validate.rules).message.required = true];//画作uid; } //---- message ArtworkPreviewInfo { @@ -104,4 +108,7 @@ message UpdateArtworkAuditStatusRequest{ int64 auditStatus=5; string auditMark=6; string auditMark2=7; +} +message CheckArtworkEditableResponse{ + bool editable =1; } \ No newline at end of file From f127a04599c7a72b4658570f03fbcff2e288d18a Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Wed, 1 Mar 2023 09:06:02 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E5=81=9A=E4=BA=86=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_artwork.go | 3 + cmd/internal/logic/artistinfo_artwork.go | 2 +- pb/artistInfoArtwork/artistinfoArtwork.pb.go | 367 +++++++++--------- pb/artistinfoArtwork.proto | 3 +- 4 files changed, 190 insertions(+), 185 deletions(-) diff --git a/cmd/internal/controller/artistInfo_artwork.go b/cmd/internal/controller/artistInfo_artwork.go index 477407a..c5f50d5 100644 --- a/cmd/internal/controller/artistInfo_artwork.go +++ b/cmd/internal/controller/artistInfo_artwork.go @@ -22,6 +22,9 @@ type ArtistInfoArtworkProvider struct { // 检查画作是否可编辑 func (a ArtistInfoArtworkProvider) CheckArtworkEditable(ctx context.Context, request *artistInfoArtwork.ArtworkUidRequest) (*artistInfoArtwork.CheckArtworkEditableResponse, error) { + if request.ArtworkUid == "" { + return nil, errors.New("ArtworkUid 不能为空") + } return a.artistInfoLogic.CheckArtworkEditable(request) } diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index 923bca3..1d27c62 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -165,7 +165,7 @@ func (a ArtistInfoArtworkLogic) CheckArtworkEditable(request *artistInfoArtwork. return nil, err } //如果画作为锁定状态 并且有锁定时间 并且状态不是已通过 - if lockDetail.Status == 1 && lockDetail.LockTime != "" && lockDetail.AuditStatus != 2 { + if lockDetail.Status == 2 && lockDetail.LockTime != "" && lockDetail.AuditStatus != 2 { res.Editable = true } return diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.go index bd495da..d110abd 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.go @@ -121,7 +121,7 @@ type ArtworkUidRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ArtworkUid string `protobuf:"bytes,1,opt,name=ArtworkUid,proto3" json:"ArtworkUid,omitempty"` + ArtworkUid string `protobuf:"bytes,1,opt,name=ArtworkUid,proto3" json:"ArtworkUid,omitempty"` //画作uid } func (x *ArtworkUidRequest) Reset() { @@ -1112,197 +1112,198 @@ var file_pb_artistinfoArtwork_proto_rawDesc = []byte{ 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x17, 0x0a, 0x15, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x22, 0x33, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x22, 0xa6, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, - 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, - 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, - 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, - 0x22, 0x4c, 0x0a, 0x18, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xa6, - 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, - 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x28, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xbc, 0x02, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, + 0x6d, 0x73, 0x22, 0x3f, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, + 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x69, 0x64, 0x22, 0xa6, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, + 0x65, 0x71, 0x12, 0x28, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, + 0x01, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0a, + 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x4c, 0x0a, 0x18, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xa6, 0x01, 0x0a, 0x1c, 0x47, + 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x09, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, + 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0xbc, 0x02, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, + 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, + 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x22, 0x41, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x32, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, 0x1c, 0x47, 0x65, 0x74, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, + 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x69, 0x64, 0x22, 0x96, 0x04, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, + 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x75, 0x6c, + 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, + 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x64, 0x50, + 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x12, + 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, + 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x5c, 0x0a, 0x1d, 0x47, + 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x09, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x11, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3a, 0x0a, 0x08, + 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, + 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x1f, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x41, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x32, 0x0a, 0x0e, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3e, 0x0a, - 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, - 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x47, - 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, - 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x22, 0x96, 0x04, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, - 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, - 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, - 0x6c, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, - 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x64, - 0x50, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, - 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, - 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, - 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, - 0x72, 0x6b, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, - 0x5c, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, - 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6d, 0x0a, - 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xa1, 0x01, 0x0a, - 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, - 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, - 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, - 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, - 0x22, 0x3a, 0x0a, 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2a, 0x67, 0x0a, 0x10, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, - 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x6f, 0x77, 0x4c, 0x6f, - 0x63, 0x6b, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x01, 0x12, 0x10, 0x0a, - 0x0c, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x65, 0x10, 0x02, 0x12, - 0x14, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x10, 0x03, 0x32, 0xc6, 0x06, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x66, 0x0a, 0x17, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x21, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, - 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, - 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, - 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5d, - 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, - 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x6c, 0x0a, - 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, - 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x14, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x22, 0x3a, 0x0a, 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x16, - 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2a, 0x67, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x11, + 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x65, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x41, + 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, + 0x03, 0x32, 0xc6, 0x06, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x66, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, + 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, + 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, + 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x14, 0x47, 0x65, + 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, + 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x18, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, + 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, + 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/artistinfoArtwork.proto b/pb/artistinfoArtwork.proto index 6bc22d0..82bdaf9 100644 --- a/pb/artistinfoArtwork.proto +++ b/pb/artistinfoArtwork.proto @@ -4,6 +4,7 @@ option go_package = "./;artistInfoArtwork"; import "validate.proto"; import public "google/protobuf/timestamp.proto"; +import "google/protobuf/empty.proto"; //使用 google.protobuf.Empty // protoc -I . -I ./pb --proto_path=. --go_out=./pb/artistInfoArtwork --go-triple_out=./pb/artistInfoArtwork --validate_out="lang=go:./pb/artistInfoArtwork" ./pb/artistinfoArtwork.proto service ArtistInfoArtwork { @@ -20,7 +21,7 @@ service ArtistInfoArtwork { message ArtworkCommonNoParams{} message ArtworkUidRequest{ - string ArtworkUid =1; + string ArtworkUid =1 [(validate.rules).message.required = true]; //画作uid } message CreateArtworkLockRecordReq{ string artistUid=1 [(validate.rules).message.required = true];//画家uid From c6a579fabfcc6a33a47eec14f1de579d2384c4fa Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Wed, 1 Mar 2023 16:24:26 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E7=94=BB?= =?UTF-8?q?=E4=BD=9C=E5=AE=A1=E6=89=B9=E6=B5=81=E7=A8=8B=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_artwork.go | 24 +- cmd/internal/dao/artistinfo_artwork.go | 115 ++- cmd/internal/logic/artistinfo_artwork.go | 89 +- cmd/model/artwork_main_lockRecord.go | 50 +- pb/artistInfoArtwork/artistinfoArtwork.pb.go | 891 +++++++++++------- .../artistinfoArtwork.pb.validate.go | 138 ++- .../artistinfoArtwork_triple.pb.go | 127 ++- pb/artistinfoArtwork.proto | 58 +- 8 files changed, 1037 insertions(+), 455 deletions(-) diff --git a/cmd/internal/controller/artistInfo_artwork.go b/cmd/internal/controller/artistInfo_artwork.go index c5f50d5..3791897 100644 --- a/cmd/internal/controller/artistInfo_artwork.go +++ b/cmd/internal/controller/artistInfo_artwork.go @@ -11,6 +11,7 @@ import ( "errors" "github.com/fonchain/fonchain-artistinfo/cmd/internal/logic" "github.com/fonchain/fonchain-artistinfo/pb/artistInfoArtwork" + emptypb "google.golang.org/protobuf/types/known/emptypb" ) var _ artistInfoArtwork.ArtistInfoArtworkServer = new(ArtistInfoArtworkProvider) @@ -20,15 +21,32 @@ type ArtistInfoArtworkProvider struct { artistInfoLogic logic.ArtistInfoArtworkLogic } -// 检查画作是否可编辑 -func (a ArtistInfoArtworkProvider) CheckArtworkEditable(ctx context.Context, request *artistInfoArtwork.ArtworkUidRequest) (*artistInfoArtwork.CheckArtworkEditableResponse, error) { +// 进入画作补充信息的流程 +func (a ArtistInfoArtworkProvider) GenerateArtworkSupplementInfo(ctx context.Context, request *artistInfoArtwork.ArtworkUidsRequest) (*emptypb.Empty, error) { + return a.artistInfoLogic.GenerateArtworkSupplementInfo(request) +} + +// 画作基本信息是否可编辑 +func (a ArtistInfoArtworkProvider) CheckArtworkBaseInfoEditable(ctx context.Context, request *artistInfoArtwork.ArtworkUidRequest) (*artistInfoArtwork.CheckArtworkEditableResponse, error) { if request.ArtworkUid == "" { return nil, errors.New("ArtworkUid 不能为空") } - return a.artistInfoLogic.CheckArtworkEditable(request) + return a.artistInfoLogic.CheckArtworkEditable(request, 2) } +// 画作补充信息是否可编辑 +func (a ArtistInfoArtworkProvider) CheckArtworkSupplementInfoEditable(ctx context.Context, request *artistInfoArtwork.ArtworkUidRequest) (*artistInfoArtwork.CheckArtworkEditableResponse, error) { + if request.ArtworkUid == "" { + return nil, errors.New("ArtworkUid 不能为空") + } + return a.artistInfoLogic.CheckArtworkEditable(request, 3) +} + +// 更新画作审批状态 func (a ArtistInfoArtworkProvider) UpdateArtworkAuditStatus(ctx context.Context, request *artistInfoArtwork.UpdateArtworkAuditStatusRequest) (*artistInfoArtwork.ArtworkCommonNoParams, error) { + if request.FlowIndex != 2 && request.FlowIndex != 3 { + return nil, errors.New("FlowIndex 不能为空") + } return a.artistInfoLogic.UpdateArtworkAuditStatus(request) } diff --git a/cmd/internal/dao/artistinfo_artwork.go b/cmd/internal/dao/artistinfo_artwork.go index ed5bf8b..80e8665 100644 --- a/cmd/internal/dao/artistinfo_artwork.go +++ b/cmd/internal/dao/artistinfo_artwork.go @@ -18,26 +18,26 @@ import ( func CreateArtworkLockRecord(in *model.ArtworkLockRecord) error { var data = model.ArtworkLockRecord{ - ArtistUid: in.ArtistUid, - ArtworkUid: in.ArtworkUid, - Status: in.Status, - LockTime: in.LockTime, - AuditStatus: 1, - //AuditMark: in.AuditMark, - //AuditMark2: in.AuditMark2, + ArtistUid: in.ArtistUid, + ArtworkUid: in.ArtworkUid, + Status: in.Status, + LockTime: in.LockTime, } return db.DB.Create(&data).Error } func UpdateArtworkLockRecord(in *model.ArtworkLockRecord) error { var data = model.ArtworkLockRecord{ - ArtistUid: in.ArtistUid, - ArtworkUid: in.ArtworkUid, - Status: in.Status, - LockTime: in.LockTime, - AuditStatus: in.AuditStatus, - AuditMark: in.AuditMark, - AuditMark2: in.AuditMark2, + ArtistUid: in.ArtistUid, + ArtworkUid: in.ArtworkUid, + Status: in.Status, + LockTime: in.LockTime, + BaseAuditStatus: in.BaseAuditStatus, + BaseAuditMark: in.BaseAuditMark, + BaseAuditMark2: in.BaseAuditMark2, + SupplementAuditStatus: in.SupplementAuditStatus, + SupplementAuditMark: in.SupplementAuditMark, + SupplementAuditMark2: in.SupplementAuditMark2, } var thisData model.ArtworkLockRecord err := db.DB.Where("artist_uid = ?", in.ArtworkUid).First(&thisData).Error @@ -74,8 +74,10 @@ func BatchLockArtworks(artistUid string) error { return nil } var updateMap = map[string]any{ - "status": 2, - "lock_time": stime.TimeToString(time.Now(), stime.Format_Normal_YMDhms), + "status": 2, + "lock_time": stime.TimeToString(time.Now(), stime.Format_Normal_YMDhms), + "base_audit_status": model.AuditType_Pending, //基本数据审批 + "audit_flow_index": 2, //进入基本信息审批流程 } return db.DB.Model(model.ArtworkLockRecord{}).Where("artwork_uid in ?", artworkUids).Updates(&updateMap).Error } @@ -105,21 +107,27 @@ func GetArtworkLockDetail(artworkUid string) (data model.ArtworkLockRecord, err err = db.DB.Where("artwork_uid = ?", artworkUid).First(&data).Error return } -func GetArtworkLockRecords(req *artistInfoArtwork.GetArtworkLockRecordsRequest) (resp *artistInfoArtwork.ArtworkLockList, err error) { +func GetArtworkLockRecords(req *artistInfoArtwork.GetArtworkLockRecordsRequest) (resp *artistInfoArtwork.ArtworkLockList, err error) { var ( datas = []model.ArtworkLockRecord{} - tx = db.DB.Model(model.ArtworkLockRecord{}).Where("artist_uid = ?", req.ArtistUid).Order("lock_time desc") + tx = db.DB.Model(model.ArtworkLockRecord{}).Order("lock_time desc") ) resp = &artistInfoArtwork.ArtworkLockList{} - + if req.ArtistUid != "" { + tx = tx.Where("artist_uid = ?", req.ArtistUid) + } switch req.QueryType { case artistInfoArtwork.ArtworkQueryMode_NowPreSaveArtwork: //当前暂存的画作 tx = tx.Where("status = 1") case artistInfoArtwork.ArtworkQueryMode_NowLockedArtwork: //当前已锁定的画作 tx = tx.Where("status = 2") - case artistInfoArtwork.ArtworkQueryMode_ArtistCanSee: //画家能看到的画作(暂存和锁定) //弃用,画家看到的是暂存的画作 - tx = tx.Where("status < 3") + case artistInfoArtwork.ArtworkQueryMode_NowPreSaveAndLocked: //当前暂存和已锁定的画作(也就是用户端画作管理中的数据) + tx = tx.Where("status =1 OR status =2") + case artistInfoArtwork.ArtworkQueryMode_NowAuditFlowOfBase: //当前处于基本信息审批阶段的画作 + tx = tx.Where("status = 2 AND audit_flow_index = 2") + case artistInfoArtwork.ArtworkQueryMode_NowAuditFlowOfSupplementing: //当前处于补充信息审批阶段的画作 + tx = tx.Where("status =2 AND audit_flow_index = 3") case artistInfoArtwork.ArtworkQueryMode_AllUnlockArtwork: //所有已解锁的画作(历史画作) tx = tx.Where("status = 3 OR status = 2") //case artistInfoArtwork.ArtworkQueryMode_AllHistoryArtwork: //所有历史画作 @@ -131,16 +139,20 @@ func GetArtworkLockRecords(req *artistInfoArtwork.GetArtworkLockRecordsRequest) err = tx.Find(&datas).Error for _, v := range datas { resp.Data = append(resp.Data, &artistInfoArtwork.ArtistLockInfo{ - ArtistUid: v.ArtistUid, - ArtworkUid: v.ArtworkUid, - Status: v.Status, - LockTime: v.LockTime, - AuditStatus: v.AuditStatus, - AuditMark: v.AuditMark, - AuditMark2: v.AuditMark2, - CreatedAt: v.CreatedAt.Unix(), - UpdatedAt: v.UpdatedAt.Unix(), - DeletedAt: int64(v.DeletedAt), + ArtistUid: v.ArtistUid, + ArtworkUid: v.ArtworkUid, + Status: v.Status, + LockTime: v.LockTime, + BaseAuditStatus: int32(v.BaseAuditStatus), + BaseAuditMark: v.BaseAuditMark, + BaseAuditMark2: v.BaseAuditMark2, + SupplementAuditStatus: int32(v.SupplementAuditStatus), + SupplementAuditMark: v.SupplementAuditMark, + SupplementAuditMark2: v.SupplementAuditMark2, + AuditFlowIndex: int32(v.AuditFlowIndex), + CreatedAt: v.CreatedAt.Unix(), + UpdatedAt: v.UpdatedAt.Unix(), + DeletedAt: int64(v.DeletedAt), }) } return @@ -155,7 +167,9 @@ func HasBeenLocked(artistUid string) bool { return false } -func UpdateAuditStatus(artworkUid string, auditStatus int64, remark1 string, remark2 string) error { +// UpdateAuditStatus 更新审批状态 +// flowIndex 2=基本信息审批 3=补充信息审批 +func UpdateAuditStatus(artworkUid string, auditStatus int64, remark1 string, remark2 string, flowIndex int64) error { var thisData model.ArtworkLockRecord err := db.DB.Model(model.ArtworkLockRecord{}).Where("artwork_uid = ?", artworkUid).First(&thisData).Error if err != nil { @@ -165,8 +179,39 @@ func UpdateAuditStatus(artworkUid string, auditStatus int64, remark1 string, rem return err } } - thisData.AuditStatus = auditStatus - thisData.AuditMark = remark1 - thisData.AuditMark2 = remark2 + switch flowIndex { + case 2: + thisData.BaseAuditStatus = model.AuditStatus(auditStatus) + thisData.BaseAuditMark = remark1 + thisData.BaseAuditMark2 = remark2 + case 3: + thisData.SupplementAuditStatus = model.AuditStatus(auditStatus) + thisData.SupplementAuditMark = remark1 + thisData.SupplementAuditMark2 = remark2 + } return db.DB.Save(&thisData).Error } + +func BatchUpdateAuditStatus(artworkUids []string, auditStatus int64, remark1 string, remark2 string, flowIndex int64) error { + for _, uid := range artworkUids { + if err := UpdateAuditStatus(uid, auditStatus, remark1, remark2, flowIndex); err != nil { + return err + } + } + return nil +} + +func GenerateArtworkSupplementInfo(artworkUids []string) error { + var datas = []model.ArtworkLockRecord{} + db.DB.Where("artwork_uid in ?", artworkUids).Find(&datas) + for _, v := range datas { + if v.BaseAuditStatus != 4 { + return errors.New("存在基本信息未审批通过的画作,操作取消!") + } + } + var updateData = map[string]any{ + "audit_flow_index": 3, + "supplement_audit_status": 5, + } + return db.DB.Where("artwork_uid in ?", artworkUids).Updates(&updateData).Error +} diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index 1d27c62..47a21c0 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -15,6 +15,7 @@ import ( "github.com/fonchain/fonchain-artistinfo/pb/artwork_query" "github.com/fonchain/fonchain-artistinfo/pkg/m" "github.com/fonchain/fonchain-artistinfo/pkg/service" + "google.golang.org/protobuf/types/known/emptypb" "strings" ) @@ -37,13 +38,20 @@ func (a ArtistInfoArtworkLogic) GetArtworkLockDetail(request *artistInfoArtwork. return } res = &artistInfoArtwork.ArtistLockInfo{ - ArtistUid: data.ArtistUid, - ArtworkUid: data.ArtworkUid, - Status: data.Status, - LockTime: data.LockTime, - CreatedAt: data.CreatedAt.Unix(), - UpdatedAt: data.UpdatedAt.Unix(), - DeletedAt: int64(data.DeletedAt), + ArtistUid: data.ArtistUid, + ArtworkUid: data.ArtworkUid, + Status: data.Status, + LockTime: data.LockTime, + CreatedAt: data.CreatedAt.Unix(), + UpdatedAt: data.UpdatedAt.Unix(), + DeletedAt: int64(data.DeletedAt), + BaseAuditStatus: int32(data.BaseAuditStatus), + BaseAuditMark: data.BaseAuditMark, + BaseAuditMark2: data.BaseAuditMark2, + SupplementAuditStatus: int32(data.SupplementAuditStatus), + SupplementAuditMark: data.SupplementAuditMark, + SupplementAuditMark2: data.SupplementAuditMark2, + AuditFlowIndex: int32(data.AuditFlowIndex), } return } @@ -118,23 +126,27 @@ func (a ArtistInfoArtworkLogic) GetArtworkLockHistoryGroup(request *artistInfoAr } for _, artwork := range previewListRes.Data { res.GroupList[groupIndex].DataList = append(res.GroupList[groupIndex].DataList, &artistInfoArtwork.ArtworkPreviewInfo{ - ArtistUuid: artwork.ArtistUuid, - ArtworkName: artwork.ArtworkName, - Length: artwork.Length, - Width: artwork.Width, - Ruler: artwork.Ruler, - CreatedAddress: strings.Split(artwork.CreatedAddress, ","), - ArtistPhoto: artwork.ArtistPhoto, - HdPic: artwork.HdPic, - ArtworkUid: artwork.ArtworkUid, - CreatedDate: artwork.CreateDate, - LockStatus: int32(v.Status), - AuditStatus: v.AuditStatus, - AuditMark: v.AuditMark, - AuditMark2: v.AuditMark2, - CreatedAt: v.CreatedAt, - UpdatedAt: v.UpdatedAt, - DeletedAt: v.DeletedAt, + ArtistUuid: artwork.ArtistUuid, + ArtworkName: artwork.ArtworkName, + Length: artwork.Length, + Width: artwork.Width, + Ruler: artwork.Ruler, + CreatedAddress: strings.Split(artwork.CreatedAddress, ","), + ArtistPhoto: artwork.ArtistPhoto, + HdPic: artwork.HdPic, + ArtworkUid: artwork.ArtworkUid, + CreatedDate: artwork.CreateDate, + LockStatus: int32(v.Status), + BaseAuditStatus: v.BaseAuditStatus, + BaseAuditMark: v.BaseAuditMark, + BaseAuditMark2: v.BaseAuditMark2, + SupplementAuditStatus: v.SupplementAuditStatus, + SupplementAuditMark: v.SupplementAuditMark, + SupplementAuditMark2: v.SupplementAuditMark2, + AuditFlowIndex: int32(v.AuditFlowIndex), + CreatedAt: v.CreatedAt, + UpdatedAt: v.UpdatedAt, + DeletedAt: v.DeletedAt, }) } } @@ -153,20 +165,33 @@ func (ArtistInfoArtworkLogic) DeleteArtworkRecord(req *artistInfoArtwork.DeleteA } func (a ArtistInfoArtworkLogic) UpdateArtworkAuditStatus(request *artistInfoArtwork.UpdateArtworkAuditStatusRequest) (res *artistInfoArtwork.ArtworkCommonNoParams, err error) { - err = dao.UpdateAuditStatus(request.ArtworkUid, request.AuditStatus, request.AuditMark, request.AuditMark2) + if request.ArtworkUid != "" { + err = dao.UpdateAuditStatus(request.ArtworkUid, request.AuditStatus, request.AuditMark, request.AuditMark2, request.FlowIndex) + } else if request.ArtworkUids != nil && len(request.ArtworkUids) > 0 { + err = dao.BatchUpdateAuditStatus(request.ArtworkUids, request.AuditStatus, request.AuditMark, request.AuditMark2, request.FlowIndex) + } else { + return nil, errors.New("画作uid不能为空") + } return } -func (a ArtistInfoArtworkLogic) CheckArtworkEditable(request *artistInfoArtwork.ArtworkUidRequest) (res *artistInfoArtwork.CheckArtworkEditableResponse, err error) { - res = &artistInfoArtwork.CheckArtworkEditableResponse{ - Editable: false, - } + +// CheckArtworkEditable 检查画作的可编辑状态 +// followIndex 2:基本信息审核 3补充信息审核 +func (a ArtistInfoArtworkLogic) CheckArtworkEditable(request *artistInfoArtwork.ArtworkUidRequest, followIndex int) (res *artistInfoArtwork.CheckArtworkEditableResponse, err error) { + res = &artistInfoArtwork.CheckArtworkEditableResponse{} lockDetail, err := dao.GetArtworkLockDetail(request.ArtworkUid) if err != nil { return nil, err } - //如果画作为锁定状态 并且有锁定时间 并且状态不是已通过 - if lockDetail.Status == 2 && lockDetail.LockTime != "" && lockDetail.AuditStatus != 2 { - res.Editable = true + if followIndex == 2 { + res.Editable = lockDetail.BaseEditable() + } else if followIndex == 3 { + res.Editable = lockDetail.SupplementEditable() } return } +func (a ArtistInfoArtworkLogic) GenerateArtworkSupplementInfo(request *artistInfoArtwork.ArtworkUidsRequest) (*emptypb.Empty, error) { + //更新画作流程 + err := dao.GenerateArtworkSupplementInfo(request.ArtworkUids) + return nil, err +} diff --git a/cmd/model/artwork_main_lockRecord.go b/cmd/model/artwork_main_lockRecord.go index 6372c1e..b045d72 100644 --- a/cmd/model/artwork_main_lockRecord.go +++ b/cmd/model/artwork_main_lockRecord.go @@ -1,19 +1,61 @@ package model +type AuditStatus int64 + +const ( + AuditType_preSave AuditStatus = 1 //1= 暂存 + AuditType_Pending AuditStatus = 2 //2= 待审核 + AuditType_Failed AuditStatus = 3 //3= 审核失败 + AuditType_Pass AuditStatus = 4 //4= 审核通过 + AuditType_Supplemented AuditStatus = 5 //5= 待补充 +) + // 此表作为画家宝中的画作中间表的主表(画作主要数据保存在画作微服务中),请悉知 type ArtworkLockRecord struct { Model ArtistUid string `json:"artistUid" gorm:"column:artist_uid;type:varchar(191);comment:画家uid"` ArtworkUid string `json:"artworkUid" gorm:"column:artwork_uid;type:varchar(191);comment:画作uid"` - Status int64 `json:"status" gorm:"column:status;default:1;comment:1=准备/暂存 2=锁定 3=解锁"` + Status int64 `json:"status" gorm:"column:status;default:1;comment:1=准备/暂存 2=锁定 3=解锁"` //这个锁的目的是配合下面的LockTime 对画作进行历史记录查询时的分组 LockTime string `json:"lockTime" gorm:"column:lock_time;comment:锁定时间"` + + //用户锁定后(Status=2)才能进入流程. + AuditFlowIndex int64 `json:"auditFlowIndex" gorm:"column:audit_flow_index;default:1;comment:当前的审批流程 1:无 2:基本信息审核 3补充信息审核"` + // 画作基本信息审批 + // -- 画作上传,审核状态为[暂存1] -- 后台锁定用户,所有Status为1的画作设置为[锁定2],并生成锁定时间 ,审核状态为 [待审核3] -- 后台审批不通过,审核状态改为[不通过3] -- 用户修改画作后,状态再次改为[待审核2]直至审批通过 + BaseAuditStatus AuditStatus `json:"baseAuditStatus" gorm:"column:base_audit_status;default:1;comment:画作基本信息审核状态 1:暂存 2:待审核 3:审核不通过 4:审核通过"` + BaseAuditMark string `json:"baseAuditMark" gorm:"column:base_audit_mark;comment:画作基本信息审核审核备注1"` + BaseAuditMark2 string `json:"baseAuditMark2" gorm:"column:base_audit_mark2;comment:画作基本信息审核审核备注2"` + // ↓ + // 画作基本信息审批通过后,后台点击[生成补充信息按钮] AuditFlowIndex字段变为3 , 进入画作补充信息审批 + // ↓ //画作补充信息审批记录 - AuditStatus int64 `json:"auditStatus" gorm:"column:audit_status;default:1;comment:画作补充信息审核状态 1:待审核/暂存 2:审核通过 3:审核不通过"` - AuditMark string `json:"auditMark" gorm:"column:audit_mark;comment:审核备注"` - AuditMark2 string `json:"auditMark2" gorm:"column:audit_mark2;comment:审核备注2"` + // 后台点击[生成补充信息按钮],审核状态为[待补充5]-- 用户更新补充信息,状态改为[待审核2] -- 后台审批不通过,审核状态改为[不通过3] -- 用户修改画作后,状态再次改为[待审核2]直至审批通过 + SupplementAuditStatus AuditStatus `json:"supplementAuditStatus" gorm:"column:supplement_audit_status;default:0;comment:补充信息审核状态 0无 5待补充 2.待审核 3:审核不通过 4:审核通过"` // 注意没有暂存状态 + SupplementAuditMark string `json:"supplementAuditMark" gorm:"column:supplement_audit_mark;comment:补充信息审核备注1"` + SupplementAuditMark2 string `json:"supplementAuditMark2" gorm:"column:supplement_audit_mark2;comment:补充信息审核备注2"` //UserInfo User `gorm:"foreignKey:ArtistUid;reference:MgmtArtistUid"` } func (a ArtworkLockRecord) TableName() string { return "artwork_lock_record" } + +// 基本信息是否可编辑 +func (a *ArtworkLockRecord) BaseEditable() bool { + if a.Status == 1 { + return true + } + if a.Status == 2 && (a.BaseAuditStatus == AuditType_Failed || a.BaseAuditStatus == AuditType_Pending) { + return true + } + return false +} + +// 补充信息是否可编辑 +func (a *ArtworkLockRecord) SupplementEditable() bool { + //&& a.BaseAuditStatus == AuditType_Pass todo 是否要流程通过基本信息 + if a.Status == 2 && (a.SupplementAuditStatus == AuditType_Supplemented || a.SupplementAuditStatus == AuditType_Failed || a.SupplementAuditStatus == AuditType_Pending) { + return true + } + return false +} diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.go index d110abd..6901ee1 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.go @@ -10,6 +10,7 @@ import ( _ "github.com/envoyproxy/protoc-gen-validate/validate" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + emptypb "google.golang.org/protobuf/types/known/emptypb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" @@ -29,10 +30,12 @@ type Timestamp = timestamppb.Timestamp type ArtworkQueryMode int32 const ( - ArtworkQueryMode_NowPreSaveArtwork ArtworkQueryMode = 0 //当前暂存的画作 - ArtworkQueryMode_NowLockedArtwork ArtworkQueryMode = 1 //当前已锁定的画作 - ArtworkQueryMode_ArtistCanSee ArtworkQueryMode = 2 //画家能看到的画作 - ArtworkQueryMode_AllUnlockArtwork ArtworkQueryMode = 3 //所有已解锁的画作(历史画作) + ArtworkQueryMode_NowPreSaveArtwork ArtworkQueryMode = 0 //当前暂存的画作 + ArtworkQueryMode_NowLockedArtwork ArtworkQueryMode = 1 //当前已锁定的画作 + ArtworkQueryMode_NowPreSaveAndLocked ArtworkQueryMode = 2 //当前暂存的和已锁定的画作 + ArtworkQueryMode_NowAuditFlowOfBase ArtworkQueryMode = 3 //当前处于基本数据审核流程中的画作 + ArtworkQueryMode_NowAuditFlowOfSupplementing ArtworkQueryMode = 4 //当前处于数据补充流程中的画作 + ArtworkQueryMode_AllUnlockArtwork ArtworkQueryMode = 5 //所有已解锁的画作(历史画作) ) // Enum value maps for ArtworkQueryMode. @@ -40,14 +43,18 @@ var ( ArtworkQueryMode_name = map[int32]string{ 0: "NowPreSaveArtwork", 1: "NowLockedArtwork", - 2: "ArtistCanSee", - 3: "AllUnlockArtwork", + 2: "NowPreSaveAndLocked", + 3: "NowAuditFlowOfBase", + 4: "NowAuditFlowOfSupplementing", + 5: "AllUnlockArtwork", } ArtworkQueryMode_value = map[string]int32{ - "NowPreSaveArtwork": 0, - "NowLockedArtwork": 1, - "ArtistCanSee": 2, - "AllUnlockArtwork": 3, + "NowPreSaveArtwork": 0, + "NowLockedArtwork": 1, + "NowPreSaveAndLocked": 2, + "NowAuditFlowOfBase": 3, + "NowAuditFlowOfSupplementing": 4, + "AllUnlockArtwork": 5, } ) @@ -163,6 +170,53 @@ func (x *ArtworkUidRequest) GetArtworkUid() string { return "" } +type ArtworkUidsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtworkUids []string `protobuf:"bytes,1,rep,name=ArtworkUids,proto3" json:"ArtworkUids,omitempty"` //画作uid列表 +} + +func (x *ArtworkUidsRequest) Reset() { + *x = ArtworkUidsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtwork_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtworkUidsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtworkUidsRequest) ProtoMessage() {} + +func (x *ArtworkUidsRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtwork_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArtworkUidsRequest.ProtoReflect.Descriptor instead. +func (*ArtworkUidsRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{2} +} + +func (x *ArtworkUidsRequest) GetArtworkUids() []string { + if x != nil { + return x.ArtworkUids + } + return nil +} + type CreateArtworkLockRecordReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -177,7 +231,7 @@ type CreateArtworkLockRecordReq struct { func (x *CreateArtworkLockRecordReq) Reset() { *x = CreateArtworkLockRecordReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[2] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -190,7 +244,7 @@ func (x *CreateArtworkLockRecordReq) String() string { func (*CreateArtworkLockRecordReq) ProtoMessage() {} func (x *CreateArtworkLockRecordReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[2] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -203,7 +257,7 @@ func (x *CreateArtworkLockRecordReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateArtworkLockRecordReq.ProtoReflect.Descriptor instead. func (*CreateArtworkLockRecordReq) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{2} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{3} } func (x *CreateArtworkLockRecordReq) GetArtistUid() string { @@ -246,7 +300,7 @@ type ArtworkLockActionRequest struct { func (x *ArtworkLockActionRequest) Reset() { *x = ArtworkLockActionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[3] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -259,7 +313,7 @@ func (x *ArtworkLockActionRequest) String() string { func (*ArtworkLockActionRequest) ProtoMessage() {} func (x *ArtworkLockActionRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[3] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -272,7 +326,7 @@ func (x *ArtworkLockActionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkLockActionRequest.ProtoReflect.Descriptor instead. func (*ArtworkLockActionRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{3} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{4} } func (x *ArtworkLockActionRequest) GetArtistUid() string { @@ -302,7 +356,7 @@ type GetArtworkLockRecordsRequest struct { func (x *GetArtworkLockRecordsRequest) Reset() { *x = GetArtworkLockRecordsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[4] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -315,7 +369,7 @@ func (x *GetArtworkLockRecordsRequest) String() string { func (*GetArtworkLockRecordsRequest) ProtoMessage() {} func (x *GetArtworkLockRecordsRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[4] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -328,7 +382,7 @@ func (x *GetArtworkLockRecordsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtworkLockRecordsRequest.ProtoReflect.Descriptor instead. func (*GetArtworkLockRecordsRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{4} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{5} } func (x *GetArtworkLockRecordsRequest) GetArtistUid() string { @@ -357,22 +411,29 @@ type ArtistLockInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ArtistUid string `protobuf:"bytes,1,opt,name=artistUid,proto3" json:"artistUid,omitempty"` - ArtworkUid string `protobuf:"bytes,2,opt,name=artworkUid,proto3" json:"artworkUid,omitempty"` - Status int64 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` - LockTime string `protobuf:"bytes,4,opt,name=lockTime,proto3" json:"lockTime,omitempty"` - AuditStatus int64 `protobuf:"varint,5,opt,name=auditStatus,proto3" json:"auditStatus,omitempty"` - AuditMark string `protobuf:"bytes,6,opt,name=auditMark,proto3" json:"auditMark,omitempty"` - AuditMark2 string `protobuf:"bytes,7,opt,name=auditMark2,proto3" json:"auditMark2,omitempty"` - CreatedAt int64 `protobuf:"varint,15,opt,name=createdAt,proto3" json:"createdAt,omitempty"` - UpdatedAt int64 `protobuf:"varint,16,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` - DeletedAt int64 `protobuf:"varint,17,opt,name=deletedAt,proto3" json:"deletedAt,omitempty"` + ArtistUid string `protobuf:"bytes,1,opt,name=artistUid,proto3" json:"artistUid,omitempty"` + ArtworkUid string `protobuf:"bytes,2,opt,name=artworkUid,proto3" json:"artworkUid,omitempty"` + Status int64 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` + LockTime string `protobuf:"bytes,4,opt,name=lockTime,proto3" json:"lockTime,omitempty"` + CreatedAt int64 `protobuf:"varint,5,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdatedAt int64 `protobuf:"varint,6,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` + DeletedAt int64 `protobuf:"varint,7,opt,name=deletedAt,proto3" json:"deletedAt,omitempty"` + // 基本信息审批状态 + BaseAuditStatus int32 `protobuf:"varint,12,opt,name=baseAuditStatus,proto3" json:"baseAuditStatus,omitempty"` + BaseAuditMark string `protobuf:"bytes,13,opt,name=baseAuditMark,proto3" json:"baseAuditMark,omitempty"` + BaseAuditMark2 string `protobuf:"bytes,14,opt,name=baseAuditMark2,proto3" json:"baseAuditMark2,omitempty"` + // 补充信息审批状态 + SupplementAuditStatus int32 `protobuf:"varint,15,opt,name=supplementAuditStatus,proto3" json:"supplementAuditStatus,omitempty"` + SupplementAuditMark string `protobuf:"bytes,16,opt,name=supplementAuditMark,proto3" json:"supplementAuditMark,omitempty"` + SupplementAuditMark2 string `protobuf:"bytes,17,opt,name=supplementAuditMark2,proto3" json:"supplementAuditMark2,omitempty"` + // 当前审批流位置 + AuditFlowIndex int32 `protobuf:"varint,18,opt,name=auditFlowIndex,proto3" json:"auditFlowIndex,omitempty"` } func (x *ArtistLockInfo) Reset() { *x = ArtistLockInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[5] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -385,7 +446,7 @@ func (x *ArtistLockInfo) String() string { func (*ArtistLockInfo) ProtoMessage() {} func (x *ArtistLockInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[5] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -398,7 +459,7 @@ func (x *ArtistLockInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistLockInfo.ProtoReflect.Descriptor instead. func (*ArtistLockInfo) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{5} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{6} } func (x *ArtistLockInfo) GetArtistUid() string { @@ -429,27 +490,6 @@ func (x *ArtistLockInfo) GetLockTime() string { return "" } -func (x *ArtistLockInfo) GetAuditStatus() int64 { - if x != nil { - return x.AuditStatus - } - return 0 -} - -func (x *ArtistLockInfo) GetAuditMark() string { - if x != nil { - return x.AuditMark - } - return "" -} - -func (x *ArtistLockInfo) GetAuditMark2() string { - if x != nil { - return x.AuditMark2 - } - return "" -} - func (x *ArtistLockInfo) GetCreatedAt() int64 { if x != nil { return x.CreatedAt @@ -471,6 +511,55 @@ func (x *ArtistLockInfo) GetDeletedAt() int64 { return 0 } +func (x *ArtistLockInfo) GetBaseAuditStatus() int32 { + if x != nil { + return x.BaseAuditStatus + } + return 0 +} + +func (x *ArtistLockInfo) GetBaseAuditMark() string { + if x != nil { + return x.BaseAuditMark + } + return "" +} + +func (x *ArtistLockInfo) GetBaseAuditMark2() string { + if x != nil { + return x.BaseAuditMark2 + } + return "" +} + +func (x *ArtistLockInfo) GetSupplementAuditStatus() int32 { + if x != nil { + return x.SupplementAuditStatus + } + return 0 +} + +func (x *ArtistLockInfo) GetSupplementAuditMark() string { + if x != nil { + return x.SupplementAuditMark + } + return "" +} + +func (x *ArtistLockInfo) GetSupplementAuditMark2() string { + if x != nil { + return x.SupplementAuditMark2 + } + return "" +} + +func (x *ArtistLockInfo) GetAuditFlowIndex() int32 { + if x != nil { + return x.AuditFlowIndex + } + return 0 +} + type ArtworkLockList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -482,7 +571,7 @@ type ArtworkLockList struct { func (x *ArtworkLockList) Reset() { *x = ArtworkLockList{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[6] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -495,7 +584,7 @@ func (x *ArtworkLockList) String() string { func (*ArtworkLockList) ProtoMessage() {} func (x *ArtworkLockList) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[6] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -508,7 +597,7 @@ func (x *ArtworkLockList) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkLockList.ProtoReflect.Descriptor instead. func (*ArtworkLockList) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{6} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{7} } func (x *ArtworkLockList) GetData() []*ArtistLockInfo { @@ -529,7 +618,7 @@ type ArtworkUidList struct { func (x *ArtworkUidList) Reset() { *x = ArtworkUidList{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[7] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -542,7 +631,7 @@ func (x *ArtworkUidList) String() string { func (*ArtworkUidList) ProtoMessage() {} func (x *ArtworkUidList) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[7] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -555,7 +644,7 @@ func (x *ArtworkUidList) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkUidList.ProtoReflect.Descriptor instead. func (*ArtworkUidList) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{7} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{8} } func (x *ArtworkUidList) GetArtworkUids() []string { @@ -576,7 +665,7 @@ type DeleteArtworkRecordRequest struct { func (x *DeleteArtworkRecordRequest) Reset() { *x = DeleteArtworkRecordRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[8] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -589,7 +678,7 @@ func (x *DeleteArtworkRecordRequest) String() string { func (*DeleteArtworkRecordRequest) ProtoMessage() {} func (x *DeleteArtworkRecordRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[8] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -602,7 +691,7 @@ func (x *DeleteArtworkRecordRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteArtworkRecordRequest.ProtoReflect.Descriptor instead. func (*DeleteArtworkRecordRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{8} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{9} } func (x *DeleteArtworkRecordRequest) GetArtworkUids() []string { @@ -623,7 +712,7 @@ type GetArtworkLockHistoryRequest struct { func (x *GetArtworkLockHistoryRequest) Reset() { *x = GetArtworkLockHistoryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[9] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -636,7 +725,7 @@ func (x *GetArtworkLockHistoryRequest) String() string { func (*GetArtworkLockHistoryRequest) ProtoMessage() {} func (x *GetArtworkLockHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[9] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -649,7 +738,7 @@ func (x *GetArtworkLockHistoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtworkLockHistoryRequest.ProtoReflect.Descriptor instead. func (*GetArtworkLockHistoryRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{9} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{10} } func (x *GetArtworkLockHistoryRequest) GetArtistUid() string { @@ -670,7 +759,7 @@ type GetArtworkLockDetailRequest struct { func (x *GetArtworkLockDetailRequest) Reset() { *x = GetArtworkLockDetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[10] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -683,7 +772,7 @@ func (x *GetArtworkLockDetailRequest) String() string { func (*GetArtworkLockDetailRequest) ProtoMessage() {} func (x *GetArtworkLockDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[10] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -696,7 +785,7 @@ func (x *GetArtworkLockDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtworkLockDetailRequest.ProtoReflect.Descriptor instead. func (*GetArtworkLockDetailRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{10} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{11} } func (x *GetArtworkLockDetailRequest) GetArtworkUid() string { @@ -723,18 +812,25 @@ type ArtworkPreviewInfo struct { ArtworkUid string `protobuf:"bytes,9,opt,name=artworkUid,proto3" json:"artworkUid,omitempty"` CreatedDate string `protobuf:"bytes,10,opt,name=createdDate,proto3" json:"createdDate,omitempty"` LockStatus int32 `protobuf:"varint,11,opt,name=lockStatus,proto3" json:"lockStatus,omitempty"` - AuditStatus int64 `protobuf:"varint,12,opt,name=auditStatus,proto3" json:"auditStatus,omitempty"` - AuditMark string `protobuf:"bytes,13,opt,name=auditMark,proto3" json:"auditMark,omitempty"` - AuditMark2 string `protobuf:"bytes,14,opt,name=auditMark2,proto3" json:"auditMark2,omitempty"` - CreatedAt int64 `protobuf:"varint,15,opt,name=createdAt,proto3" json:"createdAt,omitempty"` - UpdatedAt int64 `protobuf:"varint,16,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` - DeletedAt int64 `protobuf:"varint,17,opt,name=deletedAt,proto3" json:"deletedAt,omitempty"` + // 基本信息审批状态 + BaseAuditStatus int32 `protobuf:"varint,12,opt,name=baseAuditStatus,proto3" json:"baseAuditStatus,omitempty"` + BaseAuditMark string `protobuf:"bytes,13,opt,name=baseAuditMark,proto3" json:"baseAuditMark,omitempty"` + BaseAuditMark2 string `protobuf:"bytes,14,opt,name=baseAuditMark2,proto3" json:"baseAuditMark2,omitempty"` + // 补充信息审批状态 + SupplementAuditStatus int32 `protobuf:"varint,15,opt,name=supplementAuditStatus,proto3" json:"supplementAuditStatus,omitempty"` + SupplementAuditMark string `protobuf:"bytes,16,opt,name=supplementAuditMark,proto3" json:"supplementAuditMark,omitempty"` + SupplementAuditMark2 string `protobuf:"bytes,17,opt,name=supplementAuditMark2,proto3" json:"supplementAuditMark2,omitempty"` + // 当前审批流位置 + AuditFlowIndex int32 `protobuf:"varint,18,opt,name=auditFlowIndex,proto3" json:"auditFlowIndex,omitempty"` + CreatedAt int64 `protobuf:"varint,19,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdatedAt int64 `protobuf:"varint,20,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` + DeletedAt int64 `protobuf:"varint,21,opt,name=deletedAt,proto3" json:"deletedAt,omitempty"` } func (x *ArtworkPreviewInfo) Reset() { *x = ArtworkPreviewInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[11] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -747,7 +843,7 @@ func (x *ArtworkPreviewInfo) String() string { func (*ArtworkPreviewInfo) ProtoMessage() {} func (x *ArtworkPreviewInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[11] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -760,7 +856,7 @@ func (x *ArtworkPreviewInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkPreviewInfo.ProtoReflect.Descriptor instead. func (*ArtworkPreviewInfo) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{11} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{12} } func (x *ArtworkPreviewInfo) GetArtistUuid() string { @@ -840,27 +936,55 @@ func (x *ArtworkPreviewInfo) GetLockStatus() int32 { return 0 } -func (x *ArtworkPreviewInfo) GetAuditStatus() int64 { +func (x *ArtworkPreviewInfo) GetBaseAuditStatus() int32 { if x != nil { - return x.AuditStatus + return x.BaseAuditStatus } return 0 } -func (x *ArtworkPreviewInfo) GetAuditMark() string { +func (x *ArtworkPreviewInfo) GetBaseAuditMark() string { if x != nil { - return x.AuditMark + return x.BaseAuditMark } return "" } -func (x *ArtworkPreviewInfo) GetAuditMark2() string { +func (x *ArtworkPreviewInfo) GetBaseAuditMark2() string { if x != nil { - return x.AuditMark2 + return x.BaseAuditMark2 } return "" } +func (x *ArtworkPreviewInfo) GetSupplementAuditStatus() int32 { + if x != nil { + return x.SupplementAuditStatus + } + return 0 +} + +func (x *ArtworkPreviewInfo) GetSupplementAuditMark() string { + if x != nil { + return x.SupplementAuditMark + } + return "" +} + +func (x *ArtworkPreviewInfo) GetSupplementAuditMark2() string { + if x != nil { + return x.SupplementAuditMark2 + } + return "" +} + +func (x *ArtworkPreviewInfo) GetAuditFlowIndex() int32 { + if x != nil { + return x.AuditFlowIndex + } + return 0 +} + func (x *ArtworkPreviewInfo) GetCreatedAt() int64 { if x != nil { return x.CreatedAt @@ -893,7 +1017,7 @@ type GetArtworkLockHistoryResponse struct { func (x *GetArtworkLockHistoryResponse) Reset() { *x = GetArtworkLockHistoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[12] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -906,7 +1030,7 @@ func (x *GetArtworkLockHistoryResponse) String() string { func (*GetArtworkLockHistoryResponse) ProtoMessage() {} func (x *GetArtworkLockHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[12] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -919,7 +1043,7 @@ func (x *GetArtworkLockHistoryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtworkLockHistoryResponse.ProtoReflect.Descriptor instead. func (*GetArtworkLockHistoryResponse) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{12} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{13} } func (x *GetArtworkLockHistoryResponse) GetGroupList() []*ArtworkLockRecord { @@ -941,7 +1065,7 @@ type ArtworkLockRecord struct { func (x *ArtworkLockRecord) Reset() { *x = ArtworkLockRecord{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[13] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -954,7 +1078,7 @@ func (x *ArtworkLockRecord) String() string { func (*ArtworkLockRecord) ProtoMessage() {} func (x *ArtworkLockRecord) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[13] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -967,7 +1091,7 @@ func (x *ArtworkLockRecord) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkLockRecord.ProtoReflect.Descriptor instead. func (*ArtworkLockRecord) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{13} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{14} } func (x *ArtworkLockRecord) GetLockGroup() string { @@ -989,16 +1113,18 @@ type UpdateArtworkAuditStatusRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ArtworkUid string `protobuf:"bytes,1,opt,name=artworkUid,proto3" json:"artworkUid,omitempty"` - AuditStatus int64 `protobuf:"varint,5,opt,name=auditStatus,proto3" json:"auditStatus,omitempty"` - AuditMark string `protobuf:"bytes,6,opt,name=auditMark,proto3" json:"auditMark,omitempty"` - AuditMark2 string `protobuf:"bytes,7,opt,name=auditMark2,proto3" json:"auditMark2,omitempty"` + ArtworkUid string `protobuf:"bytes,1,opt,name=artworkUid,proto3" json:"artworkUid,omitempty"` + AuditStatus int64 `protobuf:"varint,5,opt,name=auditStatus,proto3" json:"auditStatus,omitempty"` + AuditMark string `protobuf:"bytes,6,opt,name=auditMark,proto3" json:"auditMark,omitempty"` + AuditMark2 string `protobuf:"bytes,7,opt,name=auditMark2,proto3" json:"auditMark2,omitempty"` + FlowIndex int64 `protobuf:"varint,8,opt,name=flowIndex,proto3" json:"flowIndex,omitempty"` //当前流程 2=基本信息审核 3=补充信息审核 + ArtworkUids []string `protobuf:"bytes,9,rep,name=artworkUids,proto3" json:"artworkUids,omitempty"` //画作批处理 与 artworkUid二选一 } func (x *UpdateArtworkAuditStatusRequest) Reset() { *x = UpdateArtworkAuditStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[14] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1011,7 +1137,7 @@ func (x *UpdateArtworkAuditStatusRequest) String() string { func (*UpdateArtworkAuditStatusRequest) ProtoMessage() {} func (x *UpdateArtworkAuditStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[14] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1024,7 +1150,7 @@ func (x *UpdateArtworkAuditStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateArtworkAuditStatusRequest.ProtoReflect.Descriptor instead. func (*UpdateArtworkAuditStatusRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{14} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{15} } func (x *UpdateArtworkAuditStatusRequest) GetArtworkUid() string { @@ -1055,6 +1181,20 @@ func (x *UpdateArtworkAuditStatusRequest) GetAuditMark2() string { return "" } +func (x *UpdateArtworkAuditStatusRequest) GetFlowIndex() int64 { + if x != nil { + return x.FlowIndex + } + return 0 +} + +func (x *UpdateArtworkAuditStatusRequest) GetArtworkUids() []string { + if x != nil { + return x.ArtworkUids + } + return nil +} + type CheckArtworkEditableResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1066,7 +1206,7 @@ type CheckArtworkEditableResponse struct { func (x *CheckArtworkEditableResponse) Reset() { *x = CheckArtworkEditableResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[15] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1079,7 +1219,7 @@ func (x *CheckArtworkEditableResponse) String() string { func (*CheckArtworkEditableResponse) ProtoMessage() {} func (x *CheckArtworkEditableResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtwork_proto_msgTypes[15] + mi := &file_pb_artistinfoArtwork_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1092,7 +1232,7 @@ func (x *CheckArtworkEditableResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckArtworkEditableResponse.ProtoReflect.Descriptor instead. func (*CheckArtworkEditableResponse) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{15} + return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{16} } func (x *CheckArtworkEditableResponse) GetEditable() bool { @@ -1110,200 +1250,255 @@ var file_pb_artistinfoArtwork_proto_rawDesc = []byte{ 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x17, 0x0a, 0x15, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x22, 0x3f, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, - 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x55, 0x69, 0x64, 0x22, 0xa6, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, - 0x65, 0x71, 0x12, 0x28, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, - 0x01, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0a, - 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x4c, 0x0a, 0x18, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xa6, 0x01, 0x0a, 0x1c, 0x47, - 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x09, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, - 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0xbc, 0x02, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, - 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, - 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, - 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, - 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, - 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, - 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, - 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x41, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, - 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x32, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x55, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, 0x1c, 0x47, 0x65, 0x74, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, + 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x17, 0x0a, 0x15, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, + 0x3f, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, + 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, + 0x22, 0x42, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, + 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x69, 0x64, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, + 0x10, 0x01, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x2a, 0x0a, + 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x4c, 0x0a, + 0x18, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, - 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, - 0x69, 0x64, 0x22, 0x96, 0x04, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, - 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x75, 0x6c, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, - 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x64, 0x50, - 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x12, - 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, - 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, - 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x5c, 0x0a, 0x1d, 0x47, - 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x09, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x11, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1c, - 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3a, 0x0a, 0x08, - 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, - 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x1f, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xa6, 0x01, 0x0a, 0x1c, + 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x09, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x22, 0x98, 0x04, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, + 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, + 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x62, 0x61, + 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, + 0x0d, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, + 0x61, 0x72, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x61, 0x73, + 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x34, 0x0a, 0x15, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, + 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, + 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, + 0x61, 0x72, 0x6b, 0x12, 0x32, 0x0a, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, + 0x41, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x32, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x55, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, + 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x22, + 0xf2, 0x05, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, + 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, + 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x0a, + 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, - 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, - 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x22, 0x3a, 0x0a, 0x1c, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, - 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2a, 0x67, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x11, - 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x65, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x41, - 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, - 0x03, 0x32, 0xc6, 0x06, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x66, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, - 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, - 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, - 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, - 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x22, - 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, - 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, + 0x0a, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, + 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x26, + 0x0a, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x13, + 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, + 0x61, 0x72, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x32, + 0x0a, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x73, 0x75, + 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, + 0x6b, 0x32, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x22, 0x5c, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, + 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, + 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, + 0x74, 0x22, 0xe1, 0x01, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, + 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, + 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3a, 0x0a, 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2a, 0xa7, 0x01, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, + 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x00, 0x12, 0x14, 0x0a, + 0x10, 0x4e, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, + 0x65, 0x41, 0x6e, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, + 0x4e, 0x6f, 0x77, 0x41, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x66, 0x42, 0x61, + 0x73, 0x65, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x4e, 0x6f, 0x77, 0x41, 0x75, 0x64, 0x69, 0x74, + 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x66, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x69, 0x6e, 0x67, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, + 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x05, 0x32, 0x9a, 0x08, 0x0a, 0x11, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x12, 0x66, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, + 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, + 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, + 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x14, 0x47, 0x65, - 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, - 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x18, 0x55, 0x70, 0x64, + 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x62, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, - 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, + 0x00, 0x12, 0x69, 0x0a, 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x22, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, + 0x1d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1319,49 +1514,55 @@ func file_pb_artistinfoArtwork_proto_rawDescGZIP() []byte { } var file_pb_artistinfoArtwork_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_pb_artistinfoArtwork_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_pb_artistinfoArtwork_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_pb_artistinfoArtwork_proto_goTypes = []interface{}{ (ArtworkQueryMode)(0), // 0: artistinfo.ArtworkQueryMode (*ArtworkCommonNoParams)(nil), // 1: artistinfo.ArtworkCommonNoParams (*ArtworkUidRequest)(nil), // 2: artistinfo.ArtworkUidRequest - (*CreateArtworkLockRecordReq)(nil), // 3: artistinfo.CreateArtworkLockRecordReq - (*ArtworkLockActionRequest)(nil), // 4: artistinfo.ArtworkLockActionRequest - (*GetArtworkLockRecordsRequest)(nil), // 5: artistinfo.GetArtworkLockRecordsRequest - (*ArtistLockInfo)(nil), // 6: artistinfo.ArtistLockInfo - (*ArtworkLockList)(nil), // 7: artistinfo.ArtworkLockList - (*ArtworkUidList)(nil), // 8: artistinfo.ArtworkUidList - (*DeleteArtworkRecordRequest)(nil), // 9: artistinfo.DeleteArtworkRecordRequest - (*GetArtworkLockHistoryRequest)(nil), // 10: artistinfo.GetArtworkLockHistoryRequest - (*GetArtworkLockDetailRequest)(nil), // 11: artistinfo.GetArtworkLockDetailRequest - (*ArtworkPreviewInfo)(nil), // 12: artistinfo.ArtworkPreviewInfo - (*GetArtworkLockHistoryResponse)(nil), // 13: artistinfo.GetArtworkLockHistoryResponse - (*ArtworkLockRecord)(nil), // 14: artistinfo.ArtworkLockRecord - (*UpdateArtworkAuditStatusRequest)(nil), // 15: artistinfo.UpdateArtworkAuditStatusRequest - (*CheckArtworkEditableResponse)(nil), // 16: artistinfo.CheckArtworkEditableResponse + (*ArtworkUidsRequest)(nil), // 3: artistinfo.ArtworkUidsRequest + (*CreateArtworkLockRecordReq)(nil), // 4: artistinfo.CreateArtworkLockRecordReq + (*ArtworkLockActionRequest)(nil), // 5: artistinfo.ArtworkLockActionRequest + (*GetArtworkLockRecordsRequest)(nil), // 6: artistinfo.GetArtworkLockRecordsRequest + (*ArtistLockInfo)(nil), // 7: artistinfo.ArtistLockInfo + (*ArtworkLockList)(nil), // 8: artistinfo.ArtworkLockList + (*ArtworkUidList)(nil), // 9: artistinfo.ArtworkUidList + (*DeleteArtworkRecordRequest)(nil), // 10: artistinfo.DeleteArtworkRecordRequest + (*GetArtworkLockHistoryRequest)(nil), // 11: artistinfo.GetArtworkLockHistoryRequest + (*GetArtworkLockDetailRequest)(nil), // 12: artistinfo.GetArtworkLockDetailRequest + (*ArtworkPreviewInfo)(nil), // 13: artistinfo.ArtworkPreviewInfo + (*GetArtworkLockHistoryResponse)(nil), // 14: artistinfo.GetArtworkLockHistoryResponse + (*ArtworkLockRecord)(nil), // 15: artistinfo.ArtworkLockRecord + (*UpdateArtworkAuditStatusRequest)(nil), // 16: artistinfo.UpdateArtworkAuditStatusRequest + (*CheckArtworkEditableResponse)(nil), // 17: artistinfo.CheckArtworkEditableResponse + (*emptypb.Empty)(nil), // 18: google.protobuf.Empty } var file_pb_artistinfoArtwork_proto_depIdxs = []int32{ 0, // 0: artistinfo.GetArtworkLockRecordsRequest.queryType:type_name -> artistinfo.ArtworkQueryMode - 6, // 1: artistinfo.ArtworkLockList.data:type_name -> artistinfo.ArtistLockInfo - 14, // 2: artistinfo.GetArtworkLockHistoryResponse.groupList:type_name -> artistinfo.ArtworkLockRecord - 12, // 3: artistinfo.ArtworkLockRecord.dataList:type_name -> artistinfo.ArtworkPreviewInfo - 3, // 4: artistinfo.ArtistInfoArtwork.CreateArtworkLockRecord:input_type -> artistinfo.CreateArtworkLockRecordReq - 4, // 5: artistinfo.ArtistInfoArtwork.ArtworkLockAction:input_type -> artistinfo.ArtworkLockActionRequest - 5, // 6: artistinfo.ArtistInfoArtwork.GetArtworkLockRecords:input_type -> artistinfo.GetArtworkLockRecordsRequest - 10, // 7: artistinfo.ArtistInfoArtwork.GetArtworkLockHistoryGroup:input_type -> artistinfo.GetArtworkLockHistoryRequest - 9, // 8: artistinfo.ArtistInfoArtwork.DeleteArtworkRecord:input_type -> artistinfo.DeleteArtworkRecordRequest - 11, // 9: artistinfo.ArtistInfoArtwork.GetArtworkLockDetail:input_type -> artistinfo.GetArtworkLockDetailRequest - 15, // 10: artistinfo.ArtistInfoArtwork.UpdateArtworkAuditStatus:input_type -> artistinfo.UpdateArtworkAuditStatusRequest - 2, // 11: artistinfo.ArtistInfoArtwork.CheckArtworkEditable:input_type -> artistinfo.ArtworkUidRequest - 1, // 12: artistinfo.ArtistInfoArtwork.CreateArtworkLockRecord:output_type -> artistinfo.ArtworkCommonNoParams - 1, // 13: artistinfo.ArtistInfoArtwork.ArtworkLockAction:output_type -> artistinfo.ArtworkCommonNoParams - 7, // 14: artistinfo.ArtistInfoArtwork.GetArtworkLockRecords:output_type -> artistinfo.ArtworkLockList - 13, // 15: artistinfo.ArtistInfoArtwork.GetArtworkLockHistoryGroup:output_type -> artistinfo.GetArtworkLockHistoryResponse - 1, // 16: artistinfo.ArtistInfoArtwork.DeleteArtworkRecord:output_type -> artistinfo.ArtworkCommonNoParams - 6, // 17: artistinfo.ArtistInfoArtwork.GetArtworkLockDetail:output_type -> artistinfo.ArtistLockInfo - 1, // 18: artistinfo.ArtistInfoArtwork.UpdateArtworkAuditStatus:output_type -> artistinfo.ArtworkCommonNoParams - 16, // 19: artistinfo.ArtistInfoArtwork.CheckArtworkEditable:output_type -> artistinfo.CheckArtworkEditableResponse - 12, // [12:20] is the sub-list for method output_type - 4, // [4:12] is the sub-list for method input_type + 7, // 1: artistinfo.ArtworkLockList.data:type_name -> artistinfo.ArtistLockInfo + 15, // 2: artistinfo.GetArtworkLockHistoryResponse.groupList:type_name -> artistinfo.ArtworkLockRecord + 13, // 3: artistinfo.ArtworkLockRecord.dataList:type_name -> artistinfo.ArtworkPreviewInfo + 4, // 4: artistinfo.ArtistInfoArtwork.CreateArtworkLockRecord:input_type -> artistinfo.CreateArtworkLockRecordReq + 5, // 5: artistinfo.ArtistInfoArtwork.ArtworkLockAction:input_type -> artistinfo.ArtworkLockActionRequest + 6, // 6: artistinfo.ArtistInfoArtwork.GetArtworkLockRecords:input_type -> artistinfo.GetArtworkLockRecordsRequest + 11, // 7: artistinfo.ArtistInfoArtwork.GetArtworkLockHistoryGroup:input_type -> artistinfo.GetArtworkLockHistoryRequest + 10, // 8: artistinfo.ArtistInfoArtwork.DeleteArtworkRecord:input_type -> artistinfo.DeleteArtworkRecordRequest + 12, // 9: artistinfo.ArtistInfoArtwork.GetArtworkLockDetail:input_type -> artistinfo.GetArtworkLockDetailRequest + 16, // 10: artistinfo.ArtistInfoArtwork.UpdateArtworkAuditStatus:input_type -> artistinfo.UpdateArtworkAuditStatusRequest + 2, // 11: artistinfo.ArtistInfoArtwork.CheckArtworkBaseInfoEditable:input_type -> artistinfo.ArtworkUidRequest + 2, // 12: artistinfo.ArtistInfoArtwork.CheckArtworkSupplementInfoEditable:input_type -> artistinfo.ArtworkUidRequest + 3, // 13: artistinfo.ArtistInfoArtwork.GenerateArtworkSupplementInfo:input_type -> artistinfo.ArtworkUidsRequest + 1, // 14: artistinfo.ArtistInfoArtwork.CreateArtworkLockRecord:output_type -> artistinfo.ArtworkCommonNoParams + 1, // 15: artistinfo.ArtistInfoArtwork.ArtworkLockAction:output_type -> artistinfo.ArtworkCommonNoParams + 8, // 16: artistinfo.ArtistInfoArtwork.GetArtworkLockRecords:output_type -> artistinfo.ArtworkLockList + 14, // 17: artistinfo.ArtistInfoArtwork.GetArtworkLockHistoryGroup:output_type -> artistinfo.GetArtworkLockHistoryResponse + 1, // 18: artistinfo.ArtistInfoArtwork.DeleteArtworkRecord:output_type -> artistinfo.ArtworkCommonNoParams + 7, // 19: artistinfo.ArtistInfoArtwork.GetArtworkLockDetail:output_type -> artistinfo.ArtistLockInfo + 1, // 20: artistinfo.ArtistInfoArtwork.UpdateArtworkAuditStatus:output_type -> artistinfo.ArtworkCommonNoParams + 17, // 21: artistinfo.ArtistInfoArtwork.CheckArtworkBaseInfoEditable:output_type -> artistinfo.CheckArtworkEditableResponse + 17, // 22: artistinfo.ArtistInfoArtwork.CheckArtworkSupplementInfoEditable:output_type -> artistinfo.CheckArtworkEditableResponse + 18, // 23: artistinfo.ArtistInfoArtwork.GenerateArtworkSupplementInfo:output_type -> google.protobuf.Empty + 14, // [14:24] is the sub-list for method output_type + 4, // [4:14] is the sub-list for method input_type 4, // [4:4] is the sub-list for extension type_name 4, // [4:4] is the sub-list for extension extendee 0, // [0:4] is the sub-list for field type_name @@ -1398,7 +1599,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateArtworkLockRecordReq); i { + switch v := v.(*ArtworkUidsRequest); i { case 0: return &v.state case 1: @@ -1410,7 +1611,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkLockActionRequest); i { + switch v := v.(*CreateArtworkLockRecordReq); i { case 0: return &v.state case 1: @@ -1422,7 +1623,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtworkLockRecordsRequest); i { + switch v := v.(*ArtworkLockActionRequest); i { case 0: return &v.state case 1: @@ -1434,7 +1635,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtistLockInfo); i { + switch v := v.(*GetArtworkLockRecordsRequest); i { case 0: return &v.state case 1: @@ -1446,7 +1647,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkLockList); i { + switch v := v.(*ArtistLockInfo); i { case 0: return &v.state case 1: @@ -1458,7 +1659,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkUidList); i { + switch v := v.(*ArtworkLockList); i { case 0: return &v.state case 1: @@ -1470,7 +1671,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteArtworkRecordRequest); i { + switch v := v.(*ArtworkUidList); i { case 0: return &v.state case 1: @@ -1482,7 +1683,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtworkLockHistoryRequest); i { + switch v := v.(*DeleteArtworkRecordRequest); i { case 0: return &v.state case 1: @@ -1494,7 +1695,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtworkLockDetailRequest); i { + switch v := v.(*GetArtworkLockHistoryRequest); i { case 0: return &v.state case 1: @@ -1506,7 +1707,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkPreviewInfo); i { + switch v := v.(*GetArtworkLockDetailRequest); i { case 0: return &v.state case 1: @@ -1518,7 +1719,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtworkLockHistoryResponse); i { + switch v := v.(*ArtworkPreviewInfo); i { case 0: return &v.state case 1: @@ -1530,7 +1731,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkLockRecord); i { + switch v := v.(*GetArtworkLockHistoryResponse); i { case 0: return &v.state case 1: @@ -1542,7 +1743,7 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateArtworkAuditStatusRequest); i { + switch v := v.(*ArtworkLockRecord); i { case 0: return &v.state case 1: @@ -1554,6 +1755,18 @@ func file_pb_artistinfoArtwork_proto_init() { } } file_pb_artistinfoArtwork_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateArtworkAuditStatusRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtwork_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckArtworkEditableResponse); i { case 0: return &v.state @@ -1572,7 +1785,7 @@ func file_pb_artistinfoArtwork_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_artistinfoArtwork_proto_rawDesc, NumEnums: 1, - NumMessages: 16, + NumMessages: 17, NumExtensions: 0, NumServices: 1, }, diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go index 5e970e8..54149a5 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go @@ -241,6 +241,108 @@ var _ interface { ErrorName() string } = ArtworkUidRequestValidationError{} +// Validate checks the field values on ArtworkUidsRequest 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 *ArtworkUidsRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ArtworkUidsRequest 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 +// ArtworkUidsRequestMultiError, or nil if none found. +func (m *ArtworkUidsRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ArtworkUidsRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return ArtworkUidsRequestMultiError(errors) + } + + return nil +} + +// ArtworkUidsRequestMultiError is an error wrapping multiple validation errors +// returned by ArtworkUidsRequest.ValidateAll() if the designated constraints +// aren't met. +type ArtworkUidsRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ArtworkUidsRequestMultiError) 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 ArtworkUidsRequestMultiError) AllErrors() []error { return m } + +// ArtworkUidsRequestValidationError is the validation error returned by +// ArtworkUidsRequest.Validate if the designated constraints aren't met. +type ArtworkUidsRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ArtworkUidsRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ArtworkUidsRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ArtworkUidsRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ArtworkUidsRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ArtworkUidsRequestValidationError) ErrorName() string { + return "ArtworkUidsRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ArtworkUidsRequestValidationError) 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 %sArtworkUidsRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ArtworkUidsRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ArtworkUidsRequestValidationError{} + // Validate checks the field values on CreateArtworkLockRecordReq with the // rules defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. @@ -596,18 +698,26 @@ func (m *ArtistLockInfo) validate(all bool) error { // no validation rules for LockTime - // no validation rules for AuditStatus - - // no validation rules for AuditMark - - // no validation rules for AuditMark2 - // no validation rules for CreatedAt // no validation rules for UpdatedAt // no validation rules for DeletedAt + // no validation rules for BaseAuditStatus + + // no validation rules for BaseAuditMark + + // no validation rules for BaseAuditMark2 + + // no validation rules for SupplementAuditStatus + + // no validation rules for SupplementAuditMark + + // no validation rules for SupplementAuditMark2 + + // no validation rules for AuditFlowIndex + if len(errors) > 0 { return ArtistLockInfoMultiError(errors) } @@ -1274,11 +1384,19 @@ func (m *ArtworkPreviewInfo) validate(all bool) error { // no validation rules for LockStatus - // no validation rules for AuditStatus + // no validation rules for BaseAuditStatus - // no validation rules for AuditMark + // no validation rules for BaseAuditMark - // no validation rules for AuditMark2 + // no validation rules for BaseAuditMark2 + + // no validation rules for SupplementAuditStatus + + // no validation rules for SupplementAuditMark + + // no validation rules for SupplementAuditMark2 + + // no validation rules for AuditFlowIndex // no validation rules for CreatedAt @@ -1671,6 +1789,8 @@ func (m *UpdateArtworkAuditStatusRequest) validate(all bool) error { // no validation rules for AuditMark2 + // no validation rules for FlowIndex + if len(errors) > 0 { return UpdateArtworkAuditStatusRequestMultiError(errors) } diff --git a/pb/artistInfoArtwork/artistinfoArtwork_triple.pb.go b/pb/artistInfoArtwork/artistinfoArtwork_triple.pb.go index 392cdaf..e0e139a 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork_triple.pb.go +++ b/pb/artistInfoArtwork/artistinfoArtwork_triple.pb.go @@ -18,6 +18,7 @@ import ( common "github.com/dubbogo/triple/pkg/common" constant "github.com/dubbogo/triple/pkg/common/constant" triple "github.com/dubbogo/triple/pkg/triple" + emptypb "google.golang.org/protobuf/types/known/emptypb" ) // This is a compile-time assertion to ensure that this generated file @@ -36,7 +37,9 @@ type ArtistInfoArtworkClient interface { DeleteArtworkRecord(ctx context.Context, in *DeleteArtworkRecordRequest, opts ...grpc_go.CallOption) (*ArtworkCommonNoParams, common.ErrorWithAttachment) GetArtworkLockDetail(ctx context.Context, in *GetArtworkLockDetailRequest, opts ...grpc_go.CallOption) (*ArtistLockInfo, common.ErrorWithAttachment) UpdateArtworkAuditStatus(ctx context.Context, in *UpdateArtworkAuditStatusRequest, opts ...grpc_go.CallOption) (*ArtworkCommonNoParams, common.ErrorWithAttachment) - CheckArtworkEditable(ctx context.Context, in *ArtworkUidRequest, opts ...grpc_go.CallOption) (*CheckArtworkEditableResponse, common.ErrorWithAttachment) + CheckArtworkBaseInfoEditable(ctx context.Context, in *ArtworkUidRequest, opts ...grpc_go.CallOption) (*CheckArtworkEditableResponse, common.ErrorWithAttachment) + CheckArtworkSupplementInfoEditable(ctx context.Context, in *ArtworkUidRequest, opts ...grpc_go.CallOption) (*CheckArtworkEditableResponse, common.ErrorWithAttachment) + GenerateArtworkSupplementInfo(ctx context.Context, in *ArtworkUidsRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) } type artistInfoArtworkClient struct { @@ -44,14 +47,16 @@ type artistInfoArtworkClient struct { } type ArtistInfoArtworkClientImpl struct { - CreateArtworkLockRecord func(ctx context.Context, in *CreateArtworkLockRecordReq) (*ArtworkCommonNoParams, error) - ArtworkLockAction func(ctx context.Context, in *ArtworkLockActionRequest) (*ArtworkCommonNoParams, error) - GetArtworkLockRecords func(ctx context.Context, in *GetArtworkLockRecordsRequest) (*ArtworkLockList, error) - GetArtworkLockHistoryGroup func(ctx context.Context, in *GetArtworkLockHistoryRequest) (*GetArtworkLockHistoryResponse, error) - DeleteArtworkRecord func(ctx context.Context, in *DeleteArtworkRecordRequest) (*ArtworkCommonNoParams, error) - GetArtworkLockDetail func(ctx context.Context, in *GetArtworkLockDetailRequest) (*ArtistLockInfo, error) - UpdateArtworkAuditStatus func(ctx context.Context, in *UpdateArtworkAuditStatusRequest) (*ArtworkCommonNoParams, error) - CheckArtworkEditable func(ctx context.Context, in *ArtworkUidRequest) (*CheckArtworkEditableResponse, error) + CreateArtworkLockRecord func(ctx context.Context, in *CreateArtworkLockRecordReq) (*ArtworkCommonNoParams, error) + ArtworkLockAction func(ctx context.Context, in *ArtworkLockActionRequest) (*ArtworkCommonNoParams, error) + GetArtworkLockRecords func(ctx context.Context, in *GetArtworkLockRecordsRequest) (*ArtworkLockList, error) + GetArtworkLockHistoryGroup func(ctx context.Context, in *GetArtworkLockHistoryRequest) (*GetArtworkLockHistoryResponse, error) + DeleteArtworkRecord func(ctx context.Context, in *DeleteArtworkRecordRequest) (*ArtworkCommonNoParams, error) + GetArtworkLockDetail func(ctx context.Context, in *GetArtworkLockDetailRequest) (*ArtistLockInfo, error) + UpdateArtworkAuditStatus func(ctx context.Context, in *UpdateArtworkAuditStatusRequest) (*ArtworkCommonNoParams, error) + CheckArtworkBaseInfoEditable func(ctx context.Context, in *ArtworkUidRequest) (*CheckArtworkEditableResponse, error) + CheckArtworkSupplementInfoEditable func(ctx context.Context, in *ArtworkUidRequest) (*CheckArtworkEditableResponse, error) + GenerateArtworkSupplementInfo func(ctx context.Context, in *ArtworkUidsRequest) (*emptypb.Empty, error) } func (c *ArtistInfoArtworkClientImpl) GetDubboStub(cc *triple.TripleConn) ArtistInfoArtworkClient { @@ -108,10 +113,22 @@ func (c *artistInfoArtworkClient) UpdateArtworkAuditStatus(ctx context.Context, return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateArtworkAuditStatus", in, out) } -func (c *artistInfoArtworkClient) CheckArtworkEditable(ctx context.Context, in *ArtworkUidRequest, opts ...grpc_go.CallOption) (*CheckArtworkEditableResponse, common.ErrorWithAttachment) { +func (c *artistInfoArtworkClient) CheckArtworkBaseInfoEditable(ctx context.Context, in *ArtworkUidRequest, opts ...grpc_go.CallOption) (*CheckArtworkEditableResponse, common.ErrorWithAttachment) { out := new(CheckArtworkEditableResponse) interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CheckArtworkEditable", in, out) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CheckArtworkBaseInfoEditable", in, out) +} + +func (c *artistInfoArtworkClient) CheckArtworkSupplementInfoEditable(ctx context.Context, in *ArtworkUidRequest, opts ...grpc_go.CallOption) (*CheckArtworkEditableResponse, common.ErrorWithAttachment) { + out := new(CheckArtworkEditableResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CheckArtworkSupplementInfoEditable", in, out) +} + +func (c *artistInfoArtworkClient) GenerateArtworkSupplementInfo(ctx context.Context, in *ArtworkUidsRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GenerateArtworkSupplementInfo", in, out) } // ArtistInfoArtworkServer is the server API for ArtistInfoArtwork service. @@ -126,7 +143,9 @@ type ArtistInfoArtworkServer interface { DeleteArtworkRecord(context.Context, *DeleteArtworkRecordRequest) (*ArtworkCommonNoParams, error) GetArtworkLockDetail(context.Context, *GetArtworkLockDetailRequest) (*ArtistLockInfo, error) UpdateArtworkAuditStatus(context.Context, *UpdateArtworkAuditStatusRequest) (*ArtworkCommonNoParams, error) - CheckArtworkEditable(context.Context, *ArtworkUidRequest) (*CheckArtworkEditableResponse, error) + CheckArtworkBaseInfoEditable(context.Context, *ArtworkUidRequest) (*CheckArtworkEditableResponse, error) + CheckArtworkSupplementInfoEditable(context.Context, *ArtworkUidRequest) (*CheckArtworkEditableResponse, error) + GenerateArtworkSupplementInfo(context.Context, *ArtworkUidsRequest) (*emptypb.Empty, error) mustEmbedUnimplementedArtistInfoArtworkServer() } @@ -156,8 +175,14 @@ func (UnimplementedArtistInfoArtworkServer) GetArtworkLockDetail(context.Context func (UnimplementedArtistInfoArtworkServer) UpdateArtworkAuditStatus(context.Context, *UpdateArtworkAuditStatusRequest) (*ArtworkCommonNoParams, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateArtworkAuditStatus not implemented") } -func (UnimplementedArtistInfoArtworkServer) CheckArtworkEditable(context.Context, *ArtworkUidRequest) (*CheckArtworkEditableResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method CheckArtworkEditable not implemented") +func (UnimplementedArtistInfoArtworkServer) CheckArtworkBaseInfoEditable(context.Context, *ArtworkUidRequest) (*CheckArtworkEditableResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CheckArtworkBaseInfoEditable not implemented") +} +func (UnimplementedArtistInfoArtworkServer) CheckArtworkSupplementInfoEditable(context.Context, *ArtworkUidRequest) (*CheckArtworkEditableResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CheckArtworkSupplementInfoEditable not implemented") +} +func (UnimplementedArtistInfoArtworkServer) GenerateArtworkSupplementInfo(context.Context, *ArtworkUidsRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method GenerateArtworkSupplementInfo not implemented") } func (s *UnimplementedArtistInfoArtworkServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl @@ -390,7 +415,7 @@ func _ArtistInfoArtwork_UpdateArtworkAuditStatus_Handler(srv interface{}, ctx co return interceptor(ctx, in, info, handler) } -func _ArtistInfoArtwork_CheckArtworkEditable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { +func _ArtistInfoArtwork_CheckArtworkBaseInfoEditable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(ArtworkUidRequest) if err := dec(in); err != nil { return nil, err @@ -403,7 +428,65 @@ func _ArtistInfoArtwork_CheckArtworkEditable_Handler(srv interface{}, ctx contex for k, v := range md { invAttachment[k] = v } - invo := invocation.NewRPCInvocation("CheckArtworkEditable", args, invAttachment) + invo := invocation.NewRPCInvocation("CheckArtworkBaseInfoEditable", 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 _ArtistInfoArtwork_CheckArtworkSupplementInfoEditable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ArtworkUidRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CheckArtworkSupplementInfoEditable", 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 _ArtistInfoArtwork_GenerateArtworkSupplementInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ArtworkUidsRequest) + 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("GenerateArtworkSupplementInfo", args, invAttachment) if interceptor == nil { result := base.XXX_GetProxyImpl().Invoke(ctx, invo) return result, result.Error() @@ -455,8 +538,16 @@ var ArtistInfoArtwork_ServiceDesc = grpc_go.ServiceDesc{ Handler: _ArtistInfoArtwork_UpdateArtworkAuditStatus_Handler, }, { - MethodName: "CheckArtworkEditable", - Handler: _ArtistInfoArtwork_CheckArtworkEditable_Handler, + MethodName: "CheckArtworkBaseInfoEditable", + Handler: _ArtistInfoArtwork_CheckArtworkBaseInfoEditable_Handler, + }, + { + MethodName: "CheckArtworkSupplementInfoEditable", + Handler: _ArtistInfoArtwork_CheckArtworkSupplementInfoEditable_Handler, + }, + { + MethodName: "GenerateArtworkSupplementInfo", + Handler: _ArtistInfoArtwork_GenerateArtworkSupplementInfo_Handler, }, }, Streams: []grpc_go.StreamDesc{}, diff --git a/pb/artistinfoArtwork.proto b/pb/artistinfoArtwork.proto index 82bdaf9..81ad426 100644 --- a/pb/artistinfoArtwork.proto +++ b/pb/artistinfoArtwork.proto @@ -16,13 +16,18 @@ service ArtistInfoArtwork { rpc DeleteArtworkRecord(DeleteArtworkRecordRequest)returns(ArtworkCommonNoParams){} //删除画作锁记录 rpc GetArtworkLockDetail(GetArtworkLockDetailRequest)returns(ArtistLockInfo){}//查询画作锁定详情 rpc UpdateArtworkAuditStatus(UpdateArtworkAuditStatusRequest)returns(ArtworkCommonNoParams){}//更新画作审批状态 - rpc CheckArtworkEditable(ArtworkUidRequest)returns(CheckArtworkEditableResponse){}//查询画作状态是否可编辑 + rpc CheckArtworkBaseInfoEditable(ArtworkUidRequest)returns(CheckArtworkEditableResponse){}//查询画作基本信息是否可编辑 + rpc CheckArtworkSupplementInfoEditable(ArtworkUidRequest)returns(CheckArtworkEditableResponse){}//查询画作补充信息是否可编辑 + rpc GenerateArtworkSupplementInfo(ArtworkUidsRequest)returns(google.protobuf.Empty){}//查询画作补充信息是否可编辑 } message ArtworkCommonNoParams{} message ArtworkUidRequest{ string ArtworkUid =1 [(validate.rules).message.required = true]; //画作uid } +message ArtworkUidsRequest{ + repeated string ArtworkUids =1 [(validate.rules).message.required = true]; //画作uid列表 +} message CreateArtworkLockRecordReq{ string artistUid=1 [(validate.rules).message.required = true];//画家uid string artworkUid=2 [(validate.rules).message.required = true];//画作uid @@ -37,8 +42,10 @@ message ArtworkLockActionRequest{ enum ArtworkQueryMode { NowPreSaveArtwork = 0; //当前暂存的画作 NowLockedArtwork = 1; //当前已锁定的画作 - ArtistCanSee = 2; //画家能看到的画作 - AllUnlockArtwork = 3; //所有已解锁的画作(历史画作) + NowPreSaveAndLocked=2;//当前暂存的和已锁定的画作 + NowAuditFlowOfBase= 3; //当前处于基本数据审核流程中的画作 + NowAuditFlowOfSupplementing = 4; //当前处于数据补充流程中的画作 + AllUnlockArtwork = 5; //所有已解锁的画作(历史画作) } message GetArtworkLockRecordsRequest{ string artistUid =1 [(validate.rules).message.required = true];//画家uid @@ -51,12 +58,21 @@ message ArtistLockInfo{ string artworkUid=2; int64 status=3; string lockTime=4; - int64 auditStatus=5; - string auditMark=6; - string auditMark2=7; - int64 createdAt=15; - int64 updatedAt=16; - int64 deletedAt=17; + int64 createdAt=5; + int64 updatedAt=6; + int64 deletedAt=7; + + //基本信息审批状态 + int32 baseAuditStatus=12; + string baseAuditMark=13; + string baseAuditMark2=14; + + //补充信息审批状态 + int32 supplementAuditStatus=15; + string supplementAuditMark=16; + string supplementAuditMark2=17; + // 当前审批流位置 + int32 auditFlowIndex =18; } message ArtworkLockList{ @@ -90,12 +106,22 @@ message ArtworkPreviewInfo { string artworkUid=9; string createdDate=10; int32 lockStatus=11; - int64 auditStatus=12; - string auditMark=13; - string auditMark2=14; - int64 createdAt=15; - int64 updatedAt=16; - int64 deletedAt=17; + + //基本信息审批状态 + int32 baseAuditStatus=12; + string baseAuditMark=13; + string baseAuditMark2=14; + + //补充信息审批状态 + int32 supplementAuditStatus=15; + string supplementAuditMark=16; + string supplementAuditMark2=17; + // 当前审批流位置 + int32 auditFlowIndex =18; + + int64 createdAt=19; + int64 updatedAt=20; + int64 deletedAt=21; } message GetArtworkLockHistoryResponse{ repeated ArtworkLockRecord groupList =1; @@ -109,6 +135,8 @@ message UpdateArtworkAuditStatusRequest{ int64 auditStatus=5; string auditMark=6; string auditMark2=7; + int64 flowIndex=8;//当前流程 2=基本信息审核 3=补充信息审核 + repeated string artworkUids=9; //画作批处理 与 artworkUid二选一 } message CheckArtworkEditableResponse{ bool editable =1; From dfadc8446dda839910ce69bd445ba1ff51f7c405 Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Wed, 1 Mar 2023 23:07:00 +0800 Subject: [PATCH 05/11] =?UTF-8?q?feat=EF=BC=9A=20=E6=96=B0=E5=A2=9E@?= =?UTF-8?q?=E7=94=BB=E4=BD=9C@=E5=AE=A1=E6=89=B9@=E6=B5=81=E7=A8=8B@?= =?UTF-8?q?=E7=9A=84@=E9=83=A8=E5=88=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistInfo_user.go | 7 +- pb/artistInfoUser/artistinfoUser.pb.go | 581 +++++++++++++------------ pb/artistinfoUser.proto | 1 + 3 files changed, 302 insertions(+), 287 deletions(-) diff --git a/cmd/internal/dao/artistInfo_user.go b/cmd/internal/dao/artistInfo_user.go index 373c955..5e45f20 100644 --- a/cmd/internal/dao/artistInfo_user.go +++ b/cmd/internal/dao/artistInfo_user.go @@ -596,20 +596,23 @@ func FindUserList(req *artistInfoUser.FindUsersRequest) (rep []*artistInfoUser.U func GetViewUserList(req *artistInfoUser.FindUsersRequest) (resp []model.UserView, total int64, err error) { resp = []model.UserView{} var ( - tx = db.DB.Model(model.UserView{}) + tx = db.DB.Model(model.UserView{}).Order("created_at desc") ) if req.InvitedCode != "" { tx = tx.Where("invited_code = ?", req.InvitedCode) } if req.MgmtArtistUid != "" { tx = tx.Where("mgmt_artist_uid = ?", req.MgmtArtistUid) + } else if req.MgmtArtistUids != nil { + tx = tx.Where("mgmt_artist_uid in ?", req.MgmtArtistUids) } if req.InviterName != "" { - tx = tx.Where("inviter_real_name = ?", req.InviterName) + tx = tx.Where("inviter_real_name LIKE '%?%'", req.InviterName) } if req.IsArtist { tx = tx.Where("mgmt_artist_uid !='' ") } + err = tx.Count(&total).Scopes(db.Pagination(req.Page, req.PageSize)).Find(&resp).Error return } diff --git a/pb/artistInfoUser/artistinfoUser.pb.go b/pb/artistInfoUser/artistinfoUser.pb.go index 66b91a6..5967a71 100644 --- a/pb/artistInfoUser/artistinfoUser.pb.go +++ b/pb/artistInfoUser/artistinfoUser.pb.go @@ -3276,13 +3276,14 @@ type FindUsersRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MgmtArtistUid string `protobuf:"bytes,1,opt,name=mgmtArtistUid,proto3" json:"mgmtArtistUid,omitempty"` - InviterName string `protobuf:"bytes,2,opt,name=inviterName,proto3" json:"inviterName,omitempty"` //邀请人名称 - ArtistRealName string `protobuf:"bytes,3,opt,name=ArtistRealName,proto3" json:"ArtistRealName,omitempty"` //画家真是姓名 - InvitedCode string `protobuf:"bytes,4,opt,name=invitedCode,proto3" json:"invitedCode,omitempty"` //邀请码 - Page int32 `protobuf:"varint,5,opt,name=page,proto3" json:"page,omitempty"` - PageSize int32 `protobuf:"varint,6,opt,name=pageSize,proto3" json:"pageSize,omitempty"` - IsArtist bool `protobuf:"varint,9,opt,name=isArtist,proto3" json:"isArtist,omitempty"` //查询有艺术家uid的数据 + MgmtArtistUid string `protobuf:"bytes,1,opt,name=mgmtArtistUid,proto3" json:"mgmtArtistUid,omitempty"` + InviterName string `protobuf:"bytes,2,opt,name=inviterName,proto3" json:"inviterName,omitempty"` //邀请人名称 + ArtistRealName string `protobuf:"bytes,3,opt,name=ArtistRealName,proto3" json:"ArtistRealName,omitempty"` //画家真是姓名 + InvitedCode string `protobuf:"bytes,4,opt,name=invitedCode,proto3" json:"invitedCode,omitempty"` //邀请码 + Page int32 `protobuf:"varint,5,opt,name=page,proto3" json:"page,omitempty"` + PageSize int32 `protobuf:"varint,6,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + IsArtist bool `protobuf:"varint,9,opt,name=isArtist,proto3" json:"isArtist,omitempty"` //查询有艺术家uid的数据 + MgmtArtistUids []string `protobuf:"bytes,10,rep,name=mgmtArtistUids,proto3" json:"mgmtArtistUids,omitempty"` } func (x *FindUsersRequest) Reset() { @@ -3366,6 +3367,13 @@ func (x *FindUsersRequest) GetIsArtist() bool { return false } +func (x *FindUsersRequest) GetMgmtArtistUids() []string { + if x != nil { + return x.MgmtArtistUids + } + return nil +} + type FindUsersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4721,7 +4729,7 @@ var file_pb_artistinfoUser_proto_rawDesc = []byte{ 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x22, 0xf0, 0x01, 0x0a, + 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x22, 0x98, 0x02, 0x0a, 0x10, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, @@ -4736,284 +4744,287 @@ var file_pb_artistinfoUser_proto_rawDesc = []byte{ 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, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x22, - 0x71, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, - 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x64, 0x4e, 0x75, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x49, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, - 0x06, 0x54, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, - 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x46, - 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x49, 0x64, 0x43, 0x61, - 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x43, 0x61, 0x72, - 0x64, 0x42, 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x49, 0x64, 0x43, - 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x41, 0x67, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x41, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x42, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x42, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, - 0x64, 0x22, 0xba, 0x06, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, - 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, - 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x67, 0x6d, - 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, - 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, - 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, - 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x73, - 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, - 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, - 0x65, 0x6e, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x52, 0x65, 0x61, 0x64, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x69, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, - 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4c, 0x6f, - 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, - 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x49, 0x6d, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x67, 0x12, 0x14, 0x0a, 0x05, - 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, - 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x74, 0x6d, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x19, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x74, 0x6d, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x65, 0x6e, 0x76, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x65, 0x6e, 0x76, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x67, 0x6d, 0x74, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, - 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xf3, - 0x02, 0x0a, 0x15, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, - 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x67, 0x6d, - 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, - 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x61, 0x43, 0x65, 0x72, - 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x61, 0x43, - 0x65, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, 0x61, 0x4a, 0x6f, 0x69, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x61, 0x61, - 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, - 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, - 0x53, 0x68, 0x6f, 0x77, 0x22, 0x3b, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, - 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, - 0x64, 0x22, 0x8c, 0x06, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x16, - 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, - 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, - 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, - 0x74, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, - 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x06, 0x69, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, - 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x12, - 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, - 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x64, 0x4e, 0x75, - 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x73, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x12, - 0x21, 0x0a, 0x0c, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x46, 0x72, 0x6f, - 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, - 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x1a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, - 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, - 0x22, 0x79, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, - 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, - 0x77, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x32, 0xbc, 0x0e, 0x0a, 0x0e, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x12, 0x52, - 0x0a, 0x0c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1f, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, - 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x43, 0x61, - 0x72, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, - 0x00, 0x12, 0x43, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, - 0x52, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, - 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x64, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x10, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x08, 0x55, 0x73, - 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, - 0x22, 0x00, 0x12, 0x55, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, - 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0c, 0x55, 0x6e, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4c, 0x0a, - 0x0a, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1d, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, - 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x09, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x18, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, - 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4f, - 0x0a, 0x0c, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1f, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, - 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x3f, 0x0a, 0x08, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, - 0x12, 0x4a, 0x0a, 0x09, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x11, - 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, - 0x77, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, - 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, - 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x2e, 0x61, 0x72, 0x74, + 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x12, + 0x26, 0x0a, 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x73, 0x22, 0x71, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x54, - 0x0a, 0x11, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, - 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, - 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, - 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x50, - 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x0c, 0x52, + 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x49, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x49, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, + 0x0b, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x12, + 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x12, + 0x10, 0x0a, 0x03, 0x41, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x41, 0x67, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x53, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, + 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x22, 0xba, 0x06, 0x0a, 0x08, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, 0x24, + 0x0a, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, + 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x64, + 0x12, 0x34, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x72, 0x65, + 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, + 0x52, 0x65, 0x61, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x69, 0x73, 0x52, 0x65, + 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, + 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, + 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x67, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x49, 0x6d, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x74, + 0x6d, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x74, + 0x6d, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x76, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x76, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x1b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, + 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x1d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xf3, 0x02, 0x0a, 0x15, 0x50, 0x72, 0x65, 0x53, 0x61, + 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6c, + 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x61, 0x61, 0x43, 0x65, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x61, 0x43, 0x65, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x20, + 0x0a, 0x0b, 0x63, 0x61, 0x61, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x61, 0x61, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x68, 0x6f, 0x77, 0x22, 0x3b, 0x0a, 0x1b, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, + 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x22, 0x8c, 0x06, 0x0a, 0x08, 0x55, 0x73, + 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x61, + 0x63, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, + 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, + 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, + 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x64, + 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x64, + 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x69, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x69, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x63, 0x61, 0x72, + 0x64, 0x42, 0x61, 0x63, 0x6b, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, 0x63, + 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x64, 0x63, 0x61, 0x72, + 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, + 0x64, 0x63, 0x61, 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, + 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, + 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, + 0x6f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x22, 0x79, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x32, 0xbc, 0x0e, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, + 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x07, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4f, + 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x1e, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, + 0x4c, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1d, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x58, 0x0a, + 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0d, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x20, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, + 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, + 0x22, 0x00, 0x12, 0x46, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x1b, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x10, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, + 0x00, 0x12, 0x52, 0x0a, 0x0c, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, + 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x73, 0x67, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x64, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, + 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x76, + 0x0a, 0x18, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0c, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x08, 0x46, 0x69, 0x6e, 0x64, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x09, 0x46, 0x69, 0x6e, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, + 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x44, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, + 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x1a, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x14, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x61, + 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, + 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/pb/artistinfoUser.proto b/pb/artistinfoUser.proto index d6dd671..b639bcb 100644 --- a/pb/artistinfoUser.proto +++ b/pb/artistinfoUser.proto @@ -390,6 +390,7 @@ message FindUsersRequest{ int32 page=5; int32 pageSize=6; bool isArtist=9; //查询有艺术家uid的数据 + repeated string mgmtArtistUids =10; // string Account = 3; // string TelNum = 4; // bool IsLock = 5; From db2140011866d566bdb5d2f3e49d986948566960 Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Thu, 2 Mar 2023 13:32:45 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=94=BB=E5=B1=95?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E7=9B=B8=E5=85=B3=E7=9A=84=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artshowVideo.go | 40 + cmd/internal/dao/artistinfo_artshow.go | 78 ++ cmd/internal/logic/artistinfo_artshowVideo.go | 74 ++ cmd/internal/logic/artistinfo_artwork.go | 2 + cmd/model/artshow_video.go | 27 + cmd/model/artwork_main_lockRecord.go | 34 +- pb/artistinfoArtshow.proto | 68 ++ pb/artistinfoArtshow/artistinfoArtshow.pb.go | 847 +++++++++++++++++ .../artistinfoArtshow.pb.validate.go | 872 ++++++++++++++++++ .../artistinfoArtshow_triple.pb.go | 285 ++++++ pb/artistinfoArtwork.proto | 2 +- pkg/db/init.go | 1 + 12 files changed, 2328 insertions(+), 2 deletions(-) create mode 100644 cmd/internal/controller/artshowVideo.go create mode 100644 cmd/internal/dao/artistinfo_artshow.go create mode 100644 cmd/internal/logic/artistinfo_artshowVideo.go create mode 100644 cmd/model/artshow_video.go create mode 100644 pb/artistinfoArtshow.proto create mode 100644 pb/artistinfoArtshow/artistinfoArtshow.pb.go create mode 100644 pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go create mode 100644 pb/artistinfoArtshow/artistinfoArtshow_triple.pb.go diff --git a/cmd/internal/controller/artshowVideo.go b/cmd/internal/controller/artshowVideo.go new file mode 100644 index 0000000..5e4d670 --- /dev/null +++ b/cmd/internal/controller/artshowVideo.go @@ -0,0 +1,40 @@ +// Package controller ----------------------------- +// @file : artshowVideo.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2023/3/2 10:52 +// ------------------------------------------- +package controller + +import ( + context "context" + "github.com/fonchain/fonchain-artistinfo/pb/artistinfoArtshow" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +// 画展包视频 +var _ artistinfoArtshow.ArtistInfoArtshowServer = new(ArtshowVideo) + +type ArtshowVideo struct { + artistinfoArtshow.UnimplementedArtistInfoArtshowServer +} + +func (a ArtshowVideo) GetArtshowVideoList(ctx context.Context, requst *artistinfoArtshow.GetArtshowVideoListRequst) (*artistinfoArtshow.GetArtshowVideoListResponse, error) { + //TODO implement me + panic("implement me") +} + +func (a ArtshowVideo) AuditArtshowVideo(ctx context.Context, request *artistinfoArtshow.AuditArtshowVideoRequest) (*emptypb.Empty, error) { + //TODO implement me + panic("implement me") +} + +func (a ArtshowVideo) UpdateArtshowVideo(ctx context.Context, request *artistinfoArtshow.UpdateArtshowVideoRequest) (*emptypb.Empty, error) { + //TODO implement me + panic("implement me") +} + +func (a ArtshowVideo) DeletedArtshowVideo(ctx context.Context, request *artistinfoArtshow.DeletedArtshowVideoRequest) (*emptypb.Empty, error) { + //TODO implement me + panic("implement me") +} diff --git a/cmd/internal/dao/artistinfo_artshow.go b/cmd/internal/dao/artistinfo_artshow.go new file mode 100644 index 0000000..6f67009 --- /dev/null +++ b/cmd/internal/dao/artistinfo_artshow.go @@ -0,0 +1,78 @@ +// Package dao ----------------------------- +// @file : artistinfo_artshow.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2023/3/2 12:06 +// ------------------------------------------- +package dao + +import ( + "github.com/fonchain/fonchain-artistinfo/cmd/model" + "github.com/fonchain/fonchain-artistinfo/pb/artistinfoArtshow" + db "github.com/fonchain/fonchain-artistinfo/pkg/db" + "gorm.io/gorm/clause" +) + +var ArtistinfoArtshowVideo = new(artistinfoArtshowVideo) + +type artistinfoArtshowVideo struct{} + +func (a artistinfoArtshowVideo) CreateData(data *model.ArtshowRecord) error { + return db.DB.Create(&data).Error +} + +func (a artistinfoArtshowVideo) UpdateData(data *model.ArtshowRecord) error { + return db.DB.Create(&data).Error + +} + +func (a artistinfoArtshowVideo) DeletedData(id ...int64) (err error) { + if len(id) == 1 { + err = db.DB.Where("id = ?", id[0]).Delete(&model.ArtshowRecord{}).Error + } else if len(id) > 0 { + err = db.DB.Where("id = ?", id).Delete(&model.ArtshowRecord{}).Error + } + return err +} + +func (a artistinfoArtshowVideo) GetData(id int64) (data *model.ArtshowRecord, err error) { + err = db.DB.Where("id = ?", id).First(data).Error + return +} + +func (a artistinfoArtshowVideo) GetDataList(req *artistinfoArtshow.GetArtshowVideoListRequst) (datas []model.ArtshowRecord, total int64, err error) { + datas = []model.ArtshowRecord{} + var tx = db.DB.Model(model.ArtshowRecord{}) + if req.ArtistUid != "" { + tx = tx.Where("artist_uid = ?", req.ArtistUid) + } + if req.LockTime != "" { + tx = tx.Where("lock_time = ?", req.LockTime) + } + if req.ArtistName != "" { + tx = tx.Clauses(clause.Like{ + Column: "artist_name", + Value: "%" + req.ArtistName + "%", + }) + } + //if req.VideoUrl != "" { + // tx = tx.Where("video_url = ?", req.VideoUrl) + //} + if req.AuditStatus != 0 { + tx = tx.Where("audit_status = ?", req.AuditStatus) + } + //if req.AuditMark1 != "" { + // tx = tx.Where("audit_mark1 = ?", req.AuditMark1) + //} + //if req.AuditMark2 != "" { + // tx = tx.Where("audit_mark2 = ?", req.AuditMark2) + //} + err = tx.Count(&total).Scopes(db.Pagination(req.Page, req.PageSize)).Find(&datas).Error + return +} +func (a artistinfoArtshowVideo) Audit(auditStatus model.AuditStatus, mark1, mark2 string, ids ...int64) error { + return db.DB.Model(model.ArtshowRecord{}).Where("id in ?", ids). + Update("audit_status", auditStatus). + Update("audit_mark1", mark1). + Update("audit_mark2", mark2).Error +} diff --git a/cmd/internal/logic/artistinfo_artshowVideo.go b/cmd/internal/logic/artistinfo_artshowVideo.go new file mode 100644 index 0000000..d4911e2 --- /dev/null +++ b/cmd/internal/logic/artistinfo_artshowVideo.go @@ -0,0 +1,74 @@ +// Package logic ----------------------------- +// @file : artistinfo_artshowVideo.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2023/3/2 11:51 +// ------------------------------------------- +package logic + +import ( + "github.com/fonchain/fonchain-artistinfo/cmd/internal/dao" + "github.com/fonchain/fonchain-artistinfo/cmd/model" + "github.com/fonchain/fonchain-artistinfo/pb/artistinfoArtshow" + "google.golang.org/protobuf/types/known/emptypb" +) + +type ArtshowVideoLogic struct{} + +func (a ArtshowVideoLogic) GetArtshowVideoList(request *artistinfoArtshow.GetArtshowVideoListRequst) (res *artistinfoArtshow.GetArtshowVideoListResponse, err error) { + res = &artistinfoArtshow.GetArtshowVideoListResponse{} + datas, total, err := dao.ArtistinfoArtshowVideo.GetDataList(request) + if err != nil { + return nil, err + } + res.Page = &artistinfoArtshow.VideoPagination{ + Page: request.Page, + PageSize: request.PageSize, + Total: total, + } + for _, v := range datas { + res.Data = append(res.Data, &artistinfoArtshow.ArtshowVideoInfo{ + Id: v.ID, + ArtistUid: v.ArtistUid, + LockTime: v.LockTime, + VideoUrl: v.VideoUrl, + AuditStatus: int64(v.AuditStatus), + AuditMark1: v.AuditMark1, + AuditMark2: v.AuditMark2, + CreatedAt: v.CreatedAt.Unix(), + UpdateAt: v.UpdatedAt.Unix(), + DeletedAt: int64(v.DeletedAt), + }) + } + return +} + +func (a ArtshowVideoLogic) AuditArtshowVideo(request *artistinfoArtshow.AuditArtshowVideoRequest) (*emptypb.Empty, error) { + err := dao.ArtistinfoArtshowVideo.Audit(model.AuditStatus(request.AuditStatus), request.AuditMark1, request.AuditMark2, request.ArtshowVideoIds...) + return nil, err +} + +func (a ArtshowVideoLogic) UpdateArtshowVideo(request *artistinfoArtshow.UpdateArtshowVideoRequest) (*emptypb.Empty, error) { + err := dao.ArtistinfoArtshowVideo.UpdateData(&model.ArtshowRecord{ + Model: model.Model{ID: request.Id}, + ArtistUid: request.ArtistUid, + LockTime: request.LockTime, + ArtistName: request.ArtistName, + VideoUrl: request.VideoUrl, + AuditStatus: model.AuditStatus(request.AuditStatus), + AuditMark1: request.AuditMark1, + AuditMark2: request.AuditMark2, + }) + return nil, err +} + +func (a ArtshowVideoLogic) DeletedArtshowVideo(request *artistinfoArtshow.DeletedArtshowVideoRequest) (*emptypb.Empty, error) { + var ids = []int64{} + if request.Id != 0 { + ids = append(ids, request.Id) + } else if len(request.Ids) > 0 { + ids = append(ids, request.Ids...) + } + err := dao.ArtistinfoArtshowVideo.DeletedData(ids...) + return nil, err +} diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index 47a21c0..4240b9d 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -167,6 +167,7 @@ func (ArtistInfoArtworkLogic) DeleteArtworkRecord(req *artistInfoArtwork.DeleteA func (a ArtistInfoArtworkLogic) UpdateArtworkAuditStatus(request *artistInfoArtwork.UpdateArtworkAuditStatusRequest) (res *artistInfoArtwork.ArtworkCommonNoParams, err error) { if request.ArtworkUid != "" { err = dao.UpdateAuditStatus(request.ArtworkUid, request.AuditStatus, request.AuditMark, request.AuditMark2, request.FlowIndex) + } else if request.ArtworkUids != nil && len(request.ArtworkUids) > 0 { err = dao.BatchUpdateAuditStatus(request.ArtworkUids, request.AuditStatus, request.AuditMark, request.AuditMark2, request.FlowIndex) } else { @@ -194,4 +195,5 @@ func (a ArtistInfoArtworkLogic) GenerateArtworkSupplementInfo(request *artistInf //更新画作流程 err := dao.GenerateArtworkSupplementInfo(request.ArtworkUids) return nil, err + } diff --git a/cmd/model/artshow_video.go b/cmd/model/artshow_video.go new file mode 100644 index 0000000..cf0892a --- /dev/null +++ b/cmd/model/artshow_video.go @@ -0,0 +1,27 @@ +// Package model ----------------------------- +// @file : artshow.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2023/3/2 9:32 +// ------------------------------------------- +package model + +type ArtshowRecord struct { + Model + //通过这两个字段弱关联 artwork_lock_record表中对应的画作 + ArtistUid string `json:"artistUid" gorm:"column:artist_uid;comment:"` + LockTime string `json:"lockTime" gorm:"column:lock_time;comment:"` + + //AccountId int64 `json:"accountId" gorm:"column:account_id;comment:"` + ArtistName string `json:"artistName" gorm:"column:artist_name;comment:"` + VideoUrl string `json:"videoUrl" gorm:"column:video_url;comment:"` + + //审批字段 + AuditStatus AuditStatus `json:"auditStatus" gorm:"column:audit_status;comment:审核状态:2= 待审核,3= 审核失败,4= 审核通过,5= 待补充"` + AuditMark1 string `json:"auditMark1" gorm:"column:audit_mark1;comment:审核备注1"` + AuditMark2 string `json:"auditMark2" gorm:"column:audit_mark2;comment:审核备注2"` +} + +func (a ArtshowRecord) TableName() string { + return "artshow_record" +} diff --git a/cmd/model/artwork_main_lockRecord.go b/cmd/model/artwork_main_lockRecord.go index b045d72..9c02a13 100644 --- a/cmd/model/artwork_main_lockRecord.go +++ b/cmd/model/artwork_main_lockRecord.go @@ -10,6 +10,25 @@ const ( AuditType_Supplemented AuditStatus = 5 //5= 待补充 ) +var auditStatusMaper = map[AuditStatus]string{ + AuditType_preSave: "暂存", + AuditType_Pending: "待审核", + AuditType_Failed: "审核失败", + AuditType_Pass: "审核通过", + AuditType_Supplemented: "待补充", +} + +func (a AuditStatus) String() string { + if a == 0 { + return "无" + } + str, ok := auditStatusMaper[a] + if !ok { + return "未知" + } + return str +} + // 此表作为画家宝中的画作中间表的主表(画作主要数据保存在画作微服务中),请悉知 type ArtworkLockRecord struct { Model @@ -36,10 +55,23 @@ type ArtworkLockRecord struct { //UserInfo User `gorm:"foreignKey:ArtistUid;reference:MgmtArtistUid"` } -func (a ArtworkLockRecord) TableName() string { +func (a *ArtworkLockRecord) TableName() string { return "artwork_lock_record" } +//func (a *ArtworkLockRecord) BeforeUpdate(tx *gorm.DB) (err error) { +// var thisData ArtworkLockRecord +// tx.Where("artwork_uid = ?", a.ArtworkUid).First(&thisData) +// //如果是审核状态不通过的情况下更新画作信息,则自动变为待审核 +// if thisData.BaseAuditStatus == 3 && a.BaseAuditStatus == 0 && a.SupplementAuditStatus == 0 { +// a.BaseAuditStatus = 2 +// } +// if thisData.SupplementAuditStatus == 3 && a.BaseAuditStatus == 0 && a.SupplementAuditStatus == 0 { +// a.SupplementAuditStatus = 2 +// } +// return +//} + // 基本信息是否可编辑 func (a *ArtworkLockRecord) BaseEditable() bool { if a.Status == 1 { diff --git a/pb/artistinfoArtshow.proto b/pb/artistinfoArtshow.proto new file mode 100644 index 0000000..cd1d707 --- /dev/null +++ b/pb/artistinfoArtshow.proto @@ -0,0 +1,68 @@ +syntax = "proto3"; +package artistinfo; +option go_package = "./;artistinfoArtshow"; + +//import "validate.proto"; +import public "google/protobuf/timestamp.proto"; +import "google/protobuf/empty.proto"; //使用 google.protobuf.Empty + +// protoc -I . -I ./pb --proto_path=. --go_out=./pb/artistinfoArtshow --go-triple_out=./pb/artistinfoArtshow --validate_out="lang=go:./pb/artistinfoArtshow" ./pb/artistinfoArtshow.proto +service ArtistInfoArtshow { + //画展视频 + rpc GetArtshowVideoList(GetArtshowVideoListRequst)returns(GetArtshowVideoListResponse){}//获取画展视频列表 + rpc AuditArtshowVideo(AuditArtshowVideoRequest)returns(google.protobuf.Empty){} //审批画展视频 + rpc UpdateArtshowVideo(UpdateArtshowVideoRequest)returns(google.protobuf.Empty){} //更新或创建画展视频 + rpc DeletedArtshowVideo(DeletedArtshowVideoRequest)returns(google.protobuf.Empty){} //删除画展视频 +} + +message videoPagination{ + int64 page =1; + int64 pageSize=2; + int64 total=3; +} +message GetArtshowVideoListRequst{ + int64 page =1; + int64 pageSize =2; + string artistName =3; + string artistUid =4; + string lockTime=5; + int64 auditStatus=6; +} +message ArtshowVideoInfo { + int64 id =1; + string artistUid =2; + string lockTime =3; + string videoUrl =4; + int64 auditStatus =5; + string auditMark1 =6; + string auditMark2 =7; + int64 createdAt=8; + int64 updateAt=9; + int64 deletedAt=10; +} +message GetArtshowVideoListResponse{ + repeated ArtshowVideoInfo data =1; + videoPagination page =2; +} + +message AuditArtshowVideoRequest { + repeated int64 artshowVideoIds =1; + int64 auditStatus =5; + string auditMark1 =6; + string auditMark2 =7; +} + +message UpdateArtshowVideoRequest { + int64 Id =1; + string artistUid =2; + string lockTime =3; + string videoUrl =4; + int64 auditStatus =5; + string auditMark1 =6; + string auditMark2 =7; + string artistName =8; +} +message DeletedArtshowVideoRequest{ + int64 Id=1; //单个删除 + repeated int64 Ids =2; //批量删除 +} \ No newline at end of file diff --git a/pb/artistinfoArtshow/artistinfoArtshow.pb.go b/pb/artistinfoArtshow/artistinfoArtshow.pb.go new file mode 100644 index 0000000..8fee0e8 --- /dev/null +++ b/pb/artistinfoArtshow/artistinfoArtshow.pb.go @@ -0,0 +1,847 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v4.22.0--rc2 +// source: pb/artistinfoArtshow.proto + +package artistinfoArtshow + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + emptypb "google.golang.org/protobuf/types/known/emptypb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Symbols defined in public import of google/protobuf/timestamp.proto. + +type Timestamp = timestamppb.Timestamp + +type VideoPagination struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page int64 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int64 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + Total int64 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"` +} + +func (x *VideoPagination) Reset() { + *x = VideoPagination{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VideoPagination) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VideoPagination) ProtoMessage() {} + +func (x *VideoPagination) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VideoPagination.ProtoReflect.Descriptor instead. +func (*VideoPagination) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{0} +} + +func (x *VideoPagination) GetPage() int64 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *VideoPagination) GetPageSize() int64 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *VideoPagination) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +type GetArtshowVideoListRequst struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page int64 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int64 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName,omitempty"` + ArtistUid string `protobuf:"bytes,4,opt,name=artistUid,proto3" json:"artistUid,omitempty"` + LockTime string `protobuf:"bytes,5,opt,name=lockTime,proto3" json:"lockTime,omitempty"` + AuditStatus int64 `protobuf:"varint,6,opt,name=auditStatus,proto3" json:"auditStatus,omitempty"` +} + +func (x *GetArtshowVideoListRequst) Reset() { + *x = GetArtshowVideoListRequst{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetArtshowVideoListRequst) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetArtshowVideoListRequst) ProtoMessage() {} + +func (x *GetArtshowVideoListRequst) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetArtshowVideoListRequst.ProtoReflect.Descriptor instead. +func (*GetArtshowVideoListRequst) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{1} +} + +func (x *GetArtshowVideoListRequst) GetPage() int64 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetArtshowVideoListRequst) GetPageSize() int64 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *GetArtshowVideoListRequst) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *GetArtshowVideoListRequst) GetArtistUid() string { + if x != nil { + return x.ArtistUid + } + return "" +} + +func (x *GetArtshowVideoListRequst) GetLockTime() string { + if x != nil { + return x.LockTime + } + return "" +} + +func (x *GetArtshowVideoListRequst) GetAuditStatus() int64 { + if x != nil { + return x.AuditStatus + } + return 0 +} + +type ArtshowVideoInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + ArtistUid string `protobuf:"bytes,2,opt,name=artistUid,proto3" json:"artistUid,omitempty"` + LockTime string `protobuf:"bytes,3,opt,name=lockTime,proto3" json:"lockTime,omitempty"` + VideoUrl string `protobuf:"bytes,4,opt,name=videoUrl,proto3" json:"videoUrl,omitempty"` + AuditStatus int64 `protobuf:"varint,5,opt,name=auditStatus,proto3" json:"auditStatus,omitempty"` + AuditMark1 string `protobuf:"bytes,6,opt,name=auditMark1,proto3" json:"auditMark1,omitempty"` + AuditMark2 string `protobuf:"bytes,7,opt,name=auditMark2,proto3" json:"auditMark2,omitempty"` + CreatedAt int64 `protobuf:"varint,8,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdateAt int64 `protobuf:"varint,9,opt,name=updateAt,proto3" json:"updateAt,omitempty"` + DeletedAt int64 `protobuf:"varint,10,opt,name=deletedAt,proto3" json:"deletedAt,omitempty"` +} + +func (x *ArtshowVideoInfo) Reset() { + *x = ArtshowVideoInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtshowVideoInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtshowVideoInfo) ProtoMessage() {} + +func (x *ArtshowVideoInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArtshowVideoInfo.ProtoReflect.Descriptor instead. +func (*ArtshowVideoInfo) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{2} +} + +func (x *ArtshowVideoInfo) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ArtshowVideoInfo) GetArtistUid() string { + if x != nil { + return x.ArtistUid + } + return "" +} + +func (x *ArtshowVideoInfo) GetLockTime() string { + if x != nil { + return x.LockTime + } + return "" +} + +func (x *ArtshowVideoInfo) GetVideoUrl() string { + if x != nil { + return x.VideoUrl + } + return "" +} + +func (x *ArtshowVideoInfo) GetAuditStatus() int64 { + if x != nil { + return x.AuditStatus + } + return 0 +} + +func (x *ArtshowVideoInfo) GetAuditMark1() string { + if x != nil { + return x.AuditMark1 + } + return "" +} + +func (x *ArtshowVideoInfo) GetAuditMark2() string { + if x != nil { + return x.AuditMark2 + } + return "" +} + +func (x *ArtshowVideoInfo) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *ArtshowVideoInfo) GetUpdateAt() int64 { + if x != nil { + return x.UpdateAt + } + return 0 +} + +func (x *ArtshowVideoInfo) GetDeletedAt() int64 { + if x != nil { + return x.DeletedAt + } + return 0 +} + +type GetArtshowVideoListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*ArtshowVideoInfo `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + Page *VideoPagination `protobuf:"bytes,2,opt,name=page,proto3" json:"page,omitempty"` +} + +func (x *GetArtshowVideoListResponse) Reset() { + *x = GetArtshowVideoListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetArtshowVideoListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetArtshowVideoListResponse) ProtoMessage() {} + +func (x *GetArtshowVideoListResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetArtshowVideoListResponse.ProtoReflect.Descriptor instead. +func (*GetArtshowVideoListResponse) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{3} +} + +func (x *GetArtshowVideoListResponse) GetData() []*ArtshowVideoInfo { + if x != nil { + return x.Data + } + return nil +} + +func (x *GetArtshowVideoListResponse) GetPage() *VideoPagination { + if x != nil { + return x.Page + } + return nil +} + +type AuditArtshowVideoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtshowVideoIds []int64 `protobuf:"varint,1,rep,packed,name=artshowVideoIds,proto3" json:"artshowVideoIds,omitempty"` + AuditStatus int64 `protobuf:"varint,5,opt,name=auditStatus,proto3" json:"auditStatus,omitempty"` + AuditMark1 string `protobuf:"bytes,6,opt,name=auditMark1,proto3" json:"auditMark1,omitempty"` + AuditMark2 string `protobuf:"bytes,7,opt,name=auditMark2,proto3" json:"auditMark2,omitempty"` +} + +func (x *AuditArtshowVideoRequest) Reset() { + *x = AuditArtshowVideoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuditArtshowVideoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuditArtshowVideoRequest) ProtoMessage() {} + +func (x *AuditArtshowVideoRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AuditArtshowVideoRequest.ProtoReflect.Descriptor instead. +func (*AuditArtshowVideoRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{4} +} + +func (x *AuditArtshowVideoRequest) GetArtshowVideoIds() []int64 { + if x != nil { + return x.ArtshowVideoIds + } + return nil +} + +func (x *AuditArtshowVideoRequest) GetAuditStatus() int64 { + if x != nil { + return x.AuditStatus + } + return 0 +} + +func (x *AuditArtshowVideoRequest) GetAuditMark1() string { + if x != nil { + return x.AuditMark1 + } + return "" +} + +func (x *AuditArtshowVideoRequest) GetAuditMark2() string { + if x != nil { + return x.AuditMark2 + } + return "" +} + +type UpdateArtshowVideoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + ArtistUid string `protobuf:"bytes,2,opt,name=artistUid,proto3" json:"artistUid,omitempty"` + LockTime string `protobuf:"bytes,3,opt,name=lockTime,proto3" json:"lockTime,omitempty"` + VideoUrl string `protobuf:"bytes,4,opt,name=videoUrl,proto3" json:"videoUrl,omitempty"` + AuditStatus int64 `protobuf:"varint,5,opt,name=auditStatus,proto3" json:"auditStatus,omitempty"` + AuditMark1 string `protobuf:"bytes,6,opt,name=auditMark1,proto3" json:"auditMark1,omitempty"` + AuditMark2 string `protobuf:"bytes,7,opt,name=auditMark2,proto3" json:"auditMark2,omitempty"` + ArtistName string `protobuf:"bytes,8,opt,name=artistName,proto3" json:"artistName,omitempty"` +} + +func (x *UpdateArtshowVideoRequest) Reset() { + *x = UpdateArtshowVideoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateArtshowVideoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateArtshowVideoRequest) ProtoMessage() {} + +func (x *UpdateArtshowVideoRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateArtshowVideoRequest.ProtoReflect.Descriptor instead. +func (*UpdateArtshowVideoRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{5} +} + +func (x *UpdateArtshowVideoRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *UpdateArtshowVideoRequest) GetArtistUid() string { + if x != nil { + return x.ArtistUid + } + return "" +} + +func (x *UpdateArtshowVideoRequest) GetLockTime() string { + if x != nil { + return x.LockTime + } + return "" +} + +func (x *UpdateArtshowVideoRequest) GetVideoUrl() string { + if x != nil { + return x.VideoUrl + } + return "" +} + +func (x *UpdateArtshowVideoRequest) GetAuditStatus() int64 { + if x != nil { + return x.AuditStatus + } + return 0 +} + +func (x *UpdateArtshowVideoRequest) GetAuditMark1() string { + if x != nil { + return x.AuditMark1 + } + return "" +} + +func (x *UpdateArtshowVideoRequest) GetAuditMark2() string { + if x != nil { + return x.AuditMark2 + } + return "" +} + +func (x *UpdateArtshowVideoRequest) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +type DeletedArtshowVideoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //单个删除 + Ids []int64 `protobuf:"varint,2,rep,packed,name=Ids,proto3" json:"Ids,omitempty"` //批量删除 +} + +func (x *DeletedArtshowVideoRequest) Reset() { + *x = DeletedArtshowVideoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeletedArtshowVideoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeletedArtshowVideoRequest) ProtoMessage() {} + +func (x *DeletedArtshowVideoRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeletedArtshowVideoRequest.ProtoReflect.Descriptor instead. +func (*DeletedArtshowVideoRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{6} +} + +func (x *DeletedArtshowVideoRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *DeletedArtshowVideoRequest) GetIds() []int64 { + if x != nil { + return x.Ids + } + return nil +} + +var File_pb_artistinfoArtshow_proto protoreflect.FileDescriptor + +var file_pb_artistinfoArtshow_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x70, 0x62, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x41, + 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x57, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, + 0xc7, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x73, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x72, 0x74, 0x69, 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, 0x1c, 0x0a, + 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, + 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xb2, 0x02, 0x0a, 0x10, 0x41, 0x72, + 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, + 0x61, 0x72, 0x6b, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, + 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x74, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x80, + 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, + 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x18, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, + 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, + 0x0a, 0x0f, 0x61, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0f, 0x61, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, + 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x22, 0x83, 0x02, 0x0a, 0x19, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x20, + 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0x3e, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, + 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, 0x73, + 0x32, 0x81, 0x03, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, + 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x67, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, + 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, + 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x53, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, + 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, + 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x13, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x50, 0x00, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_pb_artistinfoArtshow_proto_rawDescOnce sync.Once + file_pb_artistinfoArtshow_proto_rawDescData = file_pb_artistinfoArtshow_proto_rawDesc +) + +func file_pb_artistinfoArtshow_proto_rawDescGZIP() []byte { + file_pb_artistinfoArtshow_proto_rawDescOnce.Do(func() { + file_pb_artistinfoArtshow_proto_rawDescData = protoimpl.X.CompressGZIP(file_pb_artistinfoArtshow_proto_rawDescData) + }) + return file_pb_artistinfoArtshow_proto_rawDescData +} + +var file_pb_artistinfoArtshow_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_pb_artistinfoArtshow_proto_goTypes = []interface{}{ + (*VideoPagination)(nil), // 0: artistinfo.videoPagination + (*GetArtshowVideoListRequst)(nil), // 1: artistinfo.GetArtshowVideoListRequst + (*ArtshowVideoInfo)(nil), // 2: artistinfo.ArtshowVideoInfo + (*GetArtshowVideoListResponse)(nil), // 3: artistinfo.GetArtshowVideoListResponse + (*AuditArtshowVideoRequest)(nil), // 4: artistinfo.AuditArtshowVideoRequest + (*UpdateArtshowVideoRequest)(nil), // 5: artistinfo.UpdateArtshowVideoRequest + (*DeletedArtshowVideoRequest)(nil), // 6: artistinfo.DeletedArtshowVideoRequest + (*emptypb.Empty)(nil), // 7: google.protobuf.Empty +} +var file_pb_artistinfoArtshow_proto_depIdxs = []int32{ + 2, // 0: artistinfo.GetArtshowVideoListResponse.data:type_name -> artistinfo.ArtshowVideoInfo + 0, // 1: artistinfo.GetArtshowVideoListResponse.page:type_name -> artistinfo.videoPagination + 1, // 2: artistinfo.ArtistInfoArtshow.GetArtshowVideoList:input_type -> artistinfo.GetArtshowVideoListRequst + 4, // 3: artistinfo.ArtistInfoArtshow.AuditArtshowVideo:input_type -> artistinfo.AuditArtshowVideoRequest + 5, // 4: artistinfo.ArtistInfoArtshow.UpdateArtshowVideo:input_type -> artistinfo.UpdateArtshowVideoRequest + 6, // 5: artistinfo.ArtistInfoArtshow.DeletedArtshowVideo:input_type -> artistinfo.DeletedArtshowVideoRequest + 3, // 6: artistinfo.ArtistInfoArtshow.GetArtshowVideoList:output_type -> artistinfo.GetArtshowVideoListResponse + 7, // 7: artistinfo.ArtistInfoArtshow.AuditArtshowVideo:output_type -> google.protobuf.Empty + 7, // 8: artistinfo.ArtistInfoArtshow.UpdateArtshowVideo:output_type -> google.protobuf.Empty + 7, // 9: artistinfo.ArtistInfoArtshow.DeletedArtshowVideo:output_type -> google.protobuf.Empty + 6, // [6:10] is the sub-list for method output_type + 2, // [2:6] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_pb_artistinfoArtshow_proto_init() } +func file_pb_artistinfoArtshow_proto_init() { + if File_pb_artistinfoArtshow_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pb_artistinfoArtshow_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VideoPagination); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArtshowVideoListRequst); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtshowVideoInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArtshowVideoListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuditArtshowVideoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateArtshowVideoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeletedArtshowVideoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pb_artistinfoArtshow_proto_rawDesc, + NumEnums: 0, + NumMessages: 7, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_pb_artistinfoArtshow_proto_goTypes, + DependencyIndexes: file_pb_artistinfoArtshow_proto_depIdxs, + MessageInfos: file_pb_artistinfoArtshow_proto_msgTypes, + }.Build() + File_pb_artistinfoArtshow_proto = out.File + file_pb_artistinfoArtshow_proto_rawDesc = nil + file_pb_artistinfoArtshow_proto_goTypes = nil + file_pb_artistinfoArtshow_proto_depIdxs = nil +} diff --git a/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go b/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go new file mode 100644 index 0000000..40a6554 --- /dev/null +++ b/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go @@ -0,0 +1,872 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: pb/artistinfoArtshow.proto + +package artistinfoArtshow + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "sort" + "strings" + "time" + "unicode/utf8" + + "google.golang.org/protobuf/types/known/anypb" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = anypb.Any{} + _ = sort.Sort +) + +// Validate checks the field values on VideoPagination 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 *VideoPagination) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on VideoPagination 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 +// VideoPaginationMultiError, or nil if none found. +func (m *VideoPagination) ValidateAll() error { + return m.validate(true) +} + +func (m *VideoPagination) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Page + + // no validation rules for PageSize + + // no validation rules for Total + + if len(errors) > 0 { + return VideoPaginationMultiError(errors) + } + + return nil +} + +// VideoPaginationMultiError is an error wrapping multiple validation errors +// returned by VideoPagination.ValidateAll() if the designated constraints +// aren't met. +type VideoPaginationMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m VideoPaginationMultiError) 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 VideoPaginationMultiError) AllErrors() []error { return m } + +// VideoPaginationValidationError is the validation error returned by +// VideoPagination.Validate if the designated constraints aren't met. +type VideoPaginationValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e VideoPaginationValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e VideoPaginationValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e VideoPaginationValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e VideoPaginationValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e VideoPaginationValidationError) ErrorName() string { return "VideoPaginationValidationError" } + +// Error satisfies the builtin error interface +func (e VideoPaginationValidationError) 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 %sVideoPagination.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = VideoPaginationValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = VideoPaginationValidationError{} + +// Validate checks the field values on GetArtshowVideoListRequst 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 *GetArtshowVideoListRequst) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetArtshowVideoListRequst 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 +// GetArtshowVideoListRequstMultiError, or nil if none found. +func (m *GetArtshowVideoListRequst) ValidateAll() error { + return m.validate(true) +} + +func (m *GetArtshowVideoListRequst) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Page + + // no validation rules for PageSize + + // no validation rules for ArtistName + + // no validation rules for ArtistUid + + // no validation rules for LockTime + + // no validation rules for AuditStatus + + if len(errors) > 0 { + return GetArtshowVideoListRequstMultiError(errors) + } + + return nil +} + +// GetArtshowVideoListRequstMultiError is an error wrapping multiple validation +// errors returned by GetArtshowVideoListRequst.ValidateAll() if the +// designated constraints aren't met. +type GetArtshowVideoListRequstMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetArtshowVideoListRequstMultiError) 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 GetArtshowVideoListRequstMultiError) AllErrors() []error { return m } + +// GetArtshowVideoListRequstValidationError is the validation error returned by +// GetArtshowVideoListRequst.Validate if the designated constraints aren't met. +type GetArtshowVideoListRequstValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetArtshowVideoListRequstValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetArtshowVideoListRequstValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetArtshowVideoListRequstValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetArtshowVideoListRequstValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetArtshowVideoListRequstValidationError) ErrorName() string { + return "GetArtshowVideoListRequstValidationError" +} + +// Error satisfies the builtin error interface +func (e GetArtshowVideoListRequstValidationError) 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 %sGetArtshowVideoListRequst.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetArtshowVideoListRequstValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetArtshowVideoListRequstValidationError{} + +// Validate checks the field values on ArtshowVideoInfo 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 *ArtshowVideoInfo) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ArtshowVideoInfo 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 +// ArtshowVideoInfoMultiError, or nil if none found. +func (m *ArtshowVideoInfo) ValidateAll() error { + return m.validate(true) +} + +func (m *ArtshowVideoInfo) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for ArtistUid + + // no validation rules for LockTime + + // no validation rules for VideoUrl + + // no validation rules for AuditStatus + + // no validation rules for AuditMark1 + + // no validation rules for AuditMark2 + + // no validation rules for CreatedAt + + // no validation rules for UpdateAt + + // no validation rules for DeletedAt + + if len(errors) > 0 { + return ArtshowVideoInfoMultiError(errors) + } + + return nil +} + +// ArtshowVideoInfoMultiError is an error wrapping multiple validation errors +// returned by ArtshowVideoInfo.ValidateAll() if the designated constraints +// aren't met. +type ArtshowVideoInfoMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ArtshowVideoInfoMultiError) 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 ArtshowVideoInfoMultiError) AllErrors() []error { return m } + +// ArtshowVideoInfoValidationError is the validation error returned by +// ArtshowVideoInfo.Validate if the designated constraints aren't met. +type ArtshowVideoInfoValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ArtshowVideoInfoValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ArtshowVideoInfoValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ArtshowVideoInfoValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ArtshowVideoInfoValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ArtshowVideoInfoValidationError) ErrorName() string { return "ArtshowVideoInfoValidationError" } + +// Error satisfies the builtin error interface +func (e ArtshowVideoInfoValidationError) 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 %sArtshowVideoInfo.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ArtshowVideoInfoValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ArtshowVideoInfoValidationError{} + +// Validate checks the field values on GetArtshowVideoListResponse 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 *GetArtshowVideoListResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetArtshowVideoListResponse 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 +// GetArtshowVideoListResponseMultiError, or nil if none found. +func (m *GetArtshowVideoListResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *GetArtshowVideoListResponse) 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, GetArtshowVideoListResponseValidationError{ + 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, GetArtshowVideoListResponseValidationError{ + 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 GetArtshowVideoListResponseValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if all { + switch v := interface{}(m.GetPage()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, GetArtshowVideoListResponseValidationError{ + field: "Page", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, GetArtshowVideoListResponseValidationError{ + field: "Page", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPage()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GetArtshowVideoListResponseValidationError{ + field: "Page", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return GetArtshowVideoListResponseMultiError(errors) + } + + return nil +} + +// GetArtshowVideoListResponseMultiError is an error wrapping multiple +// validation errors returned by GetArtshowVideoListResponse.ValidateAll() if +// the designated constraints aren't met. +type GetArtshowVideoListResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetArtshowVideoListResponseMultiError) 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 GetArtshowVideoListResponseMultiError) AllErrors() []error { return m } + +// GetArtshowVideoListResponseValidationError is the validation error returned +// by GetArtshowVideoListResponse.Validate if the designated constraints +// aren't met. +type GetArtshowVideoListResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetArtshowVideoListResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetArtshowVideoListResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetArtshowVideoListResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetArtshowVideoListResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetArtshowVideoListResponseValidationError) ErrorName() string { + return "GetArtshowVideoListResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e GetArtshowVideoListResponseValidationError) 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 %sGetArtshowVideoListResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetArtshowVideoListResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetArtshowVideoListResponseValidationError{} + +// Validate checks the field values on AuditArtshowVideoRequest 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 *AuditArtshowVideoRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AuditArtshowVideoRequest 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 +// AuditArtshowVideoRequestMultiError, or nil if none found. +func (m *AuditArtshowVideoRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AuditArtshowVideoRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for AuditStatus + + // no validation rules for AuditMark1 + + // no validation rules for AuditMark2 + + if len(errors) > 0 { + return AuditArtshowVideoRequestMultiError(errors) + } + + return nil +} + +// AuditArtshowVideoRequestMultiError is an error wrapping multiple validation +// errors returned by AuditArtshowVideoRequest.ValidateAll() if the designated +// constraints aren't met. +type AuditArtshowVideoRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AuditArtshowVideoRequestMultiError) 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 AuditArtshowVideoRequestMultiError) AllErrors() []error { return m } + +// AuditArtshowVideoRequestValidationError is the validation error returned by +// AuditArtshowVideoRequest.Validate if the designated constraints aren't met. +type AuditArtshowVideoRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AuditArtshowVideoRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AuditArtshowVideoRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AuditArtshowVideoRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AuditArtshowVideoRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AuditArtshowVideoRequestValidationError) ErrorName() string { + return "AuditArtshowVideoRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AuditArtshowVideoRequestValidationError) 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 %sAuditArtshowVideoRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AuditArtshowVideoRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AuditArtshowVideoRequestValidationError{} + +// Validate checks the field values on UpdateArtshowVideoRequest 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 *UpdateArtshowVideoRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateArtshowVideoRequest 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 +// UpdateArtshowVideoRequestMultiError, or nil if none found. +func (m *UpdateArtshowVideoRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateArtshowVideoRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for ArtistUid + + // no validation rules for LockTime + + // no validation rules for VideoUrl + + // no validation rules for AuditStatus + + // no validation rules for AuditMark1 + + // no validation rules for AuditMark2 + + // no validation rules for ArtistName + + if len(errors) > 0 { + return UpdateArtshowVideoRequestMultiError(errors) + } + + return nil +} + +// UpdateArtshowVideoRequestMultiError is an error wrapping multiple validation +// errors returned by UpdateArtshowVideoRequest.ValidateAll() if the +// designated constraints aren't met. +type UpdateArtshowVideoRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateArtshowVideoRequestMultiError) 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 UpdateArtshowVideoRequestMultiError) AllErrors() []error { return m } + +// UpdateArtshowVideoRequestValidationError is the validation error returned by +// UpdateArtshowVideoRequest.Validate if the designated constraints aren't met. +type UpdateArtshowVideoRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateArtshowVideoRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateArtshowVideoRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateArtshowVideoRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateArtshowVideoRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateArtshowVideoRequestValidationError) ErrorName() string { + return "UpdateArtshowVideoRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e UpdateArtshowVideoRequestValidationError) 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 %sUpdateArtshowVideoRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateArtshowVideoRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateArtshowVideoRequestValidationError{} + +// Validate checks the field values on DeletedArtshowVideoRequest 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 *DeletedArtshowVideoRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeletedArtshowVideoRequest 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 +// DeletedArtshowVideoRequestMultiError, or nil if none found. +func (m *DeletedArtshowVideoRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *DeletedArtshowVideoRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + if len(errors) > 0 { + return DeletedArtshowVideoRequestMultiError(errors) + } + + return nil +} + +// DeletedArtshowVideoRequestMultiError is an error wrapping multiple +// validation errors returned by DeletedArtshowVideoRequest.ValidateAll() if +// the designated constraints aren't met. +type DeletedArtshowVideoRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeletedArtshowVideoRequestMultiError) 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 DeletedArtshowVideoRequestMultiError) AllErrors() []error { return m } + +// DeletedArtshowVideoRequestValidationError is the validation error returned +// by DeletedArtshowVideoRequest.Validate if the designated constraints aren't met. +type DeletedArtshowVideoRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeletedArtshowVideoRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeletedArtshowVideoRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeletedArtshowVideoRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeletedArtshowVideoRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeletedArtshowVideoRequestValidationError) ErrorName() string { + return "DeletedArtshowVideoRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e DeletedArtshowVideoRequestValidationError) 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 %sDeletedArtshowVideoRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeletedArtshowVideoRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeletedArtshowVideoRequestValidationError{} diff --git a/pb/artistinfoArtshow/artistinfoArtshow_triple.pb.go b/pb/artistinfoArtshow/artistinfoArtshow_triple.pb.go new file mode 100644 index 0000000..7694d18 --- /dev/null +++ b/pb/artistinfoArtshow/artistinfoArtshow_triple.pb.go @@ -0,0 +1,285 @@ +// Code generated by protoc-gen-go-triple. DO NOT EDIT. +// versions: +// - protoc-gen-go-triple v1.0.8 +// - protoc v4.22.0--rc2 +// source: pb/artistinfoArtshow.proto + +package artistinfoArtshow + +import ( + context "context" + protocol "dubbo.apache.org/dubbo-go/v3/protocol" + dubbo3 "dubbo.apache.org/dubbo-go/v3/protocol/dubbo3" + invocation "dubbo.apache.org/dubbo-go/v3/protocol/invocation" + grpc_go "github.com/dubbogo/grpc-go" + codes "github.com/dubbogo/grpc-go/codes" + metadata "github.com/dubbogo/grpc-go/metadata" + status "github.com/dubbogo/grpc-go/status" + common "github.com/dubbogo/triple/pkg/common" + constant "github.com/dubbogo/triple/pkg/common/constant" + triple "github.com/dubbogo/triple/pkg/triple" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc_go.SupportPackageIsVersion7 + +// ArtistInfoArtshowClient is the client API for ArtistInfoArtshow service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ArtistInfoArtshowClient interface { + // 画展视频 + GetArtshowVideoList(ctx context.Context, in *GetArtshowVideoListRequst, opts ...grpc_go.CallOption) (*GetArtshowVideoListResponse, common.ErrorWithAttachment) + AuditArtshowVideo(ctx context.Context, in *AuditArtshowVideoRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + UpdateArtshowVideo(ctx context.Context, in *UpdateArtshowVideoRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + DeletedArtshowVideo(ctx context.Context, in *DeletedArtshowVideoRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) +} + +type artistInfoArtshowClient struct { + cc *triple.TripleConn +} + +type ArtistInfoArtshowClientImpl struct { + GetArtshowVideoList func(ctx context.Context, in *GetArtshowVideoListRequst) (*GetArtshowVideoListResponse, error) + AuditArtshowVideo func(ctx context.Context, in *AuditArtshowVideoRequest) (*emptypb.Empty, error) + UpdateArtshowVideo func(ctx context.Context, in *UpdateArtshowVideoRequest) (*emptypb.Empty, error) + DeletedArtshowVideo func(ctx context.Context, in *DeletedArtshowVideoRequest) (*emptypb.Empty, error) +} + +func (c *ArtistInfoArtshowClientImpl) GetDubboStub(cc *triple.TripleConn) ArtistInfoArtshowClient { + return NewArtistInfoArtshowClient(cc) +} + +func (c *ArtistInfoArtshowClientImpl) XXX_InterfaceName() string { + return "artistinfo.ArtistInfoArtshow" +} + +func NewArtistInfoArtshowClient(cc *triple.TripleConn) ArtistInfoArtshowClient { + return &artistInfoArtshowClient{cc} +} + +func (c *artistInfoArtshowClient) GetArtshowVideoList(ctx context.Context, in *GetArtshowVideoListRequst, opts ...grpc_go.CallOption) (*GetArtshowVideoListResponse, common.ErrorWithAttachment) { + out := new(GetArtshowVideoListResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetArtshowVideoList", in, out) +} + +func (c *artistInfoArtshowClient) AuditArtshowVideo(ctx context.Context, in *AuditArtshowVideoRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AuditArtshowVideo", in, out) +} + +func (c *artistInfoArtshowClient) UpdateArtshowVideo(ctx context.Context, in *UpdateArtshowVideoRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateArtshowVideo", in, out) +} + +func (c *artistInfoArtshowClient) DeletedArtshowVideo(ctx context.Context, in *DeletedArtshowVideoRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DeletedArtshowVideo", in, out) +} + +// ArtistInfoArtshowServer is the server API for ArtistInfoArtshow service. +// All implementations must embed UnimplementedArtistInfoArtshowServer +// for forward compatibility +type ArtistInfoArtshowServer interface { + // 画展视频 + GetArtshowVideoList(context.Context, *GetArtshowVideoListRequst) (*GetArtshowVideoListResponse, error) + AuditArtshowVideo(context.Context, *AuditArtshowVideoRequest) (*emptypb.Empty, error) + UpdateArtshowVideo(context.Context, *UpdateArtshowVideoRequest) (*emptypb.Empty, error) + DeletedArtshowVideo(context.Context, *DeletedArtshowVideoRequest) (*emptypb.Empty, error) + mustEmbedUnimplementedArtistInfoArtshowServer() +} + +// UnimplementedArtistInfoArtshowServer must be embedded to have forward compatible implementations. +type UnimplementedArtistInfoArtshowServer struct { + proxyImpl protocol.Invoker +} + +func (UnimplementedArtistInfoArtshowServer) GetArtshowVideoList(context.Context, *GetArtshowVideoListRequst) (*GetArtshowVideoListResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetArtshowVideoList not implemented") +} +func (UnimplementedArtistInfoArtshowServer) AuditArtshowVideo(context.Context, *AuditArtshowVideoRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method AuditArtshowVideo not implemented") +} +func (UnimplementedArtistInfoArtshowServer) UpdateArtshowVideo(context.Context, *UpdateArtshowVideoRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateArtshowVideo not implemented") +} +func (UnimplementedArtistInfoArtshowServer) DeletedArtshowVideo(context.Context, *DeletedArtshowVideoRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeletedArtshowVideo not implemented") +} +func (s *UnimplementedArtistInfoArtshowServer) XXX_SetProxyImpl(impl protocol.Invoker) { + s.proxyImpl = impl +} + +func (s *UnimplementedArtistInfoArtshowServer) XXX_GetProxyImpl() protocol.Invoker { + return s.proxyImpl +} + +func (s *UnimplementedArtistInfoArtshowServer) XXX_ServiceDesc() *grpc_go.ServiceDesc { + return &ArtistInfoArtshow_ServiceDesc +} +func (s *UnimplementedArtistInfoArtshowServer) XXX_InterfaceName() string { + return "artistinfo.ArtistInfoArtshow" +} + +func (UnimplementedArtistInfoArtshowServer) mustEmbedUnimplementedArtistInfoArtshowServer() {} + +// UnsafeArtistInfoArtshowServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ArtistInfoArtshowServer will +// result in compilation errors. +type UnsafeArtistInfoArtshowServer interface { + mustEmbedUnimplementedArtistInfoArtshowServer() +} + +func RegisterArtistInfoArtshowServer(s grpc_go.ServiceRegistrar, srv ArtistInfoArtshowServer) { + s.RegisterService(&ArtistInfoArtshow_ServiceDesc, srv) +} + +func _ArtistInfoArtshow_GetArtshowVideoList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetArtshowVideoListRequst) + 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("GetArtshowVideoList", 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 _ArtistInfoArtshow_AuditArtshowVideo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(AuditArtshowVideoRequest) + 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("AuditArtshowVideo", 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 _ArtistInfoArtshow_UpdateArtshowVideo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateArtshowVideoRequest) + 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("UpdateArtshowVideo", 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 _ArtistInfoArtshow_DeletedArtshowVideo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(DeletedArtshowVideoRequest) + 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("DeletedArtshowVideo", 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) +} + +// ArtistInfoArtshow_ServiceDesc is the grpc_go.ServiceDesc for ArtistInfoArtshow service. +// It's only intended for direct use with grpc_go.RegisterService, +// and not to be introspected or modified (even as a copy) +var ArtistInfoArtshow_ServiceDesc = grpc_go.ServiceDesc{ + ServiceName: "artistinfo.ArtistInfoArtshow", + HandlerType: (*ArtistInfoArtshowServer)(nil), + Methods: []grpc_go.MethodDesc{ + { + MethodName: "GetArtshowVideoList", + Handler: _ArtistInfoArtshow_GetArtshowVideoList_Handler, + }, + { + MethodName: "AuditArtshowVideo", + Handler: _ArtistInfoArtshow_AuditArtshowVideo_Handler, + }, + { + MethodName: "UpdateArtshowVideo", + Handler: _ArtistInfoArtshow_UpdateArtshowVideo_Handler, + }, + { + MethodName: "DeletedArtshowVideo", + Handler: _ArtistInfoArtshow_DeletedArtshowVideo_Handler, + }, + }, + Streams: []grpc_go.StreamDesc{}, + Metadata: "pb/artistinfoArtshow.proto", +} diff --git a/pb/artistinfoArtwork.proto b/pb/artistinfoArtwork.proto index 81ad426..80b636f 100644 --- a/pb/artistinfoArtwork.proto +++ b/pb/artistinfoArtwork.proto @@ -140,4 +140,4 @@ message UpdateArtworkAuditStatusRequest{ } message CheckArtworkEditableResponse{ bool editable =1; -} \ No newline at end of file +} diff --git a/pkg/db/init.go b/pkg/db/init.go index 64fa1f1..ef550a3 100644 --- a/pkg/db/init.go +++ b/pkg/db/init.go @@ -110,6 +110,7 @@ func migration() { &old.ArtworkBatch{}, &model.TempArtistInfo{}, &model.ArtworkLockRecord{}, + &model.ArtshowRecord{}, //画展视频记录 ) if err != nil { fmt.Println("register table fail") From af0bdc6ea98eb1209fd6f08cfb6f0546605f5be2 Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Thu, 2 Mar 2023 17:22:10 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=94=BB=E5=B1=95?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/app.go | 1 + cmd/internal/controller/artshowVideo.go | 34 +- cmd/internal/dao/artistInfo_user.go | 15 +- cmd/internal/dao/artistinfo_artshow.go | 32 +- cmd/internal/dao/artistinfo_artwork.go | 13 +- cmd/internal/logic/artistInfo_user.go | 1 + cmd/internal/logic/artistinfo_artshowVideo.go | 31 +- cmd/internal/logic/artistinfo_artwork.go | 2 +- cmd/model/artshow_video.go | 3 +- cmd/model/user.go | 6 +- cmd/model/user_view.go | 4 +- conf/dubbogo.yaml | 3 + pb/artistInfoArtwork/artistinfoArtwork.pb.go | 450 +++++------ .../artistinfoArtwork.pb.validate.go | 2 + pb/artistInfoUser/artistinfoUser.pb.go | 744 +++++++++--------- pb/artistinfoArtshow.proto | 17 +- pb/artistinfoArtshow/artistinfoArtshow.pb.go | 427 +++++++--- .../artistinfoArtshow.pb.validate.go | 253 +++++- .../artistinfoArtshow_triple.pb.go | 143 +++- pb/artistinfoArtwork.proto | 3 +- pb/artistinfoUser.proto | 11 +- 21 files changed, 1468 insertions(+), 727 deletions(-) diff --git a/cmd/app.go b/cmd/app.go index ce917a7..fbe8248 100644 --- a/cmd/app.go +++ b/cmd/app.go @@ -18,6 +18,7 @@ func main() { fmt.Println("第一处") config.SetProviderService(&controller.ArtistInfoUserProvider{}) config.SetProviderService(&controller.ArtistInfoArtworkProvider{}) + config.SetProviderService(&controller.ArtistInfoArtshowProvider{}) //config.SetProviderService(&controller.ContractProvider{}) //config.SetProviderService(&controller.ArtWorkProvider{}) //config.SetProviderService(&controller.SupplyProvider{}) diff --git a/cmd/internal/controller/artshowVideo.go b/cmd/internal/controller/artshowVideo.go index 5e4d670..6030520 100644 --- a/cmd/internal/controller/artshowVideo.go +++ b/cmd/internal/controller/artshowVideo.go @@ -8,33 +8,39 @@ package controller import ( context "context" + "github.com/fonchain/fonchain-artistinfo/cmd/internal/logic" "github.com/fonchain/fonchain-artistinfo/pb/artistinfoArtshow" emptypb "google.golang.org/protobuf/types/known/emptypb" ) // 画展包视频 -var _ artistinfoArtshow.ArtistInfoArtshowServer = new(ArtshowVideo) +var _ artistinfoArtshow.ArtistInfoArtshowServer = new(ArtistInfoArtshowProvider) -type ArtshowVideo struct { +type ArtistInfoArtshowProvider struct { artistinfoArtshow.UnimplementedArtistInfoArtshowServer + logic logic.ArtshowVideoLogic } -func (a ArtshowVideo) GetArtshowVideoList(ctx context.Context, requst *artistinfoArtshow.GetArtshowVideoListRequst) (*artistinfoArtshow.GetArtshowVideoListResponse, error) { - //TODO implement me - panic("implement me") +func (a ArtistInfoArtshowProvider) BatchCreateArtshowVideo(ctx context.Context, request *artistinfoArtshow.BatchCreateArtshowVideoRequest) (*emptypb.Empty, error) { + return nil, a.logic.BatchCreateArtshowVideo(request) } -func (a ArtshowVideo) AuditArtshowVideo(ctx context.Context, request *artistinfoArtshow.AuditArtshowVideoRequest) (*emptypb.Empty, error) { - //TODO implement me - panic("implement me") +func (a ArtistInfoArtshowProvider) CreateArtshowVideo(ctx context.Context, info *artistinfoArtshow.ArtshowVideoInfo) (*emptypb.Empty, error) { + return nil, a.logic.CreateArtshowVideo(info) } -func (a ArtshowVideo) UpdateArtshowVideo(ctx context.Context, request *artistinfoArtshow.UpdateArtshowVideoRequest) (*emptypb.Empty, error) { - //TODO implement me - panic("implement me") +func (a ArtistInfoArtshowProvider) GetArtshowVideoList(ctx context.Context, requst *artistinfoArtshow.GetArtshowVideoListRequst) (*artistinfoArtshow.GetArtshowVideoListResponse, error) { + return a.logic.GetArtshowVideoList(requst) } -func (a ArtshowVideo) DeletedArtshowVideo(ctx context.Context, request *artistinfoArtshow.DeletedArtshowVideoRequest) (*emptypb.Empty, error) { - //TODO implement me - panic("implement me") +func (a ArtistInfoArtshowProvider) AuditArtshowVideo(ctx context.Context, request *artistinfoArtshow.AuditArtshowVideoRequest) (*emptypb.Empty, error) { + return a.logic.AuditArtshowVideo(request) +} + +func (a ArtistInfoArtshowProvider) UpdateArtshowVideo(ctx context.Context, request *artistinfoArtshow.UpdateArtshowVideoRequest) (*emptypb.Empty, error) { + return a.logic.UpdateArtshowVideo(request) +} + +func (a ArtistInfoArtshowProvider) DeletedArtshowVideo(ctx context.Context, request *artistinfoArtshow.DeletedArtshowVideoRequest) (*emptypb.Empty, error) { + return a.logic.DeletedArtshowVideo(request) } diff --git a/cmd/internal/dao/artistInfo_user.go b/cmd/internal/dao/artistInfo_user.go index 5e45f20..64f5589 100644 --- a/cmd/internal/dao/artistInfo_user.go +++ b/cmd/internal/dao/artistInfo_user.go @@ -14,9 +14,11 @@ import ( db "github.com/fonchain/fonchain-artistinfo/pkg/db" "github.com/fonchain/fonchain-artistinfo/pkg/m" "github.com/fonchain/fonchain-artistinfo/pkg/service" + "github.com/fonchain/fonchain-artistinfo/pkg/util/stime" "go.uber.org/zap" "gorm.io/gorm" "gorm.io/gorm/clause" + "time" ) func RegisterUser(req *artistInfoUser.RegisterUserRequest) (rep *artistInfoUser.RegisterUserRespond, err error) { @@ -290,12 +292,16 @@ func UserLock(req *artistInfoUser.UserLockRequest) (rep *artistInfoUser.UserLock zap.L().Error("get user info err", zap.Error(err)) return } - if err = tx.Update("is_lock", req.IsLock).Error; err != nil { + var now string + if req.IsLock { + now = stime.TimeToString(time.Now(), stime.Format_Normal_YMDhms) + } + if err = tx.Update("is_lock", req.IsLock).Update("latest_lock_time", now).Error; err != nil { zap.L().Error("get user info err", zap.Error(err)) err = errors.New(m.ERROR_SELECT) return nil, err } - + rep.LockTime = now //if !req.IsLock { // var vas model.ExhVideo // vas.UserId = uint(req.Id) @@ -507,6 +513,7 @@ func FindUser(req *artistInfoUser.FindUserRequest) (rep *artistInfoUser.UserInfo HtmlType: data.Htmltype, EnvType: data.Envtype, InviteCode: data.InviteCode, + LatestLockTime: data.LatestLockTime, } return rep, nil @@ -525,6 +532,9 @@ func FindUserList(req *artistInfoUser.FindUsersRequest) (rep []*artistInfoUser.U if req.MgmtArtistUid != "" { tx = tx.Where("mgmt_artist_uid = ?", req.MgmtArtistUid) } + if req.MgmtArtistUids != nil { + tx = tx.Where("mgmt_artist_uid in ?", req.MgmtArtistUids) + } if req.InviterName != "" { tx = tx.Joins("LEFT JOIN real_name rn ON rn.id = sys_user.real_name_id").Clauses(clause.Like{ Column: "rn.name", @@ -588,6 +598,7 @@ func FindUserList(req *artistInfoUser.FindUsersRequest) (rep []*artistInfoUser.U HtmlType: v.Htmltype, EnvType: v.Envtype, InviteCode: v.InviteCode, + LatestLockTime: v.LatestLockTime, }) } return diff --git a/cmd/internal/dao/artistinfo_artshow.go b/cmd/internal/dao/artistinfo_artshow.go index 6f67009..4c49849 100644 --- a/cmd/internal/dao/artistinfo_artshow.go +++ b/cmd/internal/dao/artistinfo_artshow.go @@ -7,9 +7,11 @@ package dao import ( + "errors" "github.com/fonchain/fonchain-artistinfo/cmd/model" "github.com/fonchain/fonchain-artistinfo/pb/artistinfoArtshow" db "github.com/fonchain/fonchain-artistinfo/pkg/db" + "gorm.io/gorm" "gorm.io/gorm/clause" ) @@ -17,8 +19,31 @@ var ArtistinfoArtshowVideo = new(artistinfoArtshowVideo) type artistinfoArtshowVideo struct{} -func (a artistinfoArtshowVideo) CreateData(data *model.ArtshowRecord) error { - return db.DB.Create(&data).Error +func (a artistinfoArtshowVideo) BatchCreateData(datas []model.ArtshowRecord) error { + //return db.DB.Create(&datas).Error + tx := db.DB.Begin() + for _, v := range datas { + err := a.CreateData(&v, tx) + if err != nil { + return err + } + } + tx.Commit() + return nil +} +func (a artistinfoArtshowVideo) CreateData(data *model.ArtshowRecord, tx ...*gorm.DB) error { + var txdb *gorm.DB + if tx != nil { + txdb = tx[0] + } else { + txdb = db.DB + } + var exist = model.ArtshowRecord{} + db.DB.Where("artist_uid = ? AND status = 2", data.ArtistUid).Find(&exist) + if exist.ID != 0 { + return errors.New("数据已存在") + } + return txdb.Create(&data).Error } func (a artistinfoArtshowVideo) UpdateData(data *model.ArtshowRecord) error { @@ -55,6 +80,9 @@ func (a artistinfoArtshowVideo) GetDataList(req *artistinfoArtshow.GetArtshowVid Value: "%" + req.ArtistName + "%", }) } + if req.Status != 0 { + tx = tx.Where("status = ?", req.Status) + } //if req.VideoUrl != "" { // tx = tx.Where("video_url = ?", req.VideoUrl) //} diff --git a/cmd/internal/dao/artistinfo_artwork.go b/cmd/internal/dao/artistinfo_artwork.go index 80e8665..85b4991 100644 --- a/cmd/internal/dao/artistinfo_artwork.go +++ b/cmd/internal/dao/artistinfo_artwork.go @@ -65,7 +65,7 @@ func DeletedArtworkLockRecord(artworkUid ...string) error { } } -func BatchLockArtworks(artistUid string) error { +func BatchLockArtworks(artistUid string, lockTime string) error { var artworkUids []string db.DB.Model(model.ArtworkLockRecord{}). Where("status = 1 AND lock_time=''").Where(" artist_uid = ?", artistUid). @@ -73,9 +73,12 @@ func BatchLockArtworks(artistUid string) error { if artworkUids == nil { return nil } + if lockTime == "" { + lockTime = stime.TimeToString(time.Now(), stime.Format_Normal_YMDhms) + } var updateMap = map[string]any{ "status": 2, - "lock_time": stime.TimeToString(time.Now(), stime.Format_Normal_YMDhms), + "lock_time": lockTime, "base_audit_status": model.AuditType_Pending, //基本数据审批 "audit_flow_index": 2, //进入基本信息审批流程 } @@ -124,8 +127,8 @@ func GetArtworkLockRecords(req *artistInfoArtwork.GetArtworkLockRecordsRequest) tx = tx.Where("status = 2") case artistInfoArtwork.ArtworkQueryMode_NowPreSaveAndLocked: //当前暂存和已锁定的画作(也就是用户端画作管理中的数据) tx = tx.Where("status =1 OR status =2") - case artistInfoArtwork.ArtworkQueryMode_NowAuditFlowOfBase: //当前处于基本信息审批阶段的画作 - tx = tx.Where("status = 2 AND audit_flow_index = 2") + case artistInfoArtwork.ArtworkQueryMode_NowAuditFlowOfBase: //当前处于基本信息审批阶段的画作(包括进入其它流程的画作) + tx = tx.Where("status = 2") // AND audit_flow_index = 2 case artistInfoArtwork.ArtworkQueryMode_NowAuditFlowOfSupplementing: //当前处于补充信息审批阶段的画作 tx = tx.Where("status =2 AND audit_flow_index = 3") case artistInfoArtwork.ArtworkQueryMode_AllUnlockArtwork: //所有已解锁的画作(历史画作) @@ -213,5 +216,5 @@ func GenerateArtworkSupplementInfo(artworkUids []string) error { "audit_flow_index": 3, "supplement_audit_status": 5, } - return db.DB.Where("artwork_uid in ?", artworkUids).Updates(&updateData).Error + return db.DB.Model(model.ArtworkLockRecord{}).Where("artwork_uid in ?", artworkUids).Updates(&updateData).Error } diff --git a/cmd/internal/logic/artistInfo_user.go b/cmd/internal/logic/artistInfo_user.go index 6e9f2f7..6f7c8b3 100644 --- a/cmd/internal/logic/artistInfo_user.go +++ b/cmd/internal/logic/artistInfo_user.go @@ -130,6 +130,7 @@ func (a *ArtistInfoUser) FindUsersUserView(req *artistInfoUser.FindUsersRequest) DeletedAt: v.DeletedAt, UpdatedAt: v.UpdatedAt.Unix(), CreatedAt: v.CreatedAt.Unix(), + LatestLockTime: v.LatestLockTime, }) } if artistUidList != nil { diff --git a/cmd/internal/logic/artistinfo_artshowVideo.go b/cmd/internal/logic/artistinfo_artshowVideo.go index d4911e2..18415b0 100644 --- a/cmd/internal/logic/artistinfo_artshowVideo.go +++ b/cmd/internal/logic/artistinfo_artshowVideo.go @@ -15,6 +15,34 @@ import ( type ArtshowVideoLogic struct{} +func (a ArtshowVideoLogic) BatchCreateArtshowVideo(request *artistinfoArtshow.BatchCreateArtshowVideoRequest) error { + var datas = []model.ArtshowRecord{} + for _, v := range request.Data { + datas = append(datas, model.ArtshowRecord{ + ArtistUid: v.ArtistUid, + LockTime: v.LockTime, + ArtistName: v.ArtistName, + VideoUrl: v.VideoUrl, + AuditStatus: model.AuditStatus(v.AuditStatus), + AuditMark1: v.AuditMark1, + AuditMark2: v.AuditMark2, + Status: v.Status, + }) + } + return dao.ArtistinfoArtshowVideo.BatchCreateData(datas) +} +func (a ArtshowVideoLogic) CreateArtshowVideo(request *artistinfoArtshow.ArtshowVideoInfo) error { + return dao.ArtistinfoArtshowVideo.CreateData(&model.ArtshowRecord{ + ArtistUid: request.ArtistUid, + LockTime: request.LockTime, + ArtistName: request.ArtistName, + VideoUrl: request.VideoUrl, + AuditStatus: model.AuditStatus(request.AuditStatus), + AuditMark1: request.AuditMark1, + AuditMark2: request.AuditMark2, + Status: request.Status, + }) +} func (a ArtshowVideoLogic) GetArtshowVideoList(request *artistinfoArtshow.GetArtshowVideoListRequst) (res *artistinfoArtshow.GetArtshowVideoListResponse, err error) { res = &artistinfoArtshow.GetArtshowVideoListResponse{} datas, total, err := dao.ArtistinfoArtshowVideo.GetDataList(request) @@ -36,8 +64,9 @@ func (a ArtshowVideoLogic) GetArtshowVideoList(request *artistinfoArtshow.GetArt AuditMark1: v.AuditMark1, AuditMark2: v.AuditMark2, CreatedAt: v.CreatedAt.Unix(), - UpdateAt: v.UpdatedAt.Unix(), + UpdatedAt: v.UpdatedAt.Unix(), DeletedAt: int64(v.DeletedAt), + Status: v.Status, }) } return diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index 4240b9d..9b128be 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -68,7 +68,7 @@ func (ArtistInfoArtworkLogic) CreateArtworkLockRecord(req *artistInfoArtwork.Cre func (ArtistInfoArtworkLogic) ArtworkLockAction(req *artistInfoArtwork.ArtworkLockActionRequest) (res *artistInfoArtwork.ArtworkCommonNoParams, err error) { switch req.Lock { case 2: - err = dao.BatchLockArtworks(req.ArtistUid) + err = dao.BatchLockArtworks(req.ArtistUid, req.LockTime) case 3: err = dao.BatchUnlockArtworks(req.ArtistUid) default: diff --git a/cmd/model/artshow_video.go b/cmd/model/artshow_video.go index cf0892a..fef6829 100644 --- a/cmd/model/artshow_video.go +++ b/cmd/model/artshow_video.go @@ -10,6 +10,7 @@ type ArtshowRecord struct { Model //通过这两个字段弱关联 artwork_lock_record表中对应的画作 ArtistUid string `json:"artistUid" gorm:"column:artist_uid;comment:"` + Status int64 `json:"status" gorm:"column:status;default:1;comment:2=锁定 3=解锁"` //跟随用户的锁定和解锁状态,用于控制数据的展示 LockTime string `json:"lockTime" gorm:"column:lock_time;comment:"` //AccountId int64 `json:"accountId" gorm:"column:account_id;comment:"` @@ -23,5 +24,5 @@ type ArtshowRecord struct { } func (a ArtshowRecord) TableName() string { - return "artshow_record" + return "artshow_video_record" } diff --git a/cmd/model/user.go b/cmd/model/user.go index c943f56..5c2e45f 100644 --- a/cmd/model/user.go +++ b/cmd/model/user.go @@ -24,9 +24,9 @@ type User struct { OpenId string `gorm:"openId"` //用户状态 - IsRead int64 `gorm:"column:is_read;not null;comment:条款阅读状态"` - IsLock bool `gorm:"column:is_lock;not null;comment:画家锁定状态"` - + IsRead int64 `gorm:"column:is_read;not null;comment:条款阅读状态"` + IsLock bool `gorm:"column:is_lock;not null;comment:画家锁定状态"` + LatestLockTime string `json:"latestLockTime" gorm:"column:latest_lock_time;comment:最新锁定时间"` //前端参数,提交实名认证后生成 Htmltype string `gorm:"html_type" json:"htmltype"` Envtype string `gorm:"env_type" json:"envtype"` diff --git a/cmd/model/user_view.go b/cmd/model/user_view.go index addbcab..a5de44c 100644 --- a/cmd/model/user_view.go +++ b/cmd/model/user_view.go @@ -23,6 +23,7 @@ type UserView struct { FddState int64 `json:"fddState" gorm:"column:fdd_state;comment:法大大状态"` IsRead int64 `json:"is_read" gorm:"column:is_read;comment:是否已读 0未读 1已读"` IsLock bool `json:"isLock" gorm:"column:is_lock;comment:是否锁定"` + LatestLockTime string `json:"latestLockTime" gorm:"column:latest_lock_time;comment:"` RealName string `json:"realName" gorm:"column:real_name;comment:真实姓名"` IdNum string `json:"idNum" gorm:"column:id_num;comment:证件号码"` Sex SexType `json:"sex" gorm:"column:sex;comment:性别"` @@ -66,7 +67,8 @@ SELECT su.updated_at, su.deleted_at, inviter.invited_code inviter_invite_code, - inviter_rn.name inviter_name + inviter_rn.name inviter_name, + su.latest_lock_time FROM sys_user su LEFT JOIN real_name rn ON rn.id = su.real_name_id -- 邀请者信息 diff --git a/conf/dubbogo.yaml b/conf/dubbogo.yaml index fda8bdb..e1ac224 100644 --- a/conf/dubbogo.yaml +++ b/conf/dubbogo.yaml @@ -25,6 +25,9 @@ dubbo: ArtistInfoArtworkProvider: interface: com.fontree.microservices.common.ArtistInfoArtwork retries: 100 + ArtistInfoArtshowProvider: + interface: com.fontree.microservices.common.ArtistInfoArtshow + retries: 100 #ContractProvider: # interface: com.fontree.microservices.common.Contract # retries: 0 diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.go index 6901ee1..dc453ca 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.go @@ -295,6 +295,7 @@ type ArtworkLockActionRequest struct { ArtistUid string `protobuf:"bytes,1,opt,name=artistUid,proto3" json:"artistUid,omitempty"` //画家uid Lock int32 `protobuf:"varint,2,opt,name=lock,proto3" json:"lock,omitempty"` //2=锁定 3=解锁 + LockTime string `protobuf:"bytes,3,opt,name=lockTime,proto3" json:"lockTime,omitempty"` //锁定时间,与sys_user表的latest_lock_time一致。 } func (x *ArtworkLockActionRequest) Reset() { @@ -343,6 +344,13 @@ func (x *ArtworkLockActionRequest) GetLock() int32 { return 0 } +func (x *ArtworkLockActionRequest) GetLockTime() string { + if x != nil { + return x.LockTime + } + return "" +} + type GetArtworkLockRecordsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1272,233 +1280,235 @@ var file_pb_artistinfoArtwork_proto_rawDesc = []byte{ 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x4c, 0x0a, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x68, 0x0a, 0x18, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xa6, 0x01, 0x0a, 0x1c, - 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x09, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x98, 0x04, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, - 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, - 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x62, 0x61, - 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, - 0x0d, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, - 0x61, 0x72, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, - 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x61, 0x73, - 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x34, 0x0a, 0x15, 0x73, - 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, - 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, - 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, - 0x61, 0x72, 0x6b, 0x12, 0x32, 0x0a, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, - 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, - 0x41, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x32, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, - 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, - 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x55, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, - 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x22, - 0xf2, 0x05, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, - 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, - 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x0a, - 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, - 0x0a, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, - 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, - 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x26, - 0x0a, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, - 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x13, - 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, - 0x61, 0x72, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x32, - 0x0a, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, - 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x73, 0x75, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, + 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, + 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, + 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, + 0x6f, 0x64, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x98, 0x04, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, + 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, + 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x28, 0x0a, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, + 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x61, 0x73, + 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, + 0x26, 0x0a, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, + 0x13, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, + 0x32, 0x0a, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, + 0x72, 0x6b, 0x32, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x75, 0x64, + 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x41, 0x0a, 0x0f, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x32, + 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, + 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, + 0x64, 0x73, 0x22, 0x3c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, + 0x22, 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, + 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x2a, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, + 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x22, 0xf2, 0x05, 0x0a, 0x12, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, + 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, + 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, + 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x61, + 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x61, 0x73, + 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x61, + 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, + 0x6b, 0x32, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x32, 0x0a, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, - 0x6b, 0x32, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x75, 0x64, 0x69, - 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x5c, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x6b, 0x32, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x26, + 0x0a, 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x22, 0x5c, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, + 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6d, + 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xe1, 0x01, + 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, + 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, + 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, + 0x73, 0x22, 0x3a, 0x0a, 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2a, 0xa7, 0x01, + 0x0a, 0x10, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x6f, 0x77, + 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x01, 0x12, + 0x17, 0x0a, 0x13, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x6e, 0x64, + 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x6f, 0x77, 0x41, + 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x66, 0x42, 0x61, 0x73, 0x65, 0x10, 0x03, + 0x12, 0x1f, 0x0a, 0x1b, 0x4e, 0x6f, 0x77, 0x41, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, + 0x4f, 0x66, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x10, + 0x04, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x05, 0x32, 0x9a, 0x08, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x66, 0x0a, + 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, + 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, + 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, + 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x28, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, - 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, - 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, - 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, - 0x74, 0x22, 0xe1, 0x01, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, - 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, - 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, - 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3a, 0x0a, 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x2a, 0xa7, 0x01, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, - 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x00, 0x12, 0x14, 0x0a, - 0x10, 0x4e, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, - 0x65, 0x41, 0x6e, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, - 0x4e, 0x6f, 0x77, 0x41, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x66, 0x42, 0x61, - 0x73, 0x65, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x4e, 0x6f, 0x77, 0x41, 0x75, 0x64, 0x69, 0x74, - 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x66, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x69, 0x6e, 0x67, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, - 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x05, 0x32, 0x9a, 0x08, 0x0a, 0x11, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x12, 0x66, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, - 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, + 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, + 0x12, 0x5d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, + 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, + 0x6c, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x69, 0x0a, + 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x42, 0x61, 0x73, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x22, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, - 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, - 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x62, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, - 0x6f, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, - 0x00, 0x12, 0x69, 0x0a, 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x22, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, - 0x1d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x1d, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x01, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go index 54149a5..4b0ff7f 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go @@ -479,6 +479,8 @@ func (m *ArtworkLockActionRequest) validate(all bool) error { // no validation rules for Lock + // no validation rules for LockTime + if len(errors) > 0 { return ArtworkLockActionRequestMultiError(errors) } diff --git a/pb/artistInfoUser/artistinfoUser.pb.go b/pb/artistInfoUser/artistinfoUser.pb.go index 5967a71..3a33727 100644 --- a/pb/artistInfoUser/artistinfoUser.pb.go +++ b/pb/artistInfoUser/artistinfoUser.pb.go @@ -2318,6 +2318,8 @@ type CheckUserLockRespond struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + LockTime string `protobuf:"bytes,1,opt,name=lockTime,proto3" json:"lockTime,omitempty"` } func (x *CheckUserLockRespond) Reset() { @@ -2352,6 +2354,13 @@ func (*CheckUserLockRespond) Descriptor() ([]byte, []int) { return file_pb_artistinfoUser_proto_rawDescGZIP(), []int{30} } +func (x *CheckUserLockRespond) GetLockTime() string { + if x != nil { + return x.LockTime + } + return "" +} + type ArtistSupplyListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2896,6 +2905,8 @@ type UserLockRespond struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + LockTime string `protobuf:"bytes,1,opt,name=lockTime,proto3" json:"lockTime,omitempty"` } func (x *UserLockRespond) Reset() { @@ -2930,6 +2941,13 @@ func (*UserLockRespond) Descriptor() ([]byte, []int) { return file_pb_artistinfoUser_proto_rawDescGZIP(), []int{35} } +func (x *UserLockRespond) GetLockTime() string { + if x != nil { + return x.LockTime + } + return "" +} + type BindInviteInvitedAccountRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3580,10 +3598,11 @@ type UserInfo struct { HtmlType string `protobuf:"bytes,25,opt,name=htmlType,proto3" json:"htmlType,omitempty"` //法大大实名认证页面跳转参数 EnvType string `protobuf:"bytes,26,opt,name=envType,proto3" json:"envType,omitempty"` //法大大实名认证页面跳转参数 InviteCode string `protobuf:"bytes,27,opt,name=inviteCode,proto3" json:"inviteCode,omitempty"` - MgmtArtistId int64 `protobuf:"varint,28,opt,name=mgmtArtistId,proto3" json:"mgmtArtistId,omitempty"` //艺术家id + MgmtArtistId int64 `protobuf:"varint,28,opt,name=mgmtArtistId,proto3" json:"mgmtArtistId,omitempty"` //艺术家id + LatestLockTime string `protobuf:"bytes,29,opt,name=latestLockTime,proto3" json:"latestLockTime,omitempty"` //最近一次上锁时间 // 手机号更新用 - Domain string `protobuf:"bytes,29,opt,name=domain,proto3" json:"domain,omitempty"` - VerCode string `protobuf:"bytes,30,opt,name=verCode,proto3" json:"verCode,omitempty"` + Domain string `protobuf:"bytes,30,opt,name=domain,proto3" json:"domain,omitempty"` + VerCode string `protobuf:"bytes,31,opt,name=verCode,proto3" json:"verCode,omitempty"` } func (x *UserInfo) Reset() { @@ -3793,6 +3812,13 @@ func (x *UserInfo) GetMgmtArtistId() int64 { return 0 } +func (x *UserInfo) GetLatestLockTime() string { + if x != nil { + return x.LatestLockTime + } + return "" +} + func (x *UserInfo) GetDomain() string { if x != nil { return x.Domain @@ -4029,6 +4055,7 @@ type UserView struct { StageName string `protobuf:"bytes,25,opt,name=stageName,proto3" json:"stageName,omitempty"` CertificateNum string `protobuf:"bytes,26,opt,name=certificateNum,proto3" json:"certificateNum,omitempty"` OpenBank string `protobuf:"bytes,27,opt,name=openBank,proto3" json:"openBank,omitempty"` + LatestLockTime string `protobuf:"bytes,28,opt,name=latestLockTime,proto3" json:"latestLockTime,omitempty"` } func (x *UserView) Reset() { @@ -4252,6 +4279,13 @@ func (x *UserView) GetOpenBank() string { return "" } +func (x *UserView) GetLatestLockTime() string { + if x != nil { + return x.LatestLockTime + } + return "" +} + type FindUsersUserViewResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4599,229 +4633,235 @@ var file_pb_artistinfoUser_proto_rawDesc = []byte{ 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x26, 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0xed, 0x01, - 0x0a, 0x17, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, - 0x69, 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, 0x69, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, - 0x73, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, - 0x73, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x74, 0x0a, - 0x17, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x43, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0xfb, 0x07, 0x0a, 0x23, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x52, 0x75, 0x6c, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, - 0x61, 0x73, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, - 0x0d, 0x6d, 0x6e, 0x65, 0x6d, 0x6f, 0x6e, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x6e, 0x65, 0x6d, 0x6f, 0x6e, 0x69, 0x63, 0x57, 0x6f, - 0x72, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x2a, 0x0a, 0x10, 0x70, - 0x61, 0x73, 0x73, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x70, 0x61, 0x73, 0x73, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, - 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x65, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x67, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, - 0x73, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x6f, 0x69, 0x6e, 0x41, 0x73, 0x73, 0x6f, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x69, 0x6e, 0x41, - 0x73, 0x73, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x67, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x69, 0x64, 0x65, 0x6f, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x69, 0x64, 0x65, - 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x17, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, - 0x64, 0x43, 0x61, 0x72, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x64, 0x43, - 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x73, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x64, 0x43, 0x61, 0x72, - 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, - 0x43, 0x61, 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x43, - 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, - 0x64, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x6e, - 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x6e, - 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x61, 0x6e, 0x6b, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x20, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, - 0x0c, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x21, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x22, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x6d, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4c, 0x6f, - 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, - 0x22, 0x11, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x64, 0x22, 0xa1, 0x01, 0x0a, 0x1f, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x21, 0x0a, 0x1f, 0x42, 0x69, 0x6e, 0x64, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x67, 0x0a, 0x13, 0x42, 0x69, - 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x55, 0x69, 0x64, 0x22, 0x28, 0x0a, 0x10, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x13, 0x0a, - 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0xb7, 0x01, 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, - 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, - 0x63, 0x63, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x67, 0x6d, 0x74, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x22, 0x98, 0x02, 0x0a, - 0x10, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, - 0x6f, 0x64, 0x65, 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, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x12, - 0x26, 0x0a, 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, - 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x73, 0x22, 0x71, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x0c, 0x52, - 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x49, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x49, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, - 0x0b, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x12, - 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x12, - 0x10, 0x0a, 0x03, 0x41, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x41, 0x67, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x53, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, - 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x22, 0xba, 0x06, 0x0a, 0x08, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, 0x24, - 0x0a, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, - 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x64, - 0x12, 0x34, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x72, 0x65, - 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, - 0x52, 0x65, 0x61, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x69, 0x73, 0x52, 0x65, - 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, - 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x67, 0x18, 0x17, + 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0x32, 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, + 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x17, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 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, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x73, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x74, 0x0a, 0x17, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0xfb, 0x07, 0x0a, 0x23, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x52, + 0x75, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x6e, 0x65, + 0x6d, 0x6f, 0x6e, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x6d, 0x6e, 0x65, 0x6d, 0x6f, 0x6e, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x61, 0x73, 0x73, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x10, 0x70, 0x61, 0x73, 0x73, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x49, 0x6d, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x73, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x67, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x6a, 0x6f, 0x69, 0x6e, 0x41, 0x73, 0x73, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x69, 0x6e, 0x41, 0x73, 0x73, 0x6f, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x20, 0x0a, + 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, 0x43, 0x61, 0x72, + 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x69, 0x73, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, + 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4c, + 0x6f, 0x63, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x46, 0x72, 0x6f, + 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, + 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x42, + 0x61, 0x63, 0x6b, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, 0x43, 0x61, 0x72, + 0x64, 0x42, 0x61, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x1f, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0c, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x6d, 0x0a, + 0x0f, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x22, 0x2d, 0x0a, 0x0f, + 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa1, 0x01, 0x0a, 0x1f, + 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x22, + 0x21, 0x0a, 0x1f, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x64, 0x22, 0x67, 0x0a, 0x13, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x22, 0x28, 0x0a, 0x10, 0x42, + 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x13, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb7, 0x01, 0x0a, 0x0f, 0x46, + 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, + 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, + 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x22, 0x98, 0x02, 0x0a, 0x10, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x67, 0x6d, + 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x52, 0x65, 0x61, 0x6c, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 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, 0x12, 0x1a, 0x0a, 0x08, 0x69, + 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, + 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x41, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x73, 0x22, + 0x71, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, + 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, + 0x67, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x64, 0x4e, 0x75, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x49, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, + 0x06, 0x54, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, + 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x46, + 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x49, 0x64, 0x43, 0x61, + 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x43, 0x61, 0x72, + 0x64, 0x42, 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x49, 0x64, 0x43, + 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x41, 0x67, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x41, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x42, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x42, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, + 0x64, 0x22, 0xe2, 0x06, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, + 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x67, 0x6d, + 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, + 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, + 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, + 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x73, + 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x6c, + 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, + 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, + 0x65, 0x6e, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x52, 0x65, 0x61, 0x64, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x69, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, + 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4c, 0x6f, + 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, + 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x49, 0x6d, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x18, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x74, - 0x6d, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x74, - 0x6d, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x76, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x76, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x1b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, - 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x1d, + 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x49, 0x6d, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, + 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x67, 0x12, 0x14, 0x0a, 0x05, + 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, + 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x74, 0x6d, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x74, 0x6d, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x65, 0x6e, 0x76, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x65, 0x6e, 0x76, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x67, 0x6d, 0x74, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, + 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x1d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, + 0x76, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xf3, 0x02, 0x0a, 0x15, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, @@ -4849,7 +4889,7 @@ var file_pb_artistinfoUser_proto_rawDesc = []byte{ 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x22, 0x8c, 0x06, 0x0a, 0x08, 0x55, 0x73, + 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x22, 0xb4, 0x06, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x61, @@ -4898,133 +4938,135 @@ var file_pb_artistinfoUser_proto_rawDesc = []byte{ 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x22, 0x79, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, - 0x61, 0x67, 0x65, 0x32, 0xbc, 0x0e, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, - 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, - 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x07, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4f, - 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x1e, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, - 0x4c, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1d, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x58, 0x0a, - 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0d, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x20, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, - 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, - 0x22, 0x00, 0x12, 0x46, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x1b, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x10, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x6f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, + 0x22, 0x79, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, + 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, + 0x77, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x32, 0xbc, 0x0e, 0x0a, 0x0e, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x12, 0x52, + 0x0a, 0x0c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1f, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, + 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x43, 0x61, + 0x72, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, - 0x00, 0x12, 0x52, 0x0a, 0x0c, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, - 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x64, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, - 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x76, - 0x0a, 0x18, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0c, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x08, 0x46, 0x69, 0x6e, 0x64, 0x55, - 0x73, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x09, 0x46, 0x69, 0x6e, 0x64, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, - 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x44, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, - 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x1a, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x14, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x61, - 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, - 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, + 0x00, 0x12, 0x43, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, + 0x52, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, + 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x64, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x10, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x08, 0x55, 0x73, + 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, + 0x22, 0x00, 0x12, 0x55, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, + 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0c, 0x55, 0x6e, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4c, 0x0a, + 0x0a, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1d, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x09, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x18, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, + 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4f, + 0x0a, 0x0c, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1f, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, + 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x3f, 0x0a, 0x08, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, + 0x12, 0x4a, 0x0a, 0x09, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x11, + 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, + 0x77, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, + 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, + 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x54, + 0x0a, 0x11, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, + 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, + 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, + 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x50, + 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/artistinfoArtshow.proto b/pb/artistinfoArtshow.proto index cd1d707..b61fff0 100644 --- a/pb/artistinfoArtshow.proto +++ b/pb/artistinfoArtshow.proto @@ -10,9 +10,12 @@ import "google/protobuf/empty.proto"; //使用 google.protobuf.Empty service ArtistInfoArtshow { //画展视频 rpc GetArtshowVideoList(GetArtshowVideoListRequst)returns(GetArtshowVideoListResponse){}//获取画展视频列表 + rpc CreateArtshowVideo(ArtshowVideoInfo)returns(google.protobuf.Empty){} + rpc BatchCreateArtshowVideo(BatchCreateArtshowVideoRequest)returns(google.protobuf.Empty){} rpc AuditArtshowVideo(AuditArtshowVideoRequest)returns(google.protobuf.Empty){} //审批画展视频 rpc UpdateArtshowVideo(UpdateArtshowVideoRequest)returns(google.protobuf.Empty){} //更新或创建画展视频 rpc DeletedArtshowVideo(DeletedArtshowVideoRequest)returns(google.protobuf.Empty){} //删除画展视频 + rpc CheckeExists(CheckeExistsRequest)returns(google.protobuf.Empty){} //删除画展视频 } message videoPagination{ @@ -27,6 +30,7 @@ message GetArtshowVideoListRequst{ string artistUid =4; string lockTime=5; int64 auditStatus=6; + int64 status=7; //锁定状态 2=锁定 3=解锁 } message ArtshowVideoInfo { int64 id =1; @@ -37,8 +41,10 @@ message ArtshowVideoInfo { string auditMark1 =6; string auditMark2 =7; int64 createdAt=8; - int64 updateAt=9; + int64 updatedAt=9; int64 deletedAt=10; + string artistName=11; + int64 status=12;//锁定状态 } message GetArtshowVideoListResponse{ repeated ArtshowVideoInfo data =1; @@ -61,8 +67,17 @@ message UpdateArtshowVideoRequest { string auditMark1 =6; string auditMark2 =7; string artistName =8; + int64 status=9;//锁定状态 } message DeletedArtshowVideoRequest{ int64 Id=1; //单个删除 repeated int64 Ids =2; //批量删除 +} +message BatchCreateArtshowVideoRequest{ + repeated ArtshowVideoInfo data =1; +} + +message CheckeExistsRequest{ + string artistUid =1; + string lockTime =2; } \ No newline at end of file diff --git a/pb/artistinfoArtshow/artistinfoArtshow.pb.go b/pb/artistinfoArtshow/artistinfoArtshow.pb.go index 8fee0e8..6ff6fc6 100644 --- a/pb/artistinfoArtshow/artistinfoArtshow.pb.go +++ b/pb/artistinfoArtshow/artistinfoArtshow.pb.go @@ -100,6 +100,7 @@ type GetArtshowVideoListRequst struct { ArtistUid string `protobuf:"bytes,4,opt,name=artistUid,proto3" json:"artistUid,omitempty"` LockTime string `protobuf:"bytes,5,opt,name=lockTime,proto3" json:"lockTime,omitempty"` AuditStatus int64 `protobuf:"varint,6,opt,name=auditStatus,proto3" json:"auditStatus,omitempty"` + Status int64 `protobuf:"varint,7,opt,name=status,proto3" json:"status,omitempty"` //锁定状态 2=锁定 3=解锁 } func (x *GetArtshowVideoListRequst) Reset() { @@ -176,6 +177,13 @@ func (x *GetArtshowVideoListRequst) GetAuditStatus() int64 { return 0 } +func (x *GetArtshowVideoListRequst) GetStatus() int64 { + if x != nil { + return x.Status + } + return 0 +} + type ArtshowVideoInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -189,8 +197,10 @@ type ArtshowVideoInfo struct { AuditMark1 string `protobuf:"bytes,6,opt,name=auditMark1,proto3" json:"auditMark1,omitempty"` AuditMark2 string `protobuf:"bytes,7,opt,name=auditMark2,proto3" json:"auditMark2,omitempty"` CreatedAt int64 `protobuf:"varint,8,opt,name=createdAt,proto3" json:"createdAt,omitempty"` - UpdateAt int64 `protobuf:"varint,9,opt,name=updateAt,proto3" json:"updateAt,omitempty"` + UpdatedAt int64 `protobuf:"varint,9,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` DeletedAt int64 `protobuf:"varint,10,opt,name=deletedAt,proto3" json:"deletedAt,omitempty"` + ArtistName string `protobuf:"bytes,11,opt,name=artistName,proto3" json:"artistName,omitempty"` + Status int64 `protobuf:"varint,12,opt,name=status,proto3" json:"status,omitempty"` //锁定状态 } func (x *ArtshowVideoInfo) Reset() { @@ -281,9 +291,9 @@ func (x *ArtshowVideoInfo) GetCreatedAt() int64 { return 0 } -func (x *ArtshowVideoInfo) GetUpdateAt() int64 { +func (x *ArtshowVideoInfo) GetUpdatedAt() int64 { if x != nil { - return x.UpdateAt + return x.UpdatedAt } return 0 } @@ -295,6 +305,20 @@ func (x *ArtshowVideoInfo) GetDeletedAt() int64 { return 0 } +func (x *ArtshowVideoInfo) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *ArtshowVideoInfo) GetStatus() int64 { + if x != nil { + return x.Status + } + return 0 +} + type GetArtshowVideoListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -434,6 +458,7 @@ type UpdateArtshowVideoRequest struct { AuditMark1 string `protobuf:"bytes,6,opt,name=auditMark1,proto3" json:"auditMark1,omitempty"` AuditMark2 string `protobuf:"bytes,7,opt,name=auditMark2,proto3" json:"auditMark2,omitempty"` ArtistName string `protobuf:"bytes,8,opt,name=artistName,proto3" json:"artistName,omitempty"` + Status int64 `protobuf:"varint,9,opt,name=status,proto3" json:"status,omitempty"` //锁定状态 } func (x *UpdateArtshowVideoRequest) Reset() { @@ -524,6 +549,13 @@ func (x *UpdateArtshowVideoRequest) GetArtistName() string { return "" } +func (x *UpdateArtshowVideoRequest) GetStatus() int64 { + if x != nil { + return x.Status + } + return 0 +} + type DeletedArtshowVideoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -579,6 +611,108 @@ func (x *DeletedArtshowVideoRequest) GetIds() []int64 { return nil } +type BatchCreateArtshowVideoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*ArtshowVideoInfo `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *BatchCreateArtshowVideoRequest) Reset() { + *x = BatchCreateArtshowVideoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchCreateArtshowVideoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchCreateArtshowVideoRequest) ProtoMessage() {} + +func (x *BatchCreateArtshowVideoRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchCreateArtshowVideoRequest.ProtoReflect.Descriptor instead. +func (*BatchCreateArtshowVideoRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{7} +} + +func (x *BatchCreateArtshowVideoRequest) GetData() []*ArtshowVideoInfo { + if x != nil { + return x.Data + } + return nil +} + +type CheckeExistsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUid string `protobuf:"bytes,1,opt,name=artistUid,proto3" json:"artistUid,omitempty"` + LockTime string `protobuf:"bytes,2,opt,name=lockTime,proto3" json:"lockTime,omitempty"` +} + +func (x *CheckeExistsRequest) Reset() { + *x = CheckeExistsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckeExistsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckeExistsRequest) ProtoMessage() {} + +func (x *CheckeExistsRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CheckeExistsRequest.ProtoReflect.Descriptor instead. +func (*CheckeExistsRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{8} +} + +func (x *CheckeExistsRequest) GetArtistUid() string { + if x != nil { + return x.ArtistUid + } + return "" +} + +func (x *CheckeExistsRequest) GetLockTime() string { + if x != nil { + return x.LockTime + } + return "" +} + var File_pb_artistinfoArtshow_proto protoreflect.FileDescriptor var file_pb_artistinfoArtshow_proto_rawDesc = []byte{ @@ -594,7 +728,7 @@ var file_pb_artistinfoArtshow_proto_rawDesc = []byte{ 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, - 0xc7, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, + 0xdf, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, @@ -606,92 +740,124 @@ var file_pb_artistinfoArtshow_proto_rawDesc = []byte{ 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, - 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xb2, 0x02, 0x0a, 0x10, 0x41, 0x72, - 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, - 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, - 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, - 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, - 0x61, 0x72, 0x6b, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, - 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, - 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, - 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x80, - 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, - 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x76, 0x69, 0x64, 0x65, - 0x6f, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x70, 0x61, 0x67, - 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x18, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, - 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, - 0x0a, 0x0f, 0x61, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0f, 0x61, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, - 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, - 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, - 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, - 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x22, 0x83, 0x02, 0x0a, 0x19, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, + 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x22, 0xec, 0x02, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, + 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, + 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x30, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x73, + 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x18, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, + 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0f, 0x61, 0x72, 0x74, 0x73, 0x68, + 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x22, 0x9b, 0x02, 0x0a, + 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, + 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, + 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, + 0x6b, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x20, - 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, - 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, - 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x3e, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, - 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, - 0x0a, 0x03, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, 0x73, - 0x32, 0x81, 0x03, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, - 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x67, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, - 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x53, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, - 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, - 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, - 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x13, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, - 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x50, 0x00, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x64, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, 0x73, 0x22, 0x52, 0x0a, 0x1e, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4f, + 0x0a, 0x13, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x32, + 0xfb, 0x04, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, + 0x74, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x67, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, + 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, + 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, + 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, + 0x66, 0x6f, 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, 0x5f, 0x0a, 0x17, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, + 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x2a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, + 0x11, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, + 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, + 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x13, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x45, 0x78, 0x69, 0x73, + 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x16, 0x5a, + 0x14, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x41, 0x72, + 0x74, 0x73, 0x68, 0x6f, 0x77, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -706,33 +872,42 @@ func file_pb_artistinfoArtshow_proto_rawDescGZIP() []byte { return file_pb_artistinfoArtshow_proto_rawDescData } -var file_pb_artistinfoArtshow_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_pb_artistinfoArtshow_proto_msgTypes = make([]protoimpl.MessageInfo, 9) var file_pb_artistinfoArtshow_proto_goTypes = []interface{}{ - (*VideoPagination)(nil), // 0: artistinfo.videoPagination - (*GetArtshowVideoListRequst)(nil), // 1: artistinfo.GetArtshowVideoListRequst - (*ArtshowVideoInfo)(nil), // 2: artistinfo.ArtshowVideoInfo - (*GetArtshowVideoListResponse)(nil), // 3: artistinfo.GetArtshowVideoListResponse - (*AuditArtshowVideoRequest)(nil), // 4: artistinfo.AuditArtshowVideoRequest - (*UpdateArtshowVideoRequest)(nil), // 5: artistinfo.UpdateArtshowVideoRequest - (*DeletedArtshowVideoRequest)(nil), // 6: artistinfo.DeletedArtshowVideoRequest - (*emptypb.Empty)(nil), // 7: google.protobuf.Empty + (*VideoPagination)(nil), // 0: artistinfo.videoPagination + (*GetArtshowVideoListRequst)(nil), // 1: artistinfo.GetArtshowVideoListRequst + (*ArtshowVideoInfo)(nil), // 2: artistinfo.ArtshowVideoInfo + (*GetArtshowVideoListResponse)(nil), // 3: artistinfo.GetArtshowVideoListResponse + (*AuditArtshowVideoRequest)(nil), // 4: artistinfo.AuditArtshowVideoRequest + (*UpdateArtshowVideoRequest)(nil), // 5: artistinfo.UpdateArtshowVideoRequest + (*DeletedArtshowVideoRequest)(nil), // 6: artistinfo.DeletedArtshowVideoRequest + (*BatchCreateArtshowVideoRequest)(nil), // 7: artistinfo.BatchCreateArtshowVideoRequest + (*CheckeExistsRequest)(nil), // 8: artistinfo.CheckeExistsRequest + (*emptypb.Empty)(nil), // 9: google.protobuf.Empty } var file_pb_artistinfoArtshow_proto_depIdxs = []int32{ - 2, // 0: artistinfo.GetArtshowVideoListResponse.data:type_name -> artistinfo.ArtshowVideoInfo - 0, // 1: artistinfo.GetArtshowVideoListResponse.page:type_name -> artistinfo.videoPagination - 1, // 2: artistinfo.ArtistInfoArtshow.GetArtshowVideoList:input_type -> artistinfo.GetArtshowVideoListRequst - 4, // 3: artistinfo.ArtistInfoArtshow.AuditArtshowVideo:input_type -> artistinfo.AuditArtshowVideoRequest - 5, // 4: artistinfo.ArtistInfoArtshow.UpdateArtshowVideo:input_type -> artistinfo.UpdateArtshowVideoRequest - 6, // 5: artistinfo.ArtistInfoArtshow.DeletedArtshowVideo:input_type -> artistinfo.DeletedArtshowVideoRequest - 3, // 6: artistinfo.ArtistInfoArtshow.GetArtshowVideoList:output_type -> artistinfo.GetArtshowVideoListResponse - 7, // 7: artistinfo.ArtistInfoArtshow.AuditArtshowVideo:output_type -> google.protobuf.Empty - 7, // 8: artistinfo.ArtistInfoArtshow.UpdateArtshowVideo:output_type -> google.protobuf.Empty - 7, // 9: artistinfo.ArtistInfoArtshow.DeletedArtshowVideo:output_type -> google.protobuf.Empty - 6, // [6:10] is the sub-list for method output_type - 2, // [2:6] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name + 2, // 0: artistinfo.GetArtshowVideoListResponse.data:type_name -> artistinfo.ArtshowVideoInfo + 0, // 1: artistinfo.GetArtshowVideoListResponse.page:type_name -> artistinfo.videoPagination + 2, // 2: artistinfo.BatchCreateArtshowVideoRequest.data:type_name -> artistinfo.ArtshowVideoInfo + 1, // 3: artistinfo.ArtistInfoArtshow.GetArtshowVideoList:input_type -> artistinfo.GetArtshowVideoListRequst + 2, // 4: artistinfo.ArtistInfoArtshow.CreateArtshowVideo:input_type -> artistinfo.ArtshowVideoInfo + 7, // 5: artistinfo.ArtistInfoArtshow.BatchCreateArtshowVideo:input_type -> artistinfo.BatchCreateArtshowVideoRequest + 4, // 6: artistinfo.ArtistInfoArtshow.AuditArtshowVideo:input_type -> artistinfo.AuditArtshowVideoRequest + 5, // 7: artistinfo.ArtistInfoArtshow.UpdateArtshowVideo:input_type -> artistinfo.UpdateArtshowVideoRequest + 6, // 8: artistinfo.ArtistInfoArtshow.DeletedArtshowVideo:input_type -> artistinfo.DeletedArtshowVideoRequest + 8, // 9: artistinfo.ArtistInfoArtshow.CheckeExists:input_type -> artistinfo.CheckeExistsRequest + 3, // 10: artistinfo.ArtistInfoArtshow.GetArtshowVideoList:output_type -> artistinfo.GetArtshowVideoListResponse + 9, // 11: artistinfo.ArtistInfoArtshow.CreateArtshowVideo:output_type -> google.protobuf.Empty + 9, // 12: artistinfo.ArtistInfoArtshow.BatchCreateArtshowVideo:output_type -> google.protobuf.Empty + 9, // 13: artistinfo.ArtistInfoArtshow.AuditArtshowVideo:output_type -> google.protobuf.Empty + 9, // 14: artistinfo.ArtistInfoArtshow.UpdateArtshowVideo:output_type -> google.protobuf.Empty + 9, // 15: artistinfo.ArtistInfoArtshow.DeletedArtshowVideo:output_type -> google.protobuf.Empty + 9, // 16: artistinfo.ArtistInfoArtshow.CheckeExists:output_type -> google.protobuf.Empty + 10, // [10:17] is the sub-list for method output_type + 3, // [3:10] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_pb_artistinfoArtshow_proto_init() } @@ -825,6 +1000,30 @@ func file_pb_artistinfoArtshow_proto_init() { return nil } } + file_pb_artistinfoArtshow_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchCreateArtshowVideoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckeExistsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -832,7 +1031,7 @@ func file_pb_artistinfoArtshow_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_artistinfoArtshow_proto_rawDesc, NumEnums: 0, - NumMessages: 7, + NumMessages: 9, NumExtensions: 0, NumServices: 1, }, diff --git a/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go b/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go index 40a6554..c9f64be 100644 --- a/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go +++ b/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go @@ -175,6 +175,8 @@ func (m *GetArtshowVideoListRequst) validate(all bool) error { // no validation rules for AuditStatus + // no validation rules for Status + if len(errors) > 0 { return GetArtshowVideoListRequstMultiError(errors) } @@ -293,10 +295,14 @@ func (m *ArtshowVideoInfo) validate(all bool) error { // no validation rules for CreatedAt - // no validation rules for UpdateAt + // no validation rules for UpdatedAt // no validation rules for DeletedAt + // no validation rules for ArtistName + + // no validation rules for Status + if len(errors) > 0 { return ArtshowVideoInfoMultiError(errors) } @@ -687,6 +693,8 @@ func (m *UpdateArtshowVideoRequest) validate(all bool) error { // no validation rules for ArtistName + // no validation rules for Status + if len(errors) > 0 { return UpdateArtshowVideoRequestMultiError(errors) } @@ -870,3 +878,246 @@ var _ interface { Cause() error ErrorName() string } = DeletedArtshowVideoRequestValidationError{} + +// Validate checks the field values on BatchCreateArtshowVideoRequest 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 *BatchCreateArtshowVideoRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on BatchCreateArtshowVideoRequest 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 +// BatchCreateArtshowVideoRequestMultiError, or nil if none found. +func (m *BatchCreateArtshowVideoRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *BatchCreateArtshowVideoRequest) 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, BatchCreateArtshowVideoRequestValidationError{ + 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, BatchCreateArtshowVideoRequestValidationError{ + 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 BatchCreateArtshowVideoRequestValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return BatchCreateArtshowVideoRequestMultiError(errors) + } + + return nil +} + +// BatchCreateArtshowVideoRequestMultiError is an error wrapping multiple +// validation errors returned by BatchCreateArtshowVideoRequest.ValidateAll() +// if the designated constraints aren't met. +type BatchCreateArtshowVideoRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m BatchCreateArtshowVideoRequestMultiError) 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 BatchCreateArtshowVideoRequestMultiError) AllErrors() []error { return m } + +// BatchCreateArtshowVideoRequestValidationError is the validation error +// returned by BatchCreateArtshowVideoRequest.Validate if the designated +// constraints aren't met. +type BatchCreateArtshowVideoRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e BatchCreateArtshowVideoRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e BatchCreateArtshowVideoRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e BatchCreateArtshowVideoRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e BatchCreateArtshowVideoRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e BatchCreateArtshowVideoRequestValidationError) ErrorName() string { + return "BatchCreateArtshowVideoRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e BatchCreateArtshowVideoRequestValidationError) 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 %sBatchCreateArtshowVideoRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = BatchCreateArtshowVideoRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = BatchCreateArtshowVideoRequestValidationError{} + +// Validate checks the field values on CheckeExistsRequest 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 *CheckeExistsRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CheckeExistsRequest 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 +// CheckeExistsRequestMultiError, or nil if none found. +func (m *CheckeExistsRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *CheckeExistsRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ArtistUid + + // no validation rules for LockTime + + if len(errors) > 0 { + return CheckeExistsRequestMultiError(errors) + } + + return nil +} + +// CheckeExistsRequestMultiError is an error wrapping multiple validation +// errors returned by CheckeExistsRequest.ValidateAll() if the designated +// constraints aren't met. +type CheckeExistsRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CheckeExistsRequestMultiError) 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 CheckeExistsRequestMultiError) AllErrors() []error { return m } + +// CheckeExistsRequestValidationError is the validation error returned by +// CheckeExistsRequest.Validate if the designated constraints aren't met. +type CheckeExistsRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CheckeExistsRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CheckeExistsRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CheckeExistsRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CheckeExistsRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CheckeExistsRequestValidationError) ErrorName() string { + return "CheckeExistsRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e CheckeExistsRequestValidationError) 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 %sCheckeExistsRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CheckeExistsRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CheckeExistsRequestValidationError{} diff --git a/pb/artistinfoArtshow/artistinfoArtshow_triple.pb.go b/pb/artistinfoArtshow/artistinfoArtshow_triple.pb.go index 7694d18..39c8c77 100644 --- a/pb/artistinfoArtshow/artistinfoArtshow_triple.pb.go +++ b/pb/artistinfoArtshow/artistinfoArtshow_triple.pb.go @@ -31,9 +31,12 @@ const _ = grpc_go.SupportPackageIsVersion7 type ArtistInfoArtshowClient interface { // 画展视频 GetArtshowVideoList(ctx context.Context, in *GetArtshowVideoListRequst, opts ...grpc_go.CallOption) (*GetArtshowVideoListResponse, common.ErrorWithAttachment) + CreateArtshowVideo(ctx context.Context, in *ArtshowVideoInfo, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + BatchCreateArtshowVideo(ctx context.Context, in *BatchCreateArtshowVideoRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) AuditArtshowVideo(ctx context.Context, in *AuditArtshowVideoRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) UpdateArtshowVideo(ctx context.Context, in *UpdateArtshowVideoRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) DeletedArtshowVideo(ctx context.Context, in *DeletedArtshowVideoRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + CheckeExists(ctx context.Context, in *CheckeExistsRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) } type artistInfoArtshowClient struct { @@ -41,10 +44,13 @@ type artistInfoArtshowClient struct { } type ArtistInfoArtshowClientImpl struct { - GetArtshowVideoList func(ctx context.Context, in *GetArtshowVideoListRequst) (*GetArtshowVideoListResponse, error) - AuditArtshowVideo func(ctx context.Context, in *AuditArtshowVideoRequest) (*emptypb.Empty, error) - UpdateArtshowVideo func(ctx context.Context, in *UpdateArtshowVideoRequest) (*emptypb.Empty, error) - DeletedArtshowVideo func(ctx context.Context, in *DeletedArtshowVideoRequest) (*emptypb.Empty, error) + GetArtshowVideoList func(ctx context.Context, in *GetArtshowVideoListRequst) (*GetArtshowVideoListResponse, error) + CreateArtshowVideo func(ctx context.Context, in *ArtshowVideoInfo) (*emptypb.Empty, error) + BatchCreateArtshowVideo func(ctx context.Context, in *BatchCreateArtshowVideoRequest) (*emptypb.Empty, error) + AuditArtshowVideo func(ctx context.Context, in *AuditArtshowVideoRequest) (*emptypb.Empty, error) + UpdateArtshowVideo func(ctx context.Context, in *UpdateArtshowVideoRequest) (*emptypb.Empty, error) + DeletedArtshowVideo func(ctx context.Context, in *DeletedArtshowVideoRequest) (*emptypb.Empty, error) + CheckeExists func(ctx context.Context, in *CheckeExistsRequest) (*emptypb.Empty, error) } func (c *ArtistInfoArtshowClientImpl) GetDubboStub(cc *triple.TripleConn) ArtistInfoArtshowClient { @@ -65,6 +71,18 @@ func (c *artistInfoArtshowClient) GetArtshowVideoList(ctx context.Context, in *G return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetArtshowVideoList", in, out) } +func (c *artistInfoArtshowClient) CreateArtshowVideo(ctx context.Context, in *ArtshowVideoInfo, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateArtshowVideo", in, out) +} + +func (c *artistInfoArtshowClient) BatchCreateArtshowVideo(ctx context.Context, in *BatchCreateArtshowVideoRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/BatchCreateArtshowVideo", in, out) +} + func (c *artistInfoArtshowClient) AuditArtshowVideo(ctx context.Context, in *AuditArtshowVideoRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { out := new(emptypb.Empty) interfaceKey := ctx.Value(constant.InterfaceKey).(string) @@ -83,15 +101,24 @@ func (c *artistInfoArtshowClient) DeletedArtshowVideo(ctx context.Context, in *D return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DeletedArtshowVideo", in, out) } +func (c *artistInfoArtshowClient) CheckeExists(ctx context.Context, in *CheckeExistsRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CheckeExists", in, out) +} + // ArtistInfoArtshowServer is the server API for ArtistInfoArtshow service. // All implementations must embed UnimplementedArtistInfoArtshowServer // for forward compatibility type ArtistInfoArtshowServer interface { // 画展视频 GetArtshowVideoList(context.Context, *GetArtshowVideoListRequst) (*GetArtshowVideoListResponse, error) + CreateArtshowVideo(context.Context, *ArtshowVideoInfo) (*emptypb.Empty, error) + BatchCreateArtshowVideo(context.Context, *BatchCreateArtshowVideoRequest) (*emptypb.Empty, error) AuditArtshowVideo(context.Context, *AuditArtshowVideoRequest) (*emptypb.Empty, error) UpdateArtshowVideo(context.Context, *UpdateArtshowVideoRequest) (*emptypb.Empty, error) DeletedArtshowVideo(context.Context, *DeletedArtshowVideoRequest) (*emptypb.Empty, error) + CheckeExists(context.Context, *CheckeExistsRequest) (*emptypb.Empty, error) mustEmbedUnimplementedArtistInfoArtshowServer() } @@ -103,6 +130,12 @@ type UnimplementedArtistInfoArtshowServer struct { func (UnimplementedArtistInfoArtshowServer) GetArtshowVideoList(context.Context, *GetArtshowVideoListRequst) (*GetArtshowVideoListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetArtshowVideoList not implemented") } +func (UnimplementedArtistInfoArtshowServer) CreateArtshowVideo(context.Context, *ArtshowVideoInfo) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateArtshowVideo not implemented") +} +func (UnimplementedArtistInfoArtshowServer) BatchCreateArtshowVideo(context.Context, *BatchCreateArtshowVideoRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method BatchCreateArtshowVideo not implemented") +} func (UnimplementedArtistInfoArtshowServer) AuditArtshowVideo(context.Context, *AuditArtshowVideoRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method AuditArtshowVideo not implemented") } @@ -112,6 +145,9 @@ func (UnimplementedArtistInfoArtshowServer) UpdateArtshowVideo(context.Context, func (UnimplementedArtistInfoArtshowServer) DeletedArtshowVideo(context.Context, *DeletedArtshowVideoRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeletedArtshowVideo not implemented") } +func (UnimplementedArtistInfoArtshowServer) CheckeExists(context.Context, *CheckeExistsRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method CheckeExists not implemented") +} func (s *UnimplementedArtistInfoArtshowServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -169,6 +205,64 @@ func _ArtistInfoArtshow_GetArtshowVideoList_Handler(srv interface{}, ctx context return interceptor(ctx, in, info, handler) } +func _ArtistInfoArtshow_CreateArtshowVideo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ArtshowVideoInfo) + 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("CreateArtshowVideo", 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 _ArtistInfoArtshow_BatchCreateArtshowVideo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchCreateArtshowVideoRequest) + 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("BatchCreateArtshowVideo", 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 _ArtistInfoArtshow_AuditArtshowVideo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(AuditArtshowVideoRequest) if err := dec(in); err != nil { @@ -256,6 +350,35 @@ func _ArtistInfoArtshow_DeletedArtshowVideo_Handler(srv interface{}, ctx context return interceptor(ctx, in, info, handler) } +func _ArtistInfoArtshow_CheckeExists_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CheckeExistsRequest) + 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("CheckeExists", 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) +} + // ArtistInfoArtshow_ServiceDesc is the grpc_go.ServiceDesc for ArtistInfoArtshow service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -267,6 +390,14 @@ var ArtistInfoArtshow_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "GetArtshowVideoList", Handler: _ArtistInfoArtshow_GetArtshowVideoList_Handler, }, + { + MethodName: "CreateArtshowVideo", + Handler: _ArtistInfoArtshow_CreateArtshowVideo_Handler, + }, + { + MethodName: "BatchCreateArtshowVideo", + Handler: _ArtistInfoArtshow_BatchCreateArtshowVideo_Handler, + }, { MethodName: "AuditArtshowVideo", Handler: _ArtistInfoArtshow_AuditArtshowVideo_Handler, @@ -279,6 +410,10 @@ var ArtistInfoArtshow_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "DeletedArtshowVideo", Handler: _ArtistInfoArtshow_DeletedArtshowVideo_Handler, }, + { + MethodName: "CheckeExists", + Handler: _ArtistInfoArtshow_CheckeExists_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/artistinfoArtshow.proto", diff --git a/pb/artistinfoArtwork.proto b/pb/artistinfoArtwork.proto index 80b636f..c97caa1 100644 --- a/pb/artistinfoArtwork.proto +++ b/pb/artistinfoArtwork.proto @@ -18,7 +18,7 @@ service ArtistInfoArtwork { rpc UpdateArtworkAuditStatus(UpdateArtworkAuditStatusRequest)returns(ArtworkCommonNoParams){}//更新画作审批状态 rpc CheckArtworkBaseInfoEditable(ArtworkUidRequest)returns(CheckArtworkEditableResponse){}//查询画作基本信息是否可编辑 rpc CheckArtworkSupplementInfoEditable(ArtworkUidRequest)returns(CheckArtworkEditableResponse){}//查询画作补充信息是否可编辑 - rpc GenerateArtworkSupplementInfo(ArtworkUidsRequest)returns(google.protobuf.Empty){}//查询画作补充信息是否可编辑 +// rpc GenerateArtworkSupplementInfo(ArtworkUidsRequest)returns(google.protobuf.Empty){}//查询画作补充信息是否可编辑 } message ArtworkCommonNoParams{} @@ -38,6 +38,7 @@ message CreateArtworkLockRecordReq{ message ArtworkLockActionRequest{ string artistUid =1 ;//画家uid int32 lock =2; //2=锁定 3=解锁 + string lockTime=3;//锁定时间,与sys_user表的latest_lock_time一致。 } enum ArtworkQueryMode { NowPreSaveArtwork = 0; //当前暂存的画作 diff --git a/pb/artistinfoUser.proto b/pb/artistinfoUser.proto index b639bcb..c4a24fe 100644 --- a/pb/artistinfoUser.proto +++ b/pb/artistinfoUser.proto @@ -273,7 +273,7 @@ message CheckUserLockRequest { } message CheckUserLockRespond { - + string lockTime =1; } @@ -340,7 +340,7 @@ message UserLockRequest { } message UserLockRespond { - + string lockTime =1; } @@ -444,10 +444,10 @@ message UserInfo{ string envType = 26;//法大大实名认证页面跳转参数 string inviteCode = 27; int64 mgmtArtistId = 28; //艺术家id - + string latestLockTime=29; //最近一次上锁时间 //手机号更新用 - string domain =29; - string verCode=30; + string domain =30; + string verCode=31; } message PreSaveArtistInfoData{ @@ -498,6 +498,7 @@ message UserView{ string stageName=25; string certificateNum=26; string openBank=27; + string latestLockTime=28; } message FindUsersUserViewResponse{ repeated UserView data=1; From 951791ea9a08e3642800625ea378ff28b7f2ee14 Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Fri, 3 Mar 2023 09:12:26 +0800 Subject: [PATCH 08/11] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=94=BB=E5=AE=B6?= =?UTF-8?q?=E6=8C=87=E6=95=B0=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistinfo_artshow.go | 81 + cmd/internal/controller/artshowVideo.go | 46 - .../dao/artistinfo_artshow_artistIndex.go | 124 ++ ...artshow.go => artistinfo_artshow_video.go} | 38 +- .../logic/artistinfo_artshowArtistIndex.go | 141 ++ cmd/internal/logic/artistinfo_artshowVideo.go | 27 + cmd/model/artshow_artistIndex.go | 27 + cmd/model/artshow_video.go | 2 +- cmd/model/{ => old}/artwork_ex_exam.go | 6 +- pb/artistinfoArtshow.proto | 85 +- pb/artistinfoArtshow/artistinfoArtshow.pb.go | 1386 ++++++++++++++--- .../artistinfoArtshow.pb.validate.go | 1154 ++++++++++++++ .../artistinfoArtshow_triple.pb.go | 341 +++- pkg/db/init.go | 3 +- 14 files changed, 3190 insertions(+), 271 deletions(-) create mode 100644 cmd/internal/controller/artistinfo_artshow.go delete mode 100644 cmd/internal/controller/artshowVideo.go create mode 100644 cmd/internal/dao/artistinfo_artshow_artistIndex.go rename cmd/internal/dao/{artistinfo_artshow.go => artistinfo_artshow_video.go} (73%) create mode 100644 cmd/internal/logic/artistinfo_artshowArtistIndex.go create mode 100644 cmd/model/artshow_artistIndex.go rename cmd/model/{ => old}/artwork_ex_exam.go (91%) diff --git a/cmd/internal/controller/artistinfo_artshow.go b/cmd/internal/controller/artistinfo_artshow.go new file mode 100644 index 0000000..bc4d99d --- /dev/null +++ b/cmd/internal/controller/artistinfo_artshow.go @@ -0,0 +1,81 @@ +// Package controller ----------------------------- +// @file : artshowVideo.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2023/3/2 10:52 +// ------------------------------------------- +package controller + +import ( + context "context" + "github.com/fonchain/fonchain-artistinfo/cmd/internal/logic" + "github.com/fonchain/fonchain-artistinfo/pb/artistinfoArtshow" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +// 画展包视频 +var _ artistinfoArtshow.ArtistInfoArtshowServer = new(ArtistInfoArtshowProvider) + +type ArtistInfoArtshowProvider struct { + artistinfoArtshow.UnimplementedArtistInfoArtshowServer + videoLogic logic.ArtshowVideoLogic + artistIndexLogic logic.ArtshowArtistIndexLogic +} + +// ----------------- 画展包-画家指数 +func (a ArtistInfoArtshowProvider) GetArtistIndexDetail(ctx context.Context, request *artistinfoArtshow.GetArtistIndexDetailRequest) (*artistinfoArtshow.ArtistIndexInfo, error) { + return a.artistIndexLogic.GetArtistIndexDetail(request) +} + +func (a ArtistInfoArtshowProvider) GetArtistIndexList(ctx context.Context, request *artistinfoArtshow.GetArtistIndexListRequest) (*artistinfoArtshow.GetArtistIndexListResponse, error) { + return a.artistIndexLogic.GetArtistIndexList(request) +} + +func (a ArtistInfoArtshowProvider) CreateArtistIndex(ctx context.Context, info *artistinfoArtshow.ArtistIndexInfo) (*emptypb.Empty, error) { + return nil, a.artistIndexLogic.CreateArtistIndex(info) +} + +func (a ArtistInfoArtshowProvider) BatchCreateArtistIndex(ctx context.Context, request *artistinfoArtshow.BatchCreateArtistIndexRequest) (*emptypb.Empty, error) { + return nil, a.artistIndexLogic.BatchCreateArtistIndex(request) +} + +func (a ArtistInfoArtshowProvider) AuditArtistIndex(ctx context.Context, request *artistinfoArtshow.AuditArtistIndexRequest) (*emptypb.Empty, error) { + return a.artistIndexLogic.AuditArtistIndex(request) +} + +func (a ArtistInfoArtshowProvider) UpdateArtistIndex(ctx context.Context, request *artistinfoArtshow.UpdateArtistIndexRequest) (*emptypb.Empty, error) { + return a.artistIndexLogic.UpdateArtistIndex(request) +} + +func (a ArtistInfoArtshowProvider) DeletedArtistIndex(ctx context.Context, request *artistinfoArtshow.DeletedArtistIndexRequest) (*emptypb.Empty, error) { + return a.artistIndexLogic.DeletedArtistIndex(request) +} + +// ----------------- 画展包-视频资料 +func (a ArtistInfoArtshowProvider) GetArtshowVideoDetail(ctx context.Context, request *artistinfoArtshow.GetArtshowVideoDetailRequest) (*artistinfoArtshow.ArtshowVideoInfo, error) { + return a.videoLogic.GetArtshowVideoDetail(request) +} + +func (a ArtistInfoArtshowProvider) BatchCreateArtshowVideo(ctx context.Context, request *artistinfoArtshow.BatchCreateArtshowVideoRequest) (*emptypb.Empty, error) { + return nil, a.videoLogic.BatchCreateArtshowVideo(request) +} + +func (a ArtistInfoArtshowProvider) CreateArtshowVideo(ctx context.Context, info *artistinfoArtshow.ArtshowVideoInfo) (*emptypb.Empty, error) { + return nil, a.videoLogic.CreateArtshowVideo(info) +} + +func (a ArtistInfoArtshowProvider) GetArtshowVideoList(ctx context.Context, requst *artistinfoArtshow.GetArtshowVideoListRequst) (*artistinfoArtshow.GetArtshowVideoListResponse, error) { + return a.videoLogic.GetArtshowVideoList(requst) +} + +func (a ArtistInfoArtshowProvider) AuditArtshowVideo(ctx context.Context, request *artistinfoArtshow.AuditArtshowVideoRequest) (*emptypb.Empty, error) { + return a.videoLogic.AuditArtshowVideo(request) +} + +func (a ArtistInfoArtshowProvider) UpdateArtshowVideo(ctx context.Context, request *artistinfoArtshow.UpdateArtshowVideoRequest) (*emptypb.Empty, error) { + return a.videoLogic.UpdateArtshowVideo(request) +} + +func (a ArtistInfoArtshowProvider) DeletedArtshowVideo(ctx context.Context, request *artistinfoArtshow.DeletedArtshowVideoRequest) (*emptypb.Empty, error) { + return a.videoLogic.DeletedArtshowVideo(request) +} diff --git a/cmd/internal/controller/artshowVideo.go b/cmd/internal/controller/artshowVideo.go deleted file mode 100644 index 6030520..0000000 --- a/cmd/internal/controller/artshowVideo.go +++ /dev/null @@ -1,46 +0,0 @@ -// Package controller ----------------------------- -// @file : artshowVideo.go -// @author : JJXu -// @contact : wavingbear@163.com -// @time : 2023/3/2 10:52 -// ------------------------------------------- -package controller - -import ( - context "context" - "github.com/fonchain/fonchain-artistinfo/cmd/internal/logic" - "github.com/fonchain/fonchain-artistinfo/pb/artistinfoArtshow" - emptypb "google.golang.org/protobuf/types/known/emptypb" -) - -// 画展包视频 -var _ artistinfoArtshow.ArtistInfoArtshowServer = new(ArtistInfoArtshowProvider) - -type ArtistInfoArtshowProvider struct { - artistinfoArtshow.UnimplementedArtistInfoArtshowServer - logic logic.ArtshowVideoLogic -} - -func (a ArtistInfoArtshowProvider) BatchCreateArtshowVideo(ctx context.Context, request *artistinfoArtshow.BatchCreateArtshowVideoRequest) (*emptypb.Empty, error) { - return nil, a.logic.BatchCreateArtshowVideo(request) -} - -func (a ArtistInfoArtshowProvider) CreateArtshowVideo(ctx context.Context, info *artistinfoArtshow.ArtshowVideoInfo) (*emptypb.Empty, error) { - return nil, a.logic.CreateArtshowVideo(info) -} - -func (a ArtistInfoArtshowProvider) GetArtshowVideoList(ctx context.Context, requst *artistinfoArtshow.GetArtshowVideoListRequst) (*artistinfoArtshow.GetArtshowVideoListResponse, error) { - return a.logic.GetArtshowVideoList(requst) -} - -func (a ArtistInfoArtshowProvider) AuditArtshowVideo(ctx context.Context, request *artistinfoArtshow.AuditArtshowVideoRequest) (*emptypb.Empty, error) { - return a.logic.AuditArtshowVideo(request) -} - -func (a ArtistInfoArtshowProvider) UpdateArtshowVideo(ctx context.Context, request *artistinfoArtshow.UpdateArtshowVideoRequest) (*emptypb.Empty, error) { - return a.logic.UpdateArtshowVideo(request) -} - -func (a ArtistInfoArtshowProvider) DeletedArtshowVideo(ctx context.Context, request *artistinfoArtshow.DeletedArtshowVideoRequest) (*emptypb.Empty, error) { - return a.logic.DeletedArtshowVideo(request) -} diff --git a/cmd/internal/dao/artistinfo_artshow_artistIndex.go b/cmd/internal/dao/artistinfo_artshow_artistIndex.go new file mode 100644 index 0000000..2861c63 --- /dev/null +++ b/cmd/internal/dao/artistinfo_artshow_artistIndex.go @@ -0,0 +1,124 @@ +// Package dao ----------------------------- +// @file : artistinfo_artshow_artistIndex.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2023/3/3 0:20 +// ------------------------------------------- +package dao + +import ( + "errors" + "fmt" + "github.com/fonchain/fonchain-artistinfo/cmd/model" + "github.com/fonchain/fonchain-artistinfo/pb/artistinfoArtshow" + db "github.com/fonchain/fonchain-artistinfo/pkg/db" + "gorm.io/gorm" +) + +var ArtistinfoArtshowArtistIndex = new(artistinfoArtshowArtistIndex) + +type artistinfoArtshowArtistIndex struct{} + +func (a artistinfoArtshowArtistIndex) BatchCreateData(datas []model.ArtshowArtistIndex) error { + //return db.DB.Create(&datas).Error + tx := db.DB.Begin() + for _, v := range datas { + err := a.CreateData(&v, tx) + if err != nil { + return err + } + } + tx.Commit() + return nil +} +func (a artistinfoArtshowArtistIndex) CreateData(data *model.ArtshowArtistIndex, tx ...*gorm.DB) error { + var txdb *gorm.DB + if tx != nil { + txdb = tx[0] + } else { + txdb = db.DB + } + var exist = model.ArtshowArtistIndex{} + db.DB.Where("artist_uid = ? AND status = 2 AND class= ?", data.ArtistUid, data.Class).Find(&exist) + if exist.ID != 0 { + return errors.New(fmt.Sprintf("主题[%s]已存在", data.Title)) + } + return txdb.Create(&data).Error +} + +func (a artistinfoArtshowArtistIndex) UpdateData(data *model.ArtshowArtistIndex) error { + return db.DB.Updates(&data).Error + +} + +func (a artistinfoArtshowArtistIndex) DeletedData(id ...int64) (err error) { + if len(id) == 1 { + err = db.DB.Where("id = ?", id[0]).Delete(&model.ArtshowArtistIndex{}).Error + } else if len(id) > 0 { + err = db.DB.Where("id = ?", id).Delete(&model.ArtshowArtistIndex{}).Error + } + return err +} + +func (a artistinfoArtshowArtistIndex) GetData(id int64) (data *model.ArtshowArtistIndex, err error) { + err = db.DB.Where("id = ?", id).First(data).Error + return +} + +func (a artistinfoArtshowArtistIndex) GetDataList(req *artistinfoArtshow.GetArtistIndexListRequest) (datas []model.ArtshowArtistIndex, total int64, err error) { + datas = []model.ArtshowArtistIndex{} + var tx = db.DB.Model(model.ArtshowArtistIndex{}) + if req.ArtistUid != "" { + tx = tx.Where("artist_uid = ?", req.ArtistUid) + } + if req.LockTime != "" { + tx = tx.Where("lock_time = ?", req.LockTime) + } + if req.Status != 0 { + tx = tx.Where("status = ?", req.Status) + } + if req.AuditStatus != 0 { + tx = tx.Where("audit_status = ?", req.AuditStatus) + } + //if req.AuditMark1 != "" { + // tx = tx.Where("audit_mark1 = ?", req.AuditMark1) + //} + //if req.AuditMark2 != "" { + // tx = tx.Where("audit_mark2 = ?", req.AuditMark2) + //} + err = tx.Count(&total).Scopes(db.Pagination(req.Page, req.PageSize)).Find(&datas).Error + return +} +func (a artistinfoArtshowArtistIndex) Audit(auditStatus model.AuditStatus, mark1, mark2 string, ids ...int64) (err error) { + tx := db.DB.Begin() + err = tx.Model(model.ArtshowArtistIndex{}).Where("id in ?", ids).Update("audit_status", auditStatus).Error + if err != nil { + return err + } + err = tx.Model(model.ArtshowArtistIndex{}).Where("id in ?", ids).Update("audit_mark1", mark1).Error + if err != nil { + return err + } + err = tx.Model(model.ArtshowArtistIndex{}).Where("id in ?", ids).Update("audit_mark2", mark2).Error + if err != nil { + return err + } + tx.Commit() + return +} + +func (a artistinfoArtshowArtistIndex) GetArtshowVideoDetail(in *artistinfoArtshow.GetArtshowVideoDetailRequest) (rep model.ArtshowArtistIndex, err error) { + var tx = db.DB.Model(model.ArtshowArtistIndex{}) + if in.ArtistUid != "" { + tx = tx.Where("artist_uid =?", in.ArtistUid) + } + if in.LockTime != "" { + tx = tx.Where("lock_time", in.LockTime) + } + if in.Status != 0 { + tx = tx.Where("status", in.Status) + } + var data model.ArtshowArtistIndex + err = tx.First(&data).Error + return +} diff --git a/cmd/internal/dao/artistinfo_artshow.go b/cmd/internal/dao/artistinfo_artshow_video.go similarity index 73% rename from cmd/internal/dao/artistinfo_artshow.go rename to cmd/internal/dao/artistinfo_artshow_video.go index 4c49849..2c571be 100644 --- a/cmd/internal/dao/artistinfo_artshow.go +++ b/cmd/internal/dao/artistinfo_artshow_video.go @@ -47,7 +47,7 @@ func (a artistinfoArtshowVideo) CreateData(data *model.ArtshowRecord, tx ...*gor } func (a artistinfoArtshowVideo) UpdateData(data *model.ArtshowRecord) error { - return db.DB.Create(&data).Error + return db.DB.Updates(&data).Error } @@ -98,9 +98,35 @@ func (a artistinfoArtshowVideo) GetDataList(req *artistinfoArtshow.GetArtshowVid err = tx.Count(&total).Scopes(db.Pagination(req.Page, req.PageSize)).Find(&datas).Error return } -func (a artistinfoArtshowVideo) Audit(auditStatus model.AuditStatus, mark1, mark2 string, ids ...int64) error { - return db.DB.Model(model.ArtshowRecord{}).Where("id in ?", ids). - Update("audit_status", auditStatus). - Update("audit_mark1", mark1). - Update("audit_mark2", mark2).Error +func (a artistinfoArtshowVideo) Audit(auditStatus model.AuditStatus, mark1, mark2 string, ids ...int64) (err error) { + tx := db.DB.Begin() + err = tx.Model(model.ArtshowRecord{}).Where("id in ?", ids).Update("audit_status", auditStatus).Error + if err != nil { + return err + } + err = tx.Model(model.ArtshowRecord{}).Where("id in ?", ids).Update("audit_mark1", mark1).Error + if err != nil { + return err + } + err = tx.Model(model.ArtshowRecord{}).Where("id in ?", ids).Update("audit_mark2", mark2).Error + if err != nil { + return err + } + tx.Commit() + return +} +func (a artistinfoArtshowVideo) GetArtshowVideoDetail(in *artistinfoArtshow.GetArtshowVideoDetailRequest) (rep model.ArtshowRecord, err error) { + var tx = db.DB.Model(model.ArtshowRecord{}) + if in.ArtistUid != "" { + tx = tx.Where("artist_uid =?", in.ArtistUid) + } + if in.LockTime != "" { + tx = tx.Where("lock_time", in.LockTime) + } + if in.Status != 0 { + tx = tx.Where("status", in.Status) + } + var data model.ArtshowRecord + err = tx.First(&data).Error + return } diff --git a/cmd/internal/logic/artistinfo_artshowArtistIndex.go b/cmd/internal/logic/artistinfo_artshowArtistIndex.go new file mode 100644 index 0000000..2ecec96 --- /dev/null +++ b/cmd/internal/logic/artistinfo_artshowArtistIndex.go @@ -0,0 +1,141 @@ +// Package logic ----------------------------- +// @file : artistinfo_artshowVideo.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2023/3/2 11:51 +// ------------------------------------------- +package logic + +import ( + "errors" + "fmt" + "github.com/fonchain/fonchain-artistinfo/cmd/internal/dao" + "github.com/fonchain/fonchain-artistinfo/cmd/model" + "github.com/fonchain/fonchain-artistinfo/pb/artistInfoUser" + "github.com/fonchain/fonchain-artistinfo/pb/artistinfoArtshow" + "google.golang.org/protobuf/types/known/emptypb" + "gorm.io/gorm" +) + +type ArtshowArtistIndexLogic struct{} + +func (a ArtshowArtistIndexLogic) BatchCreateArtistIndex(request *artistinfoArtshow.BatchCreateArtistIndexRequest) error { + var datas = []model.ArtshowArtistIndex{} + for _, v := range request.ArtistUids { + userInfo, err := NewArtistInfo().FindUser(&artistInfoUser.FindUserRequest{ + MgmtArtistUid: v, + IsArtist: true, + }) + if err != nil { + return err + } + if userInfo.Id == 0 { + return errors.New(fmt.Sprintf("用户%s不存在", v)) + } + datas = append(datas, + model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "exhibition", Title: "艺术家-展览", Types: "2", Status: 2}, + model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "seniority", Title: "艺术家-资历", Types: "1", Status: 2}, + model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "specialized", Title: "艺术家-专业", Types: "1", Status: 2}, + model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "Influence", Title: "艺术家-影响力", Types: "1", Status: 2}, + model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "collect", Title: "艺术家-收藏", Types: "1", Status: 2}, + ) + } + return dao.ArtistinfoArtshowArtistIndex.BatchCreateData(datas) +} + +func (a ArtshowArtistIndexLogic) CreateArtistIndex(request *artistinfoArtshow.ArtistIndexInfo) error { + return dao.ArtistinfoArtshowArtistIndex.CreateData(&model.ArtshowArtistIndex{ + LockTime: request.LockTime, + ArtistUid: request.ArtistUid, + Class: request.Class, + Title: request.Title, + Types: request.Types, + Status: 2, + }) +} +func (a ArtshowArtistIndexLogic) GetArtistIndexDetail(request *artistinfoArtshow.GetArtistIndexDetailRequest) (rep *artistinfoArtshow.ArtistIndexInfo, err error) { + data, err := dao.ArtistinfoArtshowArtistIndex.GetData(request.Id) + if err != nil { + if gorm.ErrRecordNotFound == err { + err = errors.New("找不到数据") + } + return nil, err + } + rep = &artistinfoArtshow.ArtistIndexInfo{ + ArtistUid: data.ArtistUid, + Title: data.Title, + Class: data.Class, + TitleScore: data.TitleScore, + Score: data.Score, + Types: data.Types, + Status: data.Status, + LockTime: data.LockTime, + AuditMark1: data.AuditMark1, + AuditMark2: data.AuditMark2, + AuditStatus: int64(data.AuditStatus), + Id: data.ID, + CreatedAt: data.CreatedAt.Unix(), + UpdatedAt: data.UpdatedAt.Unix(), + DeletedAt: int64(data.DeletedAt), + } + return nil, nil +} + +func (a ArtshowArtistIndexLogic) GetArtistIndexList(request *artistinfoArtshow.GetArtistIndexListRequest) (res *artistinfoArtshow.GetArtistIndexListResponse, err error) { + res = &artistinfoArtshow.GetArtistIndexListResponse{} + datas, total, err := dao.ArtistinfoArtshowArtistIndex.GetDataList(request) + if err != nil { + return nil, err + } + res.Page = &artistinfoArtshow.VideoPagination{ + Page: request.Page, + PageSize: request.PageSize, + Total: total, + } + for _, v := range datas { + res.Data = append(res.Data, &artistinfoArtshow.ArtistIndexInfo{ + ArtistUid: v.ArtistUid, + Title: v.Title, + Class: v.Class, + TitleScore: v.TitleScore, + Score: v.Score, + Types: v.Types, + Status: v.Status, + LockTime: v.LockTime, + AuditMark1: v.AuditMark1, + AuditMark2: v.AuditMark2, + AuditStatus: int64(v.AuditStatus), + Id: v.ID, + CreatedAt: v.CreatedAt.Unix(), + UpdatedAt: v.UpdatedAt.Unix(), + DeletedAt: int64(v.DeletedAt), + }) + } + return +} + +func (a ArtshowArtistIndexLogic) AuditArtistIndex(request *artistinfoArtshow.AuditArtistIndexRequest) (*emptypb.Empty, error) { + err := dao.ArtistinfoArtshowArtistIndex.Audit(model.AuditStatus(request.AuditStatus), request.AuditMark1, request.AuditMark2, request.ArtistIndexIds...) + return nil, err +} + +func (a ArtshowArtistIndexLogic) UpdateArtistIndex(request *artistinfoArtshow.UpdateArtistIndexRequest) (*emptypb.Empty, error) { + err := dao.ArtistinfoArtshowArtistIndex.UpdateData(&model.ArtshowArtistIndex{ + Model: model.Model{ID: request.Id}, + TitleScore: request.TitleScore, + Score: request.Score, + AuditStatus: model.AuditType_Pending, + }) + return nil, err +} + +func (a ArtshowArtistIndexLogic) DeletedArtistIndex(request *artistinfoArtshow.DeletedArtistIndexRequest) (*emptypb.Empty, error) { + var ids = []int64{} + if request.Id != 0 { + ids = append(ids, request.Id) + } else if len(request.Ids) > 0 { + ids = append(ids, request.Ids...) + } + err := dao.ArtistinfoArtshowArtistIndex.DeletedData(ids...) + return nil, err +} diff --git a/cmd/internal/logic/artistinfo_artshowVideo.go b/cmd/internal/logic/artistinfo_artshowVideo.go index 18415b0..cdc8db0 100644 --- a/cmd/internal/logic/artistinfo_artshowVideo.go +++ b/cmd/internal/logic/artistinfo_artshowVideo.go @@ -7,10 +7,12 @@ package logic import ( + "errors" "github.com/fonchain/fonchain-artistinfo/cmd/internal/dao" "github.com/fonchain/fonchain-artistinfo/cmd/model" "github.com/fonchain/fonchain-artistinfo/pb/artistinfoArtshow" "google.golang.org/protobuf/types/known/emptypb" + "gorm.io/gorm" ) type ArtshowVideoLogic struct{} @@ -43,6 +45,31 @@ func (a ArtshowVideoLogic) CreateArtshowVideo(request *artistinfoArtshow.Artshow Status: request.Status, }) } +func (a ArtshowVideoLogic) GetArtshowVideoDetail(request *artistinfoArtshow.GetArtshowVideoDetailRequest) (rep *artistinfoArtshow.ArtshowVideoInfo, err error) { + data, err := dao.ArtistinfoArtshowVideo.GetArtshowVideoDetail(request) + if err != nil { + if gorm.ErrRecordNotFound == err { + err = errors.New("找不到数据") + } + return nil, err + } + rep = &artistinfoArtshow.ArtshowVideoInfo{ + Id: data.ID, + ArtistUid: data.ArtistUid, + LockTime: data.LockTime, + VideoUrl: data.VideoUrl, + AuditStatus: int64(data.AuditStatus), + AuditMark1: data.AuditMark1, + AuditMark2: data.AuditMark2, + CreatedAt: data.CreatedAt.Unix(), + UpdatedAt: data.UpdatedAt.Unix(), + DeletedAt: int64(data.DeletedAt), + ArtistName: data.ArtistName, + Status: data.Status, + } + return nil, nil +} + func (a ArtshowVideoLogic) GetArtshowVideoList(request *artistinfoArtshow.GetArtshowVideoListRequst) (res *artistinfoArtshow.GetArtshowVideoListResponse, err error) { res = &artistinfoArtshow.GetArtshowVideoListResponse{} datas, total, err := dao.ArtistinfoArtshowVideo.GetDataList(request) diff --git a/cmd/model/artshow_artistIndex.go b/cmd/model/artshow_artistIndex.go new file mode 100644 index 0000000..abf787c --- /dev/null +++ b/cmd/model/artshow_artistIndex.go @@ -0,0 +1,27 @@ +// Package model ----------------------------- +// @file : artshow_artistIndex.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2023/3/2 23:11 +// ------------------------------------------- +package model + +// 画家指数 +type ArtshowArtistIndex struct { + Model + ArtistUid string `gorm:"column:artist_uid;comment:画家uid" json:"artistUid"` + Title string `gorm:"column:title;comment:" json:"title"` //艺术家-展览(exhibition) 、 艺术家-资历(seniority) 、艺术家-专业(specialized) 、艺术家-影响力(Influence)、艺术家-收藏(collect) + Class string `gorm:"column:class;comment:指数类别" json:"class"` //exhibition 、seniority 、specialized 、Influence 、collect + TitleScore int64 `gorm:"column:title_score;comment:总分" json:"titleScore"` + Score string `gorm:"column:score;comment:前端定义的分数列表" json:"score"` // + Types string `gorm:"column:types;comment:" json:"types"` + Status int64 `json:"status" gorm:"column:status;default:2;comment:2=锁定 3=解锁"` //跟随用户的锁定和解锁状态,用于控制数据的展示 + LockTime string `json:"lockTime" gorm:"column:lock_time;comment:锁定时间"` + AuditStatus AuditStatus `json:"auditStatus" gorm:"column:audit_status;default:5;comment:审核状态:2= 待审核,3= 审核失败,4= 审核通过,5= 待补充"` + AuditMark1 string `json:"auditMark1" gorm:"column:audit_mark1;comment:审核备注1"` + AuditMark2 string `json:"auditMark2" gorm:"column:audit_mark2;comment:审核备注2"` +} + +func (a ArtshowArtistIndex) TableName() string { + return "artshow_artist_index" +} diff --git a/cmd/model/artshow_video.go b/cmd/model/artshow_video.go index fef6829..ae8d99c 100644 --- a/cmd/model/artshow_video.go +++ b/cmd/model/artshow_video.go @@ -10,7 +10,7 @@ type ArtshowRecord struct { Model //通过这两个字段弱关联 artwork_lock_record表中对应的画作 ArtistUid string `json:"artistUid" gorm:"column:artist_uid;comment:"` - Status int64 `json:"status" gorm:"column:status;default:1;comment:2=锁定 3=解锁"` //跟随用户的锁定和解锁状态,用于控制数据的展示 + Status int64 `json:"status" gorm:"column:status;default:2;comment:2=锁定 3=解锁"` //跟随用户的锁定和解锁状态,用于控制数据的展示 LockTime string `json:"lockTime" gorm:"column:lock_time;comment:"` //AccountId int64 `json:"accountId" gorm:"column:account_id;comment:"` diff --git a/cmd/model/artwork_ex_exam.go b/cmd/model/old/artwork_ex_exam.go similarity index 91% rename from cmd/model/artwork_ex_exam.go rename to cmd/model/old/artwork_ex_exam.go index f6afada..799aa4c 100644 --- a/cmd/model/artwork_ex_exam.go +++ b/cmd/model/old/artwork_ex_exam.go @@ -1,8 +1,10 @@ -package model +package old + +import "github.com/fonchain/fonchain-artistinfo/cmd/model" // 画家指数 type ArtworkExExam struct { - Model + model.Model UserId uint `gorm:"column:user_id;default:0;comment:账号id" json:"userId"` ArtistUid string `json:"artistUid" gorm:"column:artist_uid;comment:"` Title string `gorm:"column:title;type:varchar(64);default:''" json:"title"` diff --git a/pb/artistinfoArtshow.proto b/pb/artistinfoArtshow.proto index b61fff0..d0a2710 100644 --- a/pb/artistinfoArtshow.proto +++ b/pb/artistinfoArtshow.proto @@ -9,15 +9,30 @@ import "google/protobuf/empty.proto"; //使用 google.protobuf.Empty // protoc -I . -I ./pb --proto_path=. --go_out=./pb/artistinfoArtshow --go-triple_out=./pb/artistinfoArtshow --validate_out="lang=go:./pb/artistinfoArtshow" ./pb/artistinfoArtshow.proto service ArtistInfoArtshow { //画展视频 + rpc GetArtshowVideoDetail(GetArtshowVideoDetailRequest)returns(ArtshowVideoInfo){} //获取视频详情 rpc GetArtshowVideoList(GetArtshowVideoListRequst)returns(GetArtshowVideoListResponse){}//获取画展视频列表 rpc CreateArtshowVideo(ArtshowVideoInfo)returns(google.protobuf.Empty){} rpc BatchCreateArtshowVideo(BatchCreateArtshowVideoRequest)returns(google.protobuf.Empty){} rpc AuditArtshowVideo(AuditArtshowVideoRequest)returns(google.protobuf.Empty){} //审批画展视频 rpc UpdateArtshowVideo(UpdateArtshowVideoRequest)returns(google.protobuf.Empty){} //更新或创建画展视频 rpc DeletedArtshowVideo(DeletedArtshowVideoRequest)returns(google.protobuf.Empty){} //删除画展视频 - rpc CheckeExists(CheckeExistsRequest)returns(google.protobuf.Empty){} //删除画展视频 +// rpc CheckeExists(CheckeExistsRequest)returns(google.protobuf.Empty){} //删除画展视频 +// rpc GetArtistListOfVideo(ArtistListRequest)returns(){}//获取后台画家指数审批的画家列表 + + //画家指数 + rpc GetArtistIndexDetail(GetArtistIndexDetailRequest)returns(ArtistIndexInfo){} //获取视频详情 + rpc GetArtistIndexList(GetArtistIndexListRequest)returns(GetArtistIndexListResponse){}//获取画展视频列表 + rpc CreateArtistIndex(ArtistIndexInfo)returns(google.protobuf.Empty){} + rpc BatchCreateArtistIndex(BatchCreateArtistIndexRequest)returns(google.protobuf.Empty){} + rpc AuditArtistIndex(AuditArtistIndexRequest)returns(google.protobuf.Empty){} //审批画展视频 + rpc UpdateArtistIndex(UpdateArtistIndexRequest)returns(google.protobuf.Empty){} //更新或创建画展视频 + rpc DeletedArtistIndex(DeletedArtistIndexRequest)returns(google.protobuf.Empty){} //删除画展视频 +// rpc GetArtistListOfArtistIndex(ArtistListRequest)returns(){}//获取后台画家指数审批的画家列表 + +} +message ArtistListRequest{ + string artistName =1; } - message videoPagination{ int64 page =1; int64 pageSize=2; @@ -80,4 +95,68 @@ message BatchCreateArtshowVideoRequest{ message CheckeExistsRequest{ string artistUid =1; string lockTime =2; -} \ No newline at end of file +} + +message GetArtshowVideoDetailRequest{ + string artistUid=1; + string lockTime=2; + int32 status=3; +} + +//-------------------画家指数请求参数 +message ArtistIndexInfo{ + string artistUid=1; + string title=2; + string class=3; + int64 titleScore=4; + string score=5; + string types=6; + int64 status=7; + string lockTime=8; + string auditMark1=9; + string auditMark2=10; + int64 auditStatus=11; + int64 id=12; + int64 createdAt=13; + int64 updatedAt=14; + int64 deletedAt=15; +} +message GetArtistIndexListResponse{ + repeated ArtistIndexInfo Data=1; + videoPagination page=2; +} + message GetArtistIndexDetailRequest{ + int64 id =1; + } + message GetArtistIndexListRequest{ + string artistUid =1; + string artistName =3; + string lockTime=4; + int64 auditStatus=5; + int64 status=6; //锁定状态 2=锁定 3=解锁 + int64 page=7; + int64 pageSize=8; + } + + message BatchCreateArtistIndexRequest{ + repeated string artistUids =1; +// string lockTime=2; + } + message AuditArtistIndexRequest{ + repeated int64 artistIndexIds =1; + int64 auditStatus =5; + string auditMark1 =6; + string auditMark2 =7; + + } + message UpdateArtistIndexRequest{ + int64 id=12; + int64 titleScore=4; + string score=5; + int64 status=7; + } + + message DeletedArtistIndexRequest{ + int64 Id=1; //单个删除 + repeated int64 Ids =2; //批量删除 + } \ No newline at end of file diff --git a/pb/artistinfoArtshow/artistinfoArtshow.pb.go b/pb/artistinfoArtshow/artistinfoArtshow.pb.go index 6ff6fc6..bcf3c29 100644 --- a/pb/artistinfoArtshow/artistinfoArtshow.pb.go +++ b/pb/artistinfoArtshow/artistinfoArtshow.pb.go @@ -26,6 +26,53 @@ const ( type Timestamp = timestamppb.Timestamp +type ArtistListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistName string `protobuf:"bytes,1,opt,name=artistName,proto3" json:"artistName,omitempty"` +} + +func (x *ArtistListRequest) Reset() { + *x = ArtistListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtistListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtistListRequest) ProtoMessage() {} + +func (x *ArtistListRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArtistListRequest.ProtoReflect.Descriptor instead. +func (*ArtistListRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{0} +} + +func (x *ArtistListRequest) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + type VideoPagination struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -39,7 +86,7 @@ type VideoPagination struct { func (x *VideoPagination) Reset() { *x = VideoPagination{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[0] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52,7 +99,7 @@ func (x *VideoPagination) String() string { func (*VideoPagination) ProtoMessage() {} func (x *VideoPagination) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[0] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65,7 +112,7 @@ func (x *VideoPagination) ProtoReflect() protoreflect.Message { // Deprecated: Use VideoPagination.ProtoReflect.Descriptor instead. func (*VideoPagination) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{0} + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{1} } func (x *VideoPagination) GetPage() int64 { @@ -106,7 +153,7 @@ type GetArtshowVideoListRequst struct { func (x *GetArtshowVideoListRequst) Reset() { *x = GetArtshowVideoListRequst{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[1] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -119,7 +166,7 @@ func (x *GetArtshowVideoListRequst) String() string { func (*GetArtshowVideoListRequst) ProtoMessage() {} func (x *GetArtshowVideoListRequst) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[1] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -132,7 +179,7 @@ func (x *GetArtshowVideoListRequst) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtshowVideoListRequst.ProtoReflect.Descriptor instead. func (*GetArtshowVideoListRequst) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{1} + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{2} } func (x *GetArtshowVideoListRequst) GetPage() int64 { @@ -206,7 +253,7 @@ type ArtshowVideoInfo struct { func (x *ArtshowVideoInfo) Reset() { *x = ArtshowVideoInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[2] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -219,7 +266,7 @@ func (x *ArtshowVideoInfo) String() string { func (*ArtshowVideoInfo) ProtoMessage() {} func (x *ArtshowVideoInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[2] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -232,7 +279,7 @@ func (x *ArtshowVideoInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtshowVideoInfo.ProtoReflect.Descriptor instead. func (*ArtshowVideoInfo) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{2} + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{3} } func (x *ArtshowVideoInfo) GetId() int64 { @@ -331,7 +378,7 @@ type GetArtshowVideoListResponse struct { func (x *GetArtshowVideoListResponse) Reset() { *x = GetArtshowVideoListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[3] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -344,7 +391,7 @@ func (x *GetArtshowVideoListResponse) String() string { func (*GetArtshowVideoListResponse) ProtoMessage() {} func (x *GetArtshowVideoListResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[3] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -357,7 +404,7 @@ func (x *GetArtshowVideoListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtshowVideoListResponse.ProtoReflect.Descriptor instead. func (*GetArtshowVideoListResponse) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{3} + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{4} } func (x *GetArtshowVideoListResponse) GetData() []*ArtshowVideoInfo { @@ -388,7 +435,7 @@ type AuditArtshowVideoRequest struct { func (x *AuditArtshowVideoRequest) Reset() { *x = AuditArtshowVideoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[4] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -401,7 +448,7 @@ func (x *AuditArtshowVideoRequest) String() string { func (*AuditArtshowVideoRequest) ProtoMessage() {} func (x *AuditArtshowVideoRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[4] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -414,7 +461,7 @@ func (x *AuditArtshowVideoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AuditArtshowVideoRequest.ProtoReflect.Descriptor instead. func (*AuditArtshowVideoRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{4} + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{5} } func (x *AuditArtshowVideoRequest) GetArtshowVideoIds() []int64 { @@ -464,7 +511,7 @@ type UpdateArtshowVideoRequest struct { func (x *UpdateArtshowVideoRequest) Reset() { *x = UpdateArtshowVideoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[5] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -477,7 +524,7 @@ func (x *UpdateArtshowVideoRequest) String() string { func (*UpdateArtshowVideoRequest) ProtoMessage() {} func (x *UpdateArtshowVideoRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[5] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -490,7 +537,7 @@ func (x *UpdateArtshowVideoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateArtshowVideoRequest.ProtoReflect.Descriptor instead. func (*UpdateArtshowVideoRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{5} + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{6} } func (x *UpdateArtshowVideoRequest) GetId() int64 { @@ -568,7 +615,7 @@ type DeletedArtshowVideoRequest struct { func (x *DeletedArtshowVideoRequest) Reset() { *x = DeletedArtshowVideoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[6] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -581,7 +628,7 @@ func (x *DeletedArtshowVideoRequest) String() string { func (*DeletedArtshowVideoRequest) ProtoMessage() {} func (x *DeletedArtshowVideoRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[6] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -594,7 +641,7 @@ func (x *DeletedArtshowVideoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeletedArtshowVideoRequest.ProtoReflect.Descriptor instead. func (*DeletedArtshowVideoRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{6} + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{7} } func (x *DeletedArtshowVideoRequest) GetId() int64 { @@ -622,7 +669,7 @@ type BatchCreateArtshowVideoRequest struct { func (x *BatchCreateArtshowVideoRequest) Reset() { *x = BatchCreateArtshowVideoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[7] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -635,7 +682,7 @@ func (x *BatchCreateArtshowVideoRequest) String() string { func (*BatchCreateArtshowVideoRequest) ProtoMessage() {} func (x *BatchCreateArtshowVideoRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[7] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -648,7 +695,7 @@ func (x *BatchCreateArtshowVideoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BatchCreateArtshowVideoRequest.ProtoReflect.Descriptor instead. func (*BatchCreateArtshowVideoRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{7} + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{8} } func (x *BatchCreateArtshowVideoRequest) GetData() []*ArtshowVideoInfo { @@ -670,7 +717,7 @@ type CheckeExistsRequest struct { func (x *CheckeExistsRequest) Reset() { *x = CheckeExistsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[8] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -683,7 +730,7 @@ func (x *CheckeExistsRequest) String() string { func (*CheckeExistsRequest) ProtoMessage() {} func (x *CheckeExistsRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_artistinfoArtshow_proto_msgTypes[8] + mi := &file_pb_artistinfoArtshow_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -696,7 +743,7 @@ func (x *CheckeExistsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckeExistsRequest.ProtoReflect.Descriptor instead. func (*CheckeExistsRequest) Descriptor() ([]byte, []int) { - return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{8} + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{9} } func (x *CheckeExistsRequest) GetArtistUid() string { @@ -713,6 +760,670 @@ func (x *CheckeExistsRequest) GetLockTime() string { return "" } +type GetArtshowVideoDetailRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUid string `protobuf:"bytes,1,opt,name=artistUid,proto3" json:"artistUid,omitempty"` + LockTime string `protobuf:"bytes,2,opt,name=lockTime,proto3" json:"lockTime,omitempty"` + Status int32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *GetArtshowVideoDetailRequest) Reset() { + *x = GetArtshowVideoDetailRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetArtshowVideoDetailRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetArtshowVideoDetailRequest) ProtoMessage() {} + +func (x *GetArtshowVideoDetailRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetArtshowVideoDetailRequest.ProtoReflect.Descriptor instead. +func (*GetArtshowVideoDetailRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{10} +} + +func (x *GetArtshowVideoDetailRequest) GetArtistUid() string { + if x != nil { + return x.ArtistUid + } + return "" +} + +func (x *GetArtshowVideoDetailRequest) GetLockTime() string { + if x != nil { + return x.LockTime + } + return "" +} + +func (x *GetArtshowVideoDetailRequest) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +// -------------------画家指数请求参数 +type ArtistIndexInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUid string `protobuf:"bytes,1,opt,name=artistUid,proto3" json:"artistUid,omitempty"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` + Class string `protobuf:"bytes,3,opt,name=class,proto3" json:"class,omitempty"` + TitleScore int64 `protobuf:"varint,4,opt,name=titleScore,proto3" json:"titleScore,omitempty"` + Score string `protobuf:"bytes,5,opt,name=score,proto3" json:"score,omitempty"` + Types string `protobuf:"bytes,6,opt,name=types,proto3" json:"types,omitempty"` + Status int64 `protobuf:"varint,7,opt,name=status,proto3" json:"status,omitempty"` + LockTime string `protobuf:"bytes,8,opt,name=lockTime,proto3" json:"lockTime,omitempty"` + AuditMark1 string `protobuf:"bytes,9,opt,name=auditMark1,proto3" json:"auditMark1,omitempty"` + AuditMark2 string `protobuf:"bytes,10,opt,name=auditMark2,proto3" json:"auditMark2,omitempty"` + AuditStatus int64 `protobuf:"varint,11,opt,name=auditStatus,proto3" json:"auditStatus,omitempty"` + Id int64 `protobuf:"varint,12,opt,name=id,proto3" json:"id,omitempty"` + CreatedAt int64 `protobuf:"varint,13,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdatedAt int64 `protobuf:"varint,14,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` + DeletedAt int64 `protobuf:"varint,15,opt,name=deletedAt,proto3" json:"deletedAt,omitempty"` +} + +func (x *ArtistIndexInfo) Reset() { + *x = ArtistIndexInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtistIndexInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtistIndexInfo) ProtoMessage() {} + +func (x *ArtistIndexInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArtistIndexInfo.ProtoReflect.Descriptor instead. +func (*ArtistIndexInfo) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{11} +} + +func (x *ArtistIndexInfo) GetArtistUid() string { + if x != nil { + return x.ArtistUid + } + return "" +} + +func (x *ArtistIndexInfo) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *ArtistIndexInfo) GetClass() string { + if x != nil { + return x.Class + } + return "" +} + +func (x *ArtistIndexInfo) GetTitleScore() int64 { + if x != nil { + return x.TitleScore + } + return 0 +} + +func (x *ArtistIndexInfo) GetScore() string { + if x != nil { + return x.Score + } + return "" +} + +func (x *ArtistIndexInfo) GetTypes() string { + if x != nil { + return x.Types + } + return "" +} + +func (x *ArtistIndexInfo) GetStatus() int64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *ArtistIndexInfo) GetLockTime() string { + if x != nil { + return x.LockTime + } + return "" +} + +func (x *ArtistIndexInfo) GetAuditMark1() string { + if x != nil { + return x.AuditMark1 + } + return "" +} + +func (x *ArtistIndexInfo) GetAuditMark2() string { + if x != nil { + return x.AuditMark2 + } + return "" +} + +func (x *ArtistIndexInfo) GetAuditStatus() int64 { + if x != nil { + return x.AuditStatus + } + return 0 +} + +func (x *ArtistIndexInfo) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ArtistIndexInfo) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *ArtistIndexInfo) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *ArtistIndexInfo) GetDeletedAt() int64 { + if x != nil { + return x.DeletedAt + } + return 0 +} + +type GetArtistIndexListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*ArtistIndexInfo `protobuf:"bytes,1,rep,name=Data,proto3" json:"Data,omitempty"` + Page *VideoPagination `protobuf:"bytes,2,opt,name=page,proto3" json:"page,omitempty"` +} + +func (x *GetArtistIndexListResponse) Reset() { + *x = GetArtistIndexListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetArtistIndexListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetArtistIndexListResponse) ProtoMessage() {} + +func (x *GetArtistIndexListResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetArtistIndexListResponse.ProtoReflect.Descriptor instead. +func (*GetArtistIndexListResponse) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{12} +} + +func (x *GetArtistIndexListResponse) GetData() []*ArtistIndexInfo { + if x != nil { + return x.Data + } + return nil +} + +func (x *GetArtistIndexListResponse) GetPage() *VideoPagination { + if x != nil { + return x.Page + } + return nil +} + +type GetArtistIndexDetailRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *GetArtistIndexDetailRequest) Reset() { + *x = GetArtistIndexDetailRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetArtistIndexDetailRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetArtistIndexDetailRequest) ProtoMessage() {} + +func (x *GetArtistIndexDetailRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetArtistIndexDetailRequest.ProtoReflect.Descriptor instead. +func (*GetArtistIndexDetailRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{13} +} + +func (x *GetArtistIndexDetailRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +type GetArtistIndexListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUid string `protobuf:"bytes,1,opt,name=artistUid,proto3" json:"artistUid,omitempty"` + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName,omitempty"` + LockTime string `protobuf:"bytes,4,opt,name=lockTime,proto3" json:"lockTime,omitempty"` + AuditStatus int64 `protobuf:"varint,5,opt,name=auditStatus,proto3" json:"auditStatus,omitempty"` + Status int64 `protobuf:"varint,6,opt,name=status,proto3" json:"status,omitempty"` //锁定状态 2=锁定 3=解锁 + Page int64 `protobuf:"varint,7,opt,name=page,proto3" json:"page,omitempty"` + PageSize int64 `protobuf:"varint,8,opt,name=pageSize,proto3" json:"pageSize,omitempty"` +} + +func (x *GetArtistIndexListRequest) Reset() { + *x = GetArtistIndexListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetArtistIndexListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetArtistIndexListRequest) ProtoMessage() {} + +func (x *GetArtistIndexListRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetArtistIndexListRequest.ProtoReflect.Descriptor instead. +func (*GetArtistIndexListRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{14} +} + +func (x *GetArtistIndexListRequest) GetArtistUid() string { + if x != nil { + return x.ArtistUid + } + return "" +} + +func (x *GetArtistIndexListRequest) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *GetArtistIndexListRequest) GetLockTime() string { + if x != nil { + return x.LockTime + } + return "" +} + +func (x *GetArtistIndexListRequest) GetAuditStatus() int64 { + if x != nil { + return x.AuditStatus + } + return 0 +} + +func (x *GetArtistIndexListRequest) GetStatus() int64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *GetArtistIndexListRequest) GetPage() int64 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetArtistIndexListRequest) GetPageSize() int64 { + if x != nil { + return x.PageSize + } + return 0 +} + +type BatchCreateArtistIndexRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUids []string `protobuf:"bytes,1,rep,name=artistUids,proto3" json:"artistUids,omitempty"` // string lockTime=2; +} + +func (x *BatchCreateArtistIndexRequest) Reset() { + *x = BatchCreateArtistIndexRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchCreateArtistIndexRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchCreateArtistIndexRequest) ProtoMessage() {} + +func (x *BatchCreateArtistIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchCreateArtistIndexRequest.ProtoReflect.Descriptor instead. +func (*BatchCreateArtistIndexRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{15} +} + +func (x *BatchCreateArtistIndexRequest) GetArtistUids() []string { + if x != nil { + return x.ArtistUids + } + return nil +} + +type AuditArtistIndexRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistIndexIds []int64 `protobuf:"varint,1,rep,packed,name=artistIndexIds,proto3" json:"artistIndexIds,omitempty"` + AuditStatus int64 `protobuf:"varint,5,opt,name=auditStatus,proto3" json:"auditStatus,omitempty"` + AuditMark1 string `protobuf:"bytes,6,opt,name=auditMark1,proto3" json:"auditMark1,omitempty"` + AuditMark2 string `protobuf:"bytes,7,opt,name=auditMark2,proto3" json:"auditMark2,omitempty"` +} + +func (x *AuditArtistIndexRequest) Reset() { + *x = AuditArtistIndexRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuditArtistIndexRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuditArtistIndexRequest) ProtoMessage() {} + +func (x *AuditArtistIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AuditArtistIndexRequest.ProtoReflect.Descriptor instead. +func (*AuditArtistIndexRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{16} +} + +func (x *AuditArtistIndexRequest) GetArtistIndexIds() []int64 { + if x != nil { + return x.ArtistIndexIds + } + return nil +} + +func (x *AuditArtistIndexRequest) GetAuditStatus() int64 { + if x != nil { + return x.AuditStatus + } + return 0 +} + +func (x *AuditArtistIndexRequest) GetAuditMark1() string { + if x != nil { + return x.AuditMark1 + } + return "" +} + +func (x *AuditArtistIndexRequest) GetAuditMark2() string { + if x != nil { + return x.AuditMark2 + } + return "" +} + +type UpdateArtistIndexRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,12,opt,name=id,proto3" json:"id,omitempty"` + TitleScore int64 `protobuf:"varint,4,opt,name=titleScore,proto3" json:"titleScore,omitempty"` + Score string `protobuf:"bytes,5,opt,name=score,proto3" json:"score,omitempty"` + Status int64 `protobuf:"varint,7,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *UpdateArtistIndexRequest) Reset() { + *x = UpdateArtistIndexRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateArtistIndexRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateArtistIndexRequest) ProtoMessage() {} + +func (x *UpdateArtistIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateArtistIndexRequest.ProtoReflect.Descriptor instead. +func (*UpdateArtistIndexRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{17} +} + +func (x *UpdateArtistIndexRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *UpdateArtistIndexRequest) GetTitleScore() int64 { + if x != nil { + return x.TitleScore + } + return 0 +} + +func (x *UpdateArtistIndexRequest) GetScore() string { + if x != nil { + return x.Score + } + return "" +} + +func (x *UpdateArtistIndexRequest) GetStatus() int64 { + if x != nil { + return x.Status + } + return 0 +} + +type DeletedArtistIndexRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //单个删除 + Ids []int64 `protobuf:"varint,2,rep,packed,name=Ids,proto3" json:"Ids,omitempty"` //批量删除 +} + +func (x *DeletedArtistIndexRequest) Reset() { + *x = DeletedArtistIndexRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeletedArtistIndexRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeletedArtistIndexRequest) ProtoMessage() {} + +func (x *DeletedArtistIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeletedArtistIndexRequest.ProtoReflect.Descriptor instead. +func (*DeletedArtistIndexRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{18} +} + +func (x *DeletedArtistIndexRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *DeletedArtistIndexRequest) GetIds() []int64 { + if x != nil { + return x.Ids + } + return nil +} + var File_pb_artistinfoArtshow_proto protoreflect.FileDescriptor var file_pb_artistinfoArtshow_proto_rawDesc = []byte{ @@ -722,142 +1433,271 @@ var file_pb_artistinfoArtshow_proto_rawDesc = []byte{ 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x57, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, - 0xdf, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, - 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x61, 0x72, 0x74, 0x69, 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, 0x1c, 0x0a, - 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, - 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, - 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, - 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0xec, 0x02, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, - 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, - 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, - 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x30, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x73, - 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x76, 0x69, - 0x64, 0x65, 0x6f, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x70, - 0x61, 0x67, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x18, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, - 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, - 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0f, 0x61, 0x72, 0x74, 0x73, 0x68, - 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, - 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, - 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x22, 0x9b, 0x02, 0x0a, - 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, - 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x33, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x57, 0x0a, 0x0f, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, + 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xdf, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, + 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 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, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xec, 0x02, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x73, 0x68, + 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, + 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, + 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, + 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, + 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, + 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, + 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x18, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0f, + 0x61, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x73, 0x12, + 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x32, 0x22, 0x9b, 0x02, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, + 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, + 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, + 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x3e, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, + 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, 0x73, 0x22, + 0x52, 0x0a, 0x1e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, + 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, + 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x13, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x45, 0x78, 0x69, + 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, - 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, - 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, - 0x6b, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x64, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, 0x73, 0x22, 0x52, 0x0a, 0x1e, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, - 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, + 0x54, 0x69, 0x6d, 0x65, 0x22, 0x70, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, + 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, + 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xa7, 0x03, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, + 0x6b, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, + 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, + 0x6b, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, + 0x61, 0x72, 0x6b, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x22, 0x7e, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, + 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x2f, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x22, 0x2d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, + 0xdf, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, + 0x72, 0x74, 0x69, 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, 0x1a, 0x0a, 0x08, 0x6c, + 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, + 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x22, 0x3f, 0x0a, 0x1d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, + 0x64, 0x73, 0x22, 0xa3, 0x01, 0x0a, 0x17, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, + 0x0a, 0x0e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, + 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x22, 0x78, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x3d, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, + 0x10, 0x0a, 0x03, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, + 0x73, 0x32, 0x84, 0x0a, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x61, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, + 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4f, - 0x0a, 0x13, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x32, - 0xfb, 0x04, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, - 0x74, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x67, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, - 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, - 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, - 0x66, 0x6f, 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, 0x5f, 0x0a, 0x17, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, - 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x2a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, - 0x11, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, + 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, + 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 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, 0x5f, 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x2a, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, - 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, - 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x22, 0x00, 0x12, 0x53, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, + 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, + 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x25, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x57, + 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, + 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, + 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, + 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, + 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, 0x5d, 0x0a, 0x16, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x13, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, - 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x45, 0x78, 0x69, 0x73, - 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x16, 0x5a, - 0x14, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x41, 0x72, - 0x74, 0x73, 0x68, 0x6f, 0x77, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x10, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x23, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x11, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x12, 0x55, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, + 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -872,42 +1712,68 @@ func file_pb_artistinfoArtshow_proto_rawDescGZIP() []byte { return file_pb_artistinfoArtshow_proto_rawDescData } -var file_pb_artistinfoArtshow_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_pb_artistinfoArtshow_proto_msgTypes = make([]protoimpl.MessageInfo, 19) var file_pb_artistinfoArtshow_proto_goTypes = []interface{}{ - (*VideoPagination)(nil), // 0: artistinfo.videoPagination - (*GetArtshowVideoListRequst)(nil), // 1: artistinfo.GetArtshowVideoListRequst - (*ArtshowVideoInfo)(nil), // 2: artistinfo.ArtshowVideoInfo - (*GetArtshowVideoListResponse)(nil), // 3: artistinfo.GetArtshowVideoListResponse - (*AuditArtshowVideoRequest)(nil), // 4: artistinfo.AuditArtshowVideoRequest - (*UpdateArtshowVideoRequest)(nil), // 5: artistinfo.UpdateArtshowVideoRequest - (*DeletedArtshowVideoRequest)(nil), // 6: artistinfo.DeletedArtshowVideoRequest - (*BatchCreateArtshowVideoRequest)(nil), // 7: artistinfo.BatchCreateArtshowVideoRequest - (*CheckeExistsRequest)(nil), // 8: artistinfo.CheckeExistsRequest - (*emptypb.Empty)(nil), // 9: google.protobuf.Empty + (*ArtistListRequest)(nil), // 0: artistinfo.ArtistListRequest + (*VideoPagination)(nil), // 1: artistinfo.videoPagination + (*GetArtshowVideoListRequst)(nil), // 2: artistinfo.GetArtshowVideoListRequst + (*ArtshowVideoInfo)(nil), // 3: artistinfo.ArtshowVideoInfo + (*GetArtshowVideoListResponse)(nil), // 4: artistinfo.GetArtshowVideoListResponse + (*AuditArtshowVideoRequest)(nil), // 5: artistinfo.AuditArtshowVideoRequest + (*UpdateArtshowVideoRequest)(nil), // 6: artistinfo.UpdateArtshowVideoRequest + (*DeletedArtshowVideoRequest)(nil), // 7: artistinfo.DeletedArtshowVideoRequest + (*BatchCreateArtshowVideoRequest)(nil), // 8: artistinfo.BatchCreateArtshowVideoRequest + (*CheckeExistsRequest)(nil), // 9: artistinfo.CheckeExistsRequest + (*GetArtshowVideoDetailRequest)(nil), // 10: artistinfo.GetArtshowVideoDetailRequest + (*ArtistIndexInfo)(nil), // 11: artistinfo.ArtistIndexInfo + (*GetArtistIndexListResponse)(nil), // 12: artistinfo.GetArtistIndexListResponse + (*GetArtistIndexDetailRequest)(nil), // 13: artistinfo.GetArtistIndexDetailRequest + (*GetArtistIndexListRequest)(nil), // 14: artistinfo.GetArtistIndexListRequest + (*BatchCreateArtistIndexRequest)(nil), // 15: artistinfo.BatchCreateArtistIndexRequest + (*AuditArtistIndexRequest)(nil), // 16: artistinfo.AuditArtistIndexRequest + (*UpdateArtistIndexRequest)(nil), // 17: artistinfo.UpdateArtistIndexRequest + (*DeletedArtistIndexRequest)(nil), // 18: artistinfo.DeletedArtistIndexRequest + (*emptypb.Empty)(nil), // 19: google.protobuf.Empty } var file_pb_artistinfoArtshow_proto_depIdxs = []int32{ - 2, // 0: artistinfo.GetArtshowVideoListResponse.data:type_name -> artistinfo.ArtshowVideoInfo - 0, // 1: artistinfo.GetArtshowVideoListResponse.page:type_name -> artistinfo.videoPagination - 2, // 2: artistinfo.BatchCreateArtshowVideoRequest.data:type_name -> artistinfo.ArtshowVideoInfo - 1, // 3: artistinfo.ArtistInfoArtshow.GetArtshowVideoList:input_type -> artistinfo.GetArtshowVideoListRequst - 2, // 4: artistinfo.ArtistInfoArtshow.CreateArtshowVideo:input_type -> artistinfo.ArtshowVideoInfo - 7, // 5: artistinfo.ArtistInfoArtshow.BatchCreateArtshowVideo:input_type -> artistinfo.BatchCreateArtshowVideoRequest - 4, // 6: artistinfo.ArtistInfoArtshow.AuditArtshowVideo:input_type -> artistinfo.AuditArtshowVideoRequest - 5, // 7: artistinfo.ArtistInfoArtshow.UpdateArtshowVideo:input_type -> artistinfo.UpdateArtshowVideoRequest - 6, // 8: artistinfo.ArtistInfoArtshow.DeletedArtshowVideo:input_type -> artistinfo.DeletedArtshowVideoRequest - 8, // 9: artistinfo.ArtistInfoArtshow.CheckeExists:input_type -> artistinfo.CheckeExistsRequest - 3, // 10: artistinfo.ArtistInfoArtshow.GetArtshowVideoList:output_type -> artistinfo.GetArtshowVideoListResponse - 9, // 11: artistinfo.ArtistInfoArtshow.CreateArtshowVideo:output_type -> google.protobuf.Empty - 9, // 12: artistinfo.ArtistInfoArtshow.BatchCreateArtshowVideo:output_type -> google.protobuf.Empty - 9, // 13: artistinfo.ArtistInfoArtshow.AuditArtshowVideo:output_type -> google.protobuf.Empty - 9, // 14: artistinfo.ArtistInfoArtshow.UpdateArtshowVideo:output_type -> google.protobuf.Empty - 9, // 15: artistinfo.ArtistInfoArtshow.DeletedArtshowVideo:output_type -> google.protobuf.Empty - 9, // 16: artistinfo.ArtistInfoArtshow.CheckeExists:output_type -> google.protobuf.Empty - 10, // [10:17] is the sub-list for method output_type - 3, // [3:10] is the sub-list for method input_type - 3, // [3:3] is the sub-list for extension type_name - 3, // [3:3] is the sub-list for extension extendee - 0, // [0:3] is the sub-list for field type_name + 3, // 0: artistinfo.GetArtshowVideoListResponse.data:type_name -> artistinfo.ArtshowVideoInfo + 1, // 1: artistinfo.GetArtshowVideoListResponse.page:type_name -> artistinfo.videoPagination + 3, // 2: artistinfo.BatchCreateArtshowVideoRequest.data:type_name -> artistinfo.ArtshowVideoInfo + 11, // 3: artistinfo.GetArtistIndexListResponse.Data:type_name -> artistinfo.ArtistIndexInfo + 1, // 4: artistinfo.GetArtistIndexListResponse.page:type_name -> artistinfo.videoPagination + 10, // 5: artistinfo.ArtistInfoArtshow.GetArtshowVideoDetail:input_type -> artistinfo.GetArtshowVideoDetailRequest + 2, // 6: artistinfo.ArtistInfoArtshow.GetArtshowVideoList:input_type -> artistinfo.GetArtshowVideoListRequst + 3, // 7: artistinfo.ArtistInfoArtshow.CreateArtshowVideo:input_type -> artistinfo.ArtshowVideoInfo + 8, // 8: artistinfo.ArtistInfoArtshow.BatchCreateArtshowVideo:input_type -> artistinfo.BatchCreateArtshowVideoRequest + 5, // 9: artistinfo.ArtistInfoArtshow.AuditArtshowVideo:input_type -> artistinfo.AuditArtshowVideoRequest + 6, // 10: artistinfo.ArtistInfoArtshow.UpdateArtshowVideo:input_type -> artistinfo.UpdateArtshowVideoRequest + 7, // 11: artistinfo.ArtistInfoArtshow.DeletedArtshowVideo:input_type -> artistinfo.DeletedArtshowVideoRequest + 13, // 12: artistinfo.ArtistInfoArtshow.GetArtistIndexDetail:input_type -> artistinfo.GetArtistIndexDetailRequest + 14, // 13: artistinfo.ArtistInfoArtshow.GetArtistIndexList:input_type -> artistinfo.GetArtistIndexListRequest + 11, // 14: artistinfo.ArtistInfoArtshow.CreateArtistIndex:input_type -> artistinfo.ArtistIndexInfo + 15, // 15: artistinfo.ArtistInfoArtshow.BatchCreateArtistIndex:input_type -> artistinfo.BatchCreateArtistIndexRequest + 16, // 16: artistinfo.ArtistInfoArtshow.AuditArtistIndex:input_type -> artistinfo.AuditArtistIndexRequest + 17, // 17: artistinfo.ArtistInfoArtshow.UpdateArtistIndex:input_type -> artistinfo.UpdateArtistIndexRequest + 18, // 18: artistinfo.ArtistInfoArtshow.DeletedArtistIndex:input_type -> artistinfo.DeletedArtistIndexRequest + 3, // 19: artistinfo.ArtistInfoArtshow.GetArtshowVideoDetail:output_type -> artistinfo.ArtshowVideoInfo + 4, // 20: artistinfo.ArtistInfoArtshow.GetArtshowVideoList:output_type -> artistinfo.GetArtshowVideoListResponse + 19, // 21: artistinfo.ArtistInfoArtshow.CreateArtshowVideo:output_type -> google.protobuf.Empty + 19, // 22: artistinfo.ArtistInfoArtshow.BatchCreateArtshowVideo:output_type -> google.protobuf.Empty + 19, // 23: artistinfo.ArtistInfoArtshow.AuditArtshowVideo:output_type -> google.protobuf.Empty + 19, // 24: artistinfo.ArtistInfoArtshow.UpdateArtshowVideo:output_type -> google.protobuf.Empty + 19, // 25: artistinfo.ArtistInfoArtshow.DeletedArtshowVideo:output_type -> google.protobuf.Empty + 11, // 26: artistinfo.ArtistInfoArtshow.GetArtistIndexDetail:output_type -> artistinfo.ArtistIndexInfo + 12, // 27: artistinfo.ArtistInfoArtshow.GetArtistIndexList:output_type -> artistinfo.GetArtistIndexListResponse + 19, // 28: artistinfo.ArtistInfoArtshow.CreateArtistIndex:output_type -> google.protobuf.Empty + 19, // 29: artistinfo.ArtistInfoArtshow.BatchCreateArtistIndex:output_type -> google.protobuf.Empty + 19, // 30: artistinfo.ArtistInfoArtshow.AuditArtistIndex:output_type -> google.protobuf.Empty + 19, // 31: artistinfo.ArtistInfoArtshow.UpdateArtistIndex:output_type -> google.protobuf.Empty + 19, // 32: artistinfo.ArtistInfoArtshow.DeletedArtistIndex:output_type -> google.protobuf.Empty + 19, // [19:33] is the sub-list for method output_type + 5, // [5:19] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name } func init() { file_pb_artistinfoArtshow_proto_init() } @@ -917,7 +1783,7 @@ func file_pb_artistinfoArtshow_proto_init() { } if !protoimpl.UnsafeEnabled { file_pb_artistinfoArtshow_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VideoPagination); i { + switch v := v.(*ArtistListRequest); i { case 0: return &v.state case 1: @@ -929,7 +1795,7 @@ func file_pb_artistinfoArtshow_proto_init() { } } file_pb_artistinfoArtshow_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtshowVideoListRequst); i { + switch v := v.(*VideoPagination); i { case 0: return &v.state case 1: @@ -941,7 +1807,7 @@ func file_pb_artistinfoArtshow_proto_init() { } } file_pb_artistinfoArtshow_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtshowVideoInfo); i { + switch v := v.(*GetArtshowVideoListRequst); i { case 0: return &v.state case 1: @@ -953,7 +1819,7 @@ func file_pb_artistinfoArtshow_proto_init() { } } file_pb_artistinfoArtshow_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtshowVideoListResponse); i { + switch v := v.(*ArtshowVideoInfo); i { case 0: return &v.state case 1: @@ -965,7 +1831,7 @@ func file_pb_artistinfoArtshow_proto_init() { } } file_pb_artistinfoArtshow_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AuditArtshowVideoRequest); i { + switch v := v.(*GetArtshowVideoListResponse); i { case 0: return &v.state case 1: @@ -977,7 +1843,7 @@ func file_pb_artistinfoArtshow_proto_init() { } } file_pb_artistinfoArtshow_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateArtshowVideoRequest); i { + switch v := v.(*AuditArtshowVideoRequest); i { case 0: return &v.state case 1: @@ -989,7 +1855,7 @@ func file_pb_artistinfoArtshow_proto_init() { } } file_pb_artistinfoArtshow_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeletedArtshowVideoRequest); i { + switch v := v.(*UpdateArtshowVideoRequest); i { case 0: return &v.state case 1: @@ -1001,7 +1867,7 @@ func file_pb_artistinfoArtshow_proto_init() { } } file_pb_artistinfoArtshow_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchCreateArtshowVideoRequest); i { + switch v := v.(*DeletedArtshowVideoRequest); i { case 0: return &v.state case 1: @@ -1013,6 +1879,18 @@ func file_pb_artistinfoArtshow_proto_init() { } } file_pb_artistinfoArtshow_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchCreateArtshowVideoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckeExistsRequest); i { case 0: return &v.state @@ -1024,6 +1902,114 @@ func file_pb_artistinfoArtshow_proto_init() { return nil } } + file_pb_artistinfoArtshow_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArtshowVideoDetailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtistIndexInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArtistIndexListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArtistIndexDetailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArtistIndexListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchCreateArtistIndexRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuditArtistIndexRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateArtistIndexRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeletedArtistIndexRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1031,7 +2017,7 @@ func file_pb_artistinfoArtshow_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_artistinfoArtshow_proto_rawDesc, NumEnums: 0, - NumMessages: 9, + NumMessages: 19, NumExtensions: 0, NumServices: 1, }, diff --git a/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go b/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go index c9f64be..cf843f2 100644 --- a/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go +++ b/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go @@ -35,6 +35,110 @@ var ( _ = sort.Sort ) +// Validate checks the field values on ArtistListRequest 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 *ArtistListRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ArtistListRequest 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 +// ArtistListRequestMultiError, or nil if none found. +func (m *ArtistListRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ArtistListRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ArtistName + + if len(errors) > 0 { + return ArtistListRequestMultiError(errors) + } + + return nil +} + +// ArtistListRequestMultiError is an error wrapping multiple validation errors +// returned by ArtistListRequest.ValidateAll() if the designated constraints +// aren't met. +type ArtistListRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ArtistListRequestMultiError) 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 ArtistListRequestMultiError) AllErrors() []error { return m } + +// ArtistListRequestValidationError is the validation error returned by +// ArtistListRequest.Validate if the designated constraints aren't met. +type ArtistListRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ArtistListRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ArtistListRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ArtistListRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ArtistListRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ArtistListRequestValidationError) ErrorName() string { + return "ArtistListRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ArtistListRequestValidationError) 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 %sArtistListRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ArtistListRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ArtistListRequestValidationError{} + // Validate checks the field values on VideoPagination 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. @@ -1121,3 +1225,1053 @@ var _ interface { Cause() error ErrorName() string } = CheckeExistsRequestValidationError{} + +// Validate checks the field values on GetArtshowVideoDetailRequest 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 *GetArtshowVideoDetailRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetArtshowVideoDetailRequest 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 +// GetArtshowVideoDetailRequestMultiError, or nil if none found. +func (m *GetArtshowVideoDetailRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *GetArtshowVideoDetailRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ArtistUid + + // no validation rules for LockTime + + // no validation rules for Status + + if len(errors) > 0 { + return GetArtshowVideoDetailRequestMultiError(errors) + } + + return nil +} + +// GetArtshowVideoDetailRequestMultiError is an error wrapping multiple +// validation errors returned by GetArtshowVideoDetailRequest.ValidateAll() if +// the designated constraints aren't met. +type GetArtshowVideoDetailRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetArtshowVideoDetailRequestMultiError) 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 GetArtshowVideoDetailRequestMultiError) AllErrors() []error { return m } + +// GetArtshowVideoDetailRequestValidationError is the validation error returned +// by GetArtshowVideoDetailRequest.Validate if the designated constraints +// aren't met. +type GetArtshowVideoDetailRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetArtshowVideoDetailRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetArtshowVideoDetailRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetArtshowVideoDetailRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetArtshowVideoDetailRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetArtshowVideoDetailRequestValidationError) ErrorName() string { + return "GetArtshowVideoDetailRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e GetArtshowVideoDetailRequestValidationError) 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 %sGetArtshowVideoDetailRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetArtshowVideoDetailRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetArtshowVideoDetailRequestValidationError{} + +// Validate checks the field values on ArtistIndexInfo 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 *ArtistIndexInfo) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ArtistIndexInfo 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 +// ArtistIndexInfoMultiError, or nil if none found. +func (m *ArtistIndexInfo) ValidateAll() error { + return m.validate(true) +} + +func (m *ArtistIndexInfo) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ArtistUid + + // no validation rules for Title + + // no validation rules for Class + + // no validation rules for TitleScore + + // no validation rules for Score + + // no validation rules for Types + + // no validation rules for Status + + // no validation rules for LockTime + + // no validation rules for AuditMark1 + + // no validation rules for AuditMark2 + + // no validation rules for AuditStatus + + // no validation rules for Id + + // no validation rules for CreatedAt + + // no validation rules for UpdatedAt + + // no validation rules for DeletedAt + + if len(errors) > 0 { + return ArtistIndexInfoMultiError(errors) + } + + return nil +} + +// ArtistIndexInfoMultiError is an error wrapping multiple validation errors +// returned by ArtistIndexInfo.ValidateAll() if the designated constraints +// aren't met. +type ArtistIndexInfoMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ArtistIndexInfoMultiError) 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 ArtistIndexInfoMultiError) AllErrors() []error { return m } + +// ArtistIndexInfoValidationError is the validation error returned by +// ArtistIndexInfo.Validate if the designated constraints aren't met. +type ArtistIndexInfoValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ArtistIndexInfoValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ArtistIndexInfoValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ArtistIndexInfoValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ArtistIndexInfoValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ArtistIndexInfoValidationError) ErrorName() string { return "ArtistIndexInfoValidationError" } + +// Error satisfies the builtin error interface +func (e ArtistIndexInfoValidationError) 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 %sArtistIndexInfo.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ArtistIndexInfoValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ArtistIndexInfoValidationError{} + +// Validate checks the field values on GetArtistIndexListResponse 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 *GetArtistIndexListResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetArtistIndexListResponse 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 +// GetArtistIndexListResponseMultiError, or nil if none found. +func (m *GetArtistIndexListResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *GetArtistIndexListResponse) 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, GetArtistIndexListResponseValidationError{ + 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, GetArtistIndexListResponseValidationError{ + 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 GetArtistIndexListResponseValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if all { + switch v := interface{}(m.GetPage()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, GetArtistIndexListResponseValidationError{ + field: "Page", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, GetArtistIndexListResponseValidationError{ + field: "Page", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPage()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GetArtistIndexListResponseValidationError{ + field: "Page", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return GetArtistIndexListResponseMultiError(errors) + } + + return nil +} + +// GetArtistIndexListResponseMultiError is an error wrapping multiple +// validation errors returned by GetArtistIndexListResponse.ValidateAll() if +// the designated constraints aren't met. +type GetArtistIndexListResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetArtistIndexListResponseMultiError) 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 GetArtistIndexListResponseMultiError) AllErrors() []error { return m } + +// GetArtistIndexListResponseValidationError is the validation error returned +// by GetArtistIndexListResponse.Validate if the designated constraints aren't met. +type GetArtistIndexListResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetArtistIndexListResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetArtistIndexListResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetArtistIndexListResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetArtistIndexListResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetArtistIndexListResponseValidationError) ErrorName() string { + return "GetArtistIndexListResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e GetArtistIndexListResponseValidationError) 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 %sGetArtistIndexListResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetArtistIndexListResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetArtistIndexListResponseValidationError{} + +// Validate checks the field values on GetArtistIndexDetailRequest 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 *GetArtistIndexDetailRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetArtistIndexDetailRequest 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 +// GetArtistIndexDetailRequestMultiError, or nil if none found. +func (m *GetArtistIndexDetailRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *GetArtistIndexDetailRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + if len(errors) > 0 { + return GetArtistIndexDetailRequestMultiError(errors) + } + + return nil +} + +// GetArtistIndexDetailRequestMultiError is an error wrapping multiple +// validation errors returned by GetArtistIndexDetailRequest.ValidateAll() if +// the designated constraints aren't met. +type GetArtistIndexDetailRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetArtistIndexDetailRequestMultiError) 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 GetArtistIndexDetailRequestMultiError) AllErrors() []error { return m } + +// GetArtistIndexDetailRequestValidationError is the validation error returned +// by GetArtistIndexDetailRequest.Validate if the designated constraints +// aren't met. +type GetArtistIndexDetailRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetArtistIndexDetailRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetArtistIndexDetailRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetArtistIndexDetailRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetArtistIndexDetailRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetArtistIndexDetailRequestValidationError) ErrorName() string { + return "GetArtistIndexDetailRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e GetArtistIndexDetailRequestValidationError) 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 %sGetArtistIndexDetailRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetArtistIndexDetailRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetArtistIndexDetailRequestValidationError{} + +// Validate checks the field values on GetArtistIndexListRequest 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 *GetArtistIndexListRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetArtistIndexListRequest 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 +// GetArtistIndexListRequestMultiError, or nil if none found. +func (m *GetArtistIndexListRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *GetArtistIndexListRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ArtistUid + + // no validation rules for ArtistName + + // no validation rules for LockTime + + // no validation rules for AuditStatus + + // no validation rules for Status + + // no validation rules for Page + + // no validation rules for PageSize + + if len(errors) > 0 { + return GetArtistIndexListRequestMultiError(errors) + } + + return nil +} + +// GetArtistIndexListRequestMultiError is an error wrapping multiple validation +// errors returned by GetArtistIndexListRequest.ValidateAll() if the +// designated constraints aren't met. +type GetArtistIndexListRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetArtistIndexListRequestMultiError) 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 GetArtistIndexListRequestMultiError) AllErrors() []error { return m } + +// GetArtistIndexListRequestValidationError is the validation error returned by +// GetArtistIndexListRequest.Validate if the designated constraints aren't met. +type GetArtistIndexListRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetArtistIndexListRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetArtistIndexListRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetArtistIndexListRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetArtistIndexListRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetArtistIndexListRequestValidationError) ErrorName() string { + return "GetArtistIndexListRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e GetArtistIndexListRequestValidationError) 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 %sGetArtistIndexListRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetArtistIndexListRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetArtistIndexListRequestValidationError{} + +// Validate checks the field values on BatchCreateArtistIndexRequest 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 *BatchCreateArtistIndexRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on BatchCreateArtistIndexRequest 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 +// BatchCreateArtistIndexRequestMultiError, or nil if none found. +func (m *BatchCreateArtistIndexRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *BatchCreateArtistIndexRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return BatchCreateArtistIndexRequestMultiError(errors) + } + + return nil +} + +// BatchCreateArtistIndexRequestMultiError is an error wrapping multiple +// validation errors returned by BatchCreateArtistIndexRequest.ValidateAll() +// if the designated constraints aren't met. +type BatchCreateArtistIndexRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m BatchCreateArtistIndexRequestMultiError) 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 BatchCreateArtistIndexRequestMultiError) AllErrors() []error { return m } + +// BatchCreateArtistIndexRequestValidationError is the validation error +// returned by BatchCreateArtistIndexRequest.Validate if the designated +// constraints aren't met. +type BatchCreateArtistIndexRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e BatchCreateArtistIndexRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e BatchCreateArtistIndexRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e BatchCreateArtistIndexRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e BatchCreateArtistIndexRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e BatchCreateArtistIndexRequestValidationError) ErrorName() string { + return "BatchCreateArtistIndexRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e BatchCreateArtistIndexRequestValidationError) 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 %sBatchCreateArtistIndexRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = BatchCreateArtistIndexRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = BatchCreateArtistIndexRequestValidationError{} + +// Validate checks the field values on AuditArtistIndexRequest 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 *AuditArtistIndexRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AuditArtistIndexRequest 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 +// AuditArtistIndexRequestMultiError, or nil if none found. +func (m *AuditArtistIndexRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AuditArtistIndexRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for AuditStatus + + // no validation rules for AuditMark1 + + // no validation rules for AuditMark2 + + if len(errors) > 0 { + return AuditArtistIndexRequestMultiError(errors) + } + + return nil +} + +// AuditArtistIndexRequestMultiError is an error wrapping multiple validation +// errors returned by AuditArtistIndexRequest.ValidateAll() if the designated +// constraints aren't met. +type AuditArtistIndexRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AuditArtistIndexRequestMultiError) 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 AuditArtistIndexRequestMultiError) AllErrors() []error { return m } + +// AuditArtistIndexRequestValidationError is the validation error returned by +// AuditArtistIndexRequest.Validate if the designated constraints aren't met. +type AuditArtistIndexRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AuditArtistIndexRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AuditArtistIndexRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AuditArtistIndexRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AuditArtistIndexRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AuditArtistIndexRequestValidationError) ErrorName() string { + return "AuditArtistIndexRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AuditArtistIndexRequestValidationError) 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 %sAuditArtistIndexRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AuditArtistIndexRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AuditArtistIndexRequestValidationError{} + +// Validate checks the field values on UpdateArtistIndexRequest 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 *UpdateArtistIndexRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateArtistIndexRequest 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 +// UpdateArtistIndexRequestMultiError, or nil if none found. +func (m *UpdateArtistIndexRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateArtistIndexRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for TitleScore + + // no validation rules for Score + + // no validation rules for Status + + if len(errors) > 0 { + return UpdateArtistIndexRequestMultiError(errors) + } + + return nil +} + +// UpdateArtistIndexRequestMultiError is an error wrapping multiple validation +// errors returned by UpdateArtistIndexRequest.ValidateAll() if the designated +// constraints aren't met. +type UpdateArtistIndexRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateArtistIndexRequestMultiError) 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 UpdateArtistIndexRequestMultiError) AllErrors() []error { return m } + +// UpdateArtistIndexRequestValidationError is the validation error returned by +// UpdateArtistIndexRequest.Validate if the designated constraints aren't met. +type UpdateArtistIndexRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateArtistIndexRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateArtistIndexRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateArtistIndexRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateArtistIndexRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateArtistIndexRequestValidationError) ErrorName() string { + return "UpdateArtistIndexRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e UpdateArtistIndexRequestValidationError) 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 %sUpdateArtistIndexRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateArtistIndexRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateArtistIndexRequestValidationError{} + +// Validate checks the field values on DeletedArtistIndexRequest 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 *DeletedArtistIndexRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeletedArtistIndexRequest 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 +// DeletedArtistIndexRequestMultiError, or nil if none found. +func (m *DeletedArtistIndexRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *DeletedArtistIndexRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + if len(errors) > 0 { + return DeletedArtistIndexRequestMultiError(errors) + } + + return nil +} + +// DeletedArtistIndexRequestMultiError is an error wrapping multiple validation +// errors returned by DeletedArtistIndexRequest.ValidateAll() if the +// designated constraints aren't met. +type DeletedArtistIndexRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeletedArtistIndexRequestMultiError) 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 DeletedArtistIndexRequestMultiError) AllErrors() []error { return m } + +// DeletedArtistIndexRequestValidationError is the validation error returned by +// DeletedArtistIndexRequest.Validate if the designated constraints aren't met. +type DeletedArtistIndexRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeletedArtistIndexRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeletedArtistIndexRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeletedArtistIndexRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeletedArtistIndexRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeletedArtistIndexRequestValidationError) ErrorName() string { + return "DeletedArtistIndexRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e DeletedArtistIndexRequestValidationError) 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 %sDeletedArtistIndexRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeletedArtistIndexRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeletedArtistIndexRequestValidationError{} diff --git a/pb/artistinfoArtshow/artistinfoArtshow_triple.pb.go b/pb/artistinfoArtshow/artistinfoArtshow_triple.pb.go index 39c8c77..a655a99 100644 --- a/pb/artistinfoArtshow/artistinfoArtshow_triple.pb.go +++ b/pb/artistinfoArtshow/artistinfoArtshow_triple.pb.go @@ -30,13 +30,21 @@ const _ = grpc_go.SupportPackageIsVersion7 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type ArtistInfoArtshowClient interface { // 画展视频 + GetArtshowVideoDetail(ctx context.Context, in *GetArtshowVideoDetailRequest, opts ...grpc_go.CallOption) (*ArtshowVideoInfo, common.ErrorWithAttachment) GetArtshowVideoList(ctx context.Context, in *GetArtshowVideoListRequst, opts ...grpc_go.CallOption) (*GetArtshowVideoListResponse, common.ErrorWithAttachment) CreateArtshowVideo(ctx context.Context, in *ArtshowVideoInfo, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) BatchCreateArtshowVideo(ctx context.Context, in *BatchCreateArtshowVideoRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) AuditArtshowVideo(ctx context.Context, in *AuditArtshowVideoRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) UpdateArtshowVideo(ctx context.Context, in *UpdateArtshowVideoRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) DeletedArtshowVideo(ctx context.Context, in *DeletedArtshowVideoRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) - CheckeExists(ctx context.Context, in *CheckeExistsRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + // 画家指数 + GetArtistIndexDetail(ctx context.Context, in *GetArtistIndexDetailRequest, opts ...grpc_go.CallOption) (*ArtistIndexInfo, common.ErrorWithAttachment) + GetArtistIndexList(ctx context.Context, in *GetArtistIndexListRequest, opts ...grpc_go.CallOption) (*GetArtistIndexListResponse, common.ErrorWithAttachment) + CreateArtistIndex(ctx context.Context, in *ArtistIndexInfo, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + BatchCreateArtistIndex(ctx context.Context, in *BatchCreateArtistIndexRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + AuditArtistIndex(ctx context.Context, in *AuditArtistIndexRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + UpdateArtistIndex(ctx context.Context, in *UpdateArtistIndexRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + DeletedArtistIndex(ctx context.Context, in *DeletedArtistIndexRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) } type artistInfoArtshowClient struct { @@ -44,13 +52,20 @@ type artistInfoArtshowClient struct { } type ArtistInfoArtshowClientImpl struct { + GetArtshowVideoDetail func(ctx context.Context, in *GetArtshowVideoDetailRequest) (*ArtshowVideoInfo, error) GetArtshowVideoList func(ctx context.Context, in *GetArtshowVideoListRequst) (*GetArtshowVideoListResponse, error) CreateArtshowVideo func(ctx context.Context, in *ArtshowVideoInfo) (*emptypb.Empty, error) BatchCreateArtshowVideo func(ctx context.Context, in *BatchCreateArtshowVideoRequest) (*emptypb.Empty, error) AuditArtshowVideo func(ctx context.Context, in *AuditArtshowVideoRequest) (*emptypb.Empty, error) UpdateArtshowVideo func(ctx context.Context, in *UpdateArtshowVideoRequest) (*emptypb.Empty, error) DeletedArtshowVideo func(ctx context.Context, in *DeletedArtshowVideoRequest) (*emptypb.Empty, error) - CheckeExists func(ctx context.Context, in *CheckeExistsRequest) (*emptypb.Empty, error) + GetArtistIndexDetail func(ctx context.Context, in *GetArtistIndexDetailRequest) (*ArtistIndexInfo, error) + GetArtistIndexList func(ctx context.Context, in *GetArtistIndexListRequest) (*GetArtistIndexListResponse, error) + CreateArtistIndex func(ctx context.Context, in *ArtistIndexInfo) (*emptypb.Empty, error) + BatchCreateArtistIndex func(ctx context.Context, in *BatchCreateArtistIndexRequest) (*emptypb.Empty, error) + AuditArtistIndex func(ctx context.Context, in *AuditArtistIndexRequest) (*emptypb.Empty, error) + UpdateArtistIndex func(ctx context.Context, in *UpdateArtistIndexRequest) (*emptypb.Empty, error) + DeletedArtistIndex func(ctx context.Context, in *DeletedArtistIndexRequest) (*emptypb.Empty, error) } func (c *ArtistInfoArtshowClientImpl) GetDubboStub(cc *triple.TripleConn) ArtistInfoArtshowClient { @@ -65,6 +80,12 @@ func NewArtistInfoArtshowClient(cc *triple.TripleConn) ArtistInfoArtshowClient { return &artistInfoArtshowClient{cc} } +func (c *artistInfoArtshowClient) GetArtshowVideoDetail(ctx context.Context, in *GetArtshowVideoDetailRequest, opts ...grpc_go.CallOption) (*ArtshowVideoInfo, common.ErrorWithAttachment) { + out := new(ArtshowVideoInfo) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetArtshowVideoDetail", in, out) +} + func (c *artistInfoArtshowClient) GetArtshowVideoList(ctx context.Context, in *GetArtshowVideoListRequst, opts ...grpc_go.CallOption) (*GetArtshowVideoListResponse, common.ErrorWithAttachment) { out := new(GetArtshowVideoListResponse) interfaceKey := ctx.Value(constant.InterfaceKey).(string) @@ -101,10 +122,46 @@ func (c *artistInfoArtshowClient) DeletedArtshowVideo(ctx context.Context, in *D return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DeletedArtshowVideo", in, out) } -func (c *artistInfoArtshowClient) CheckeExists(ctx context.Context, in *CheckeExistsRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { +func (c *artistInfoArtshowClient) GetArtistIndexDetail(ctx context.Context, in *GetArtistIndexDetailRequest, opts ...grpc_go.CallOption) (*ArtistIndexInfo, common.ErrorWithAttachment) { + out := new(ArtistIndexInfo) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetArtistIndexDetail", in, out) +} + +func (c *artistInfoArtshowClient) GetArtistIndexList(ctx context.Context, in *GetArtistIndexListRequest, opts ...grpc_go.CallOption) (*GetArtistIndexListResponse, common.ErrorWithAttachment) { + out := new(GetArtistIndexListResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetArtistIndexList", in, out) +} + +func (c *artistInfoArtshowClient) CreateArtistIndex(ctx context.Context, in *ArtistIndexInfo, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { out := new(emptypb.Empty) interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CheckeExists", in, out) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateArtistIndex", in, out) +} + +func (c *artistInfoArtshowClient) BatchCreateArtistIndex(ctx context.Context, in *BatchCreateArtistIndexRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/BatchCreateArtistIndex", in, out) +} + +func (c *artistInfoArtshowClient) AuditArtistIndex(ctx context.Context, in *AuditArtistIndexRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AuditArtistIndex", in, out) +} + +func (c *artistInfoArtshowClient) UpdateArtistIndex(ctx context.Context, in *UpdateArtistIndexRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateArtistIndex", in, out) +} + +func (c *artistInfoArtshowClient) DeletedArtistIndex(ctx context.Context, in *DeletedArtistIndexRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DeletedArtistIndex", in, out) } // ArtistInfoArtshowServer is the server API for ArtistInfoArtshow service. @@ -112,13 +169,21 @@ func (c *artistInfoArtshowClient) CheckeExists(ctx context.Context, in *CheckeEx // for forward compatibility type ArtistInfoArtshowServer interface { // 画展视频 + GetArtshowVideoDetail(context.Context, *GetArtshowVideoDetailRequest) (*ArtshowVideoInfo, error) GetArtshowVideoList(context.Context, *GetArtshowVideoListRequst) (*GetArtshowVideoListResponse, error) CreateArtshowVideo(context.Context, *ArtshowVideoInfo) (*emptypb.Empty, error) BatchCreateArtshowVideo(context.Context, *BatchCreateArtshowVideoRequest) (*emptypb.Empty, error) AuditArtshowVideo(context.Context, *AuditArtshowVideoRequest) (*emptypb.Empty, error) UpdateArtshowVideo(context.Context, *UpdateArtshowVideoRequest) (*emptypb.Empty, error) DeletedArtshowVideo(context.Context, *DeletedArtshowVideoRequest) (*emptypb.Empty, error) - CheckeExists(context.Context, *CheckeExistsRequest) (*emptypb.Empty, error) + // 画家指数 + GetArtistIndexDetail(context.Context, *GetArtistIndexDetailRequest) (*ArtistIndexInfo, error) + GetArtistIndexList(context.Context, *GetArtistIndexListRequest) (*GetArtistIndexListResponse, error) + CreateArtistIndex(context.Context, *ArtistIndexInfo) (*emptypb.Empty, error) + BatchCreateArtistIndex(context.Context, *BatchCreateArtistIndexRequest) (*emptypb.Empty, error) + AuditArtistIndex(context.Context, *AuditArtistIndexRequest) (*emptypb.Empty, error) + UpdateArtistIndex(context.Context, *UpdateArtistIndexRequest) (*emptypb.Empty, error) + DeletedArtistIndex(context.Context, *DeletedArtistIndexRequest) (*emptypb.Empty, error) mustEmbedUnimplementedArtistInfoArtshowServer() } @@ -127,6 +192,9 @@ type UnimplementedArtistInfoArtshowServer struct { proxyImpl protocol.Invoker } +func (UnimplementedArtistInfoArtshowServer) GetArtshowVideoDetail(context.Context, *GetArtshowVideoDetailRequest) (*ArtshowVideoInfo, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetArtshowVideoDetail not implemented") +} func (UnimplementedArtistInfoArtshowServer) GetArtshowVideoList(context.Context, *GetArtshowVideoListRequst) (*GetArtshowVideoListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetArtshowVideoList not implemented") } @@ -145,8 +213,26 @@ func (UnimplementedArtistInfoArtshowServer) UpdateArtshowVideo(context.Context, func (UnimplementedArtistInfoArtshowServer) DeletedArtshowVideo(context.Context, *DeletedArtshowVideoRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeletedArtshowVideo not implemented") } -func (UnimplementedArtistInfoArtshowServer) CheckeExists(context.Context, *CheckeExistsRequest) (*emptypb.Empty, error) { - return nil, status.Errorf(codes.Unimplemented, "method CheckeExists not implemented") +func (UnimplementedArtistInfoArtshowServer) GetArtistIndexDetail(context.Context, *GetArtistIndexDetailRequest) (*ArtistIndexInfo, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetArtistIndexDetail not implemented") +} +func (UnimplementedArtistInfoArtshowServer) GetArtistIndexList(context.Context, *GetArtistIndexListRequest) (*GetArtistIndexListResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetArtistIndexList not implemented") +} +func (UnimplementedArtistInfoArtshowServer) CreateArtistIndex(context.Context, *ArtistIndexInfo) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateArtistIndex not implemented") +} +func (UnimplementedArtistInfoArtshowServer) BatchCreateArtistIndex(context.Context, *BatchCreateArtistIndexRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method BatchCreateArtistIndex not implemented") +} +func (UnimplementedArtistInfoArtshowServer) AuditArtistIndex(context.Context, *AuditArtistIndexRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method AuditArtistIndex not implemented") +} +func (UnimplementedArtistInfoArtshowServer) UpdateArtistIndex(context.Context, *UpdateArtistIndexRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateArtistIndex not implemented") +} +func (UnimplementedArtistInfoArtshowServer) DeletedArtistIndex(context.Context, *DeletedArtistIndexRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeletedArtistIndex not implemented") } func (s *UnimplementedArtistInfoArtshowServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl @@ -176,6 +262,35 @@ func RegisterArtistInfoArtshowServer(s grpc_go.ServiceRegistrar, srv ArtistInfoA s.RegisterService(&ArtistInfoArtshow_ServiceDesc, srv) } +func _ArtistInfoArtshow_GetArtshowVideoDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetArtshowVideoDetailRequest) + 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("GetArtshowVideoDetail", 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 _ArtistInfoArtshow_GetArtshowVideoList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(GetArtshowVideoListRequst) if err := dec(in); err != nil { @@ -350,8 +465,8 @@ func _ArtistInfoArtshow_DeletedArtshowVideo_Handler(srv interface{}, ctx context return interceptor(ctx, in, info, handler) } -func _ArtistInfoArtshow_CheckeExists_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(CheckeExistsRequest) +func _ArtistInfoArtshow_GetArtistIndexDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetArtistIndexDetailRequest) if err := dec(in); err != nil { return nil, err } @@ -363,7 +478,181 @@ func _ArtistInfoArtshow_CheckeExists_Handler(srv interface{}, ctx context.Contex for k, v := range md { invAttachment[k] = v } - invo := invocation.NewRPCInvocation("CheckeExists", args, invAttachment) + invo := invocation.NewRPCInvocation("GetArtistIndexDetail", 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 _ArtistInfoArtshow_GetArtistIndexList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetArtistIndexListRequest) + 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("GetArtistIndexList", 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 _ArtistInfoArtshow_CreateArtistIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ArtistIndexInfo) + 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("CreateArtistIndex", 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 _ArtistInfoArtshow_BatchCreateArtistIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchCreateArtistIndexRequest) + 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("BatchCreateArtistIndex", 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 _ArtistInfoArtshow_AuditArtistIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(AuditArtistIndexRequest) + 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("AuditArtistIndex", 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 _ArtistInfoArtshow_UpdateArtistIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateArtistIndexRequest) + 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("UpdateArtistIndex", 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 _ArtistInfoArtshow_DeletedArtistIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(DeletedArtistIndexRequest) + 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("DeletedArtistIndex", args, invAttachment) if interceptor == nil { result := base.XXX_GetProxyImpl().Invoke(ctx, invo) return result, result.Error() @@ -386,6 +675,10 @@ var ArtistInfoArtshow_ServiceDesc = grpc_go.ServiceDesc{ ServiceName: "artistinfo.ArtistInfoArtshow", HandlerType: (*ArtistInfoArtshowServer)(nil), Methods: []grpc_go.MethodDesc{ + { + MethodName: "GetArtshowVideoDetail", + Handler: _ArtistInfoArtshow_GetArtshowVideoDetail_Handler, + }, { MethodName: "GetArtshowVideoList", Handler: _ArtistInfoArtshow_GetArtshowVideoList_Handler, @@ -411,8 +704,32 @@ var ArtistInfoArtshow_ServiceDesc = grpc_go.ServiceDesc{ Handler: _ArtistInfoArtshow_DeletedArtshowVideo_Handler, }, { - MethodName: "CheckeExists", - Handler: _ArtistInfoArtshow_CheckeExists_Handler, + MethodName: "GetArtistIndexDetail", + Handler: _ArtistInfoArtshow_GetArtistIndexDetail_Handler, + }, + { + MethodName: "GetArtistIndexList", + Handler: _ArtistInfoArtshow_GetArtistIndexList_Handler, + }, + { + MethodName: "CreateArtistIndex", + Handler: _ArtistInfoArtshow_CreateArtistIndex_Handler, + }, + { + MethodName: "BatchCreateArtistIndex", + Handler: _ArtistInfoArtshow_BatchCreateArtistIndex_Handler, + }, + { + MethodName: "AuditArtistIndex", + Handler: _ArtistInfoArtshow_AuditArtistIndex_Handler, + }, + { + MethodName: "UpdateArtistIndex", + Handler: _ArtistInfoArtshow_UpdateArtistIndex_Handler, + }, + { + MethodName: "DeletedArtistIndex", + Handler: _ArtistInfoArtshow_DeletedArtistIndex_Handler, }, }, Streams: []grpc_go.StreamDesc{}, diff --git a/pkg/db/init.go b/pkg/db/init.go index ef550a3..49db8d4 100644 --- a/pkg/db/init.go +++ b/pkg/db/init.go @@ -110,7 +110,8 @@ func migration() { &old.ArtworkBatch{}, &model.TempArtistInfo{}, &model.ArtworkLockRecord{}, - &model.ArtshowRecord{}, //画展视频记录 + &model.ArtshowRecord{}, //画展视频记录 + &model.ArtshowArtistIndex{}, //画展-画家指数 ) if err != nil { fmt.Println("register table fail") From d30d4b251312494e67204a3e5a6cf01594b4b221 Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Fri, 3 Mar 2023 13:47:45 +0800 Subject: [PATCH 09/11] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=94=BB=E5=AE=B6?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E4=BF=A1=E6=81=AF=E7=9B=B8=E5=85=B3=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistinfo_artshow.go | 34 +- cmd/internal/dao/artistInfo_user.go | 12 +- .../dao/artistinfo_artshow_artistIndex.go | 12 +- .../artistinfo_artshow_artistSupplement.go | 118 ++ .../logic/artistinfo_artshowArtistIndex.go | 11 +- .../artistinfo_artshowArtistSupplement.go | 146 ++ cmd/internal/logic/artistinfo_artshowVideo.go | 1 + cmd/model/artshow_artist_supplement.go | 31 + pb/artistInfoUser/artistinfoUser.pb.go | 574 ++++---- pb/artistinfoArtshow.proto | 130 +- pb/artistinfoArtshow/artistinfoArtshow.pb.go | 1181 +++++++++++++++-- .../artistinfoArtshow.pb.validate.go | 962 ++++++++++++++ .../artistinfoArtshow_triple.pb.go | 345 ++++- pb/artistinfoUser.proto | 1 + pkg/db/init.go | 5 +- 15 files changed, 3080 insertions(+), 483 deletions(-) create mode 100644 cmd/internal/dao/artistinfo_artshow_artistSupplement.go create mode 100644 cmd/internal/logic/artistinfo_artshowArtistSupplement.go create mode 100644 cmd/model/artshow_artist_supplement.go diff --git a/cmd/internal/controller/artistinfo_artshow.go b/cmd/internal/controller/artistinfo_artshow.go index bc4d99d..cdb60e0 100644 --- a/cmd/internal/controller/artistinfo_artshow.go +++ b/cmd/internal/controller/artistinfo_artshow.go @@ -18,8 +18,38 @@ var _ artistinfoArtshow.ArtistInfoArtshowServer = new(ArtistInfoArtshowProvider) type ArtistInfoArtshowProvider struct { artistinfoArtshow.UnimplementedArtistInfoArtshowServer - videoLogic logic.ArtshowVideoLogic - artistIndexLogic logic.ArtshowArtistIndexLogic + videoLogic logic.ArtshowVideoLogic + artistIndexLogic logic.ArtshowArtistIndexLogic + artistSupplementLogic logic.ArtshowArtistSupplementLogic +} + +// ----------------- 画展包-画家补充信息 +func (a ArtistInfoArtshowProvider) GetArtistSupplementDetail(ctx context.Context, request *artistinfoArtshow.GetArtistSupplementDetailRequest) (*artistinfoArtshow.ArtistSupplementInfo, error) { + return a.artistSupplementLogic.GetSupplementDetail(request) +} + +func (a ArtistInfoArtshowProvider) GetArtistSupplementList(ctx context.Context, request *artistinfoArtshow.GetArtistSupplementListRequest) (*artistinfoArtshow.GetArtistSupplementListResponse, error) { + return a.artistSupplementLogic.GetSupplementList(request) +} + +func (a ArtistInfoArtshowProvider) CreateArtistSupplement(ctx context.Context, info *artistinfoArtshow.ArtistSupplementInfo) (*emptypb.Empty, error) { + return nil, a.artistSupplementLogic.CreateSupplement(info) +} + +func (a ArtistInfoArtshowProvider) BatchCreateArtistSupplement(ctx context.Context, request *artistinfoArtshow.BatchCreateArtistSupplementRequest) (*emptypb.Empty, error) { + return nil, a.artistSupplementLogic.BatchCreateSupplement(request) +} + +func (a ArtistInfoArtshowProvider) AuditArtistSupplement(ctx context.Context, request *artistinfoArtshow.AuditArtistSupplementRequest) (*emptypb.Empty, error) { + return a.artistSupplementLogic.AuditSupplement(request) +} + +func (a ArtistInfoArtshowProvider) UpdateArtistSupplement(ctx context.Context, request *artistinfoArtshow.UpdateArtistSupplementRequest) (*emptypb.Empty, error) { + return a.artistSupplementLogic.UpdateSupplement(request) +} + +func (a ArtistInfoArtshowProvider) DeletedArtistSupplement(ctx context.Context, request *artistinfoArtshow.DeletedArtistSupplementRequest) (*emptypb.Empty, error) { + return a.artistSupplementLogic.DeletedSupplement(request) } // ----------------- 画展包-画家指数 diff --git a/cmd/internal/dao/artistInfo_user.go b/cmd/internal/dao/artistInfo_user.go index 64f5589..65f35f1 100644 --- a/cmd/internal/dao/artistInfo_user.go +++ b/cmd/internal/dao/artistInfo_user.go @@ -524,6 +524,7 @@ func FindUserList(req *artistInfoUser.FindUsersRequest) (rep []*artistInfoUser.U var ( datas = []model.User{} tx = db.DB.Model(model.User{}). + Joins("LEFT JOIN real_name rn ON rn.id = sys_user.real_name_id"). Preload("RealNameInfo").Preload("InvitedBy.UserInfo.RealNameInfo").Where("sys_user.mgmt_artist_uid!=''") ) if req.InvitedCode != "" { @@ -536,7 +537,7 @@ func FindUserList(req *artistInfoUser.FindUsersRequest) (rep []*artistInfoUser.U tx = tx.Where("mgmt_artist_uid in ?", req.MgmtArtistUids) } if req.InviterName != "" { - tx = tx.Joins("LEFT JOIN real_name rn ON rn.id = sys_user.real_name_id").Clauses(clause.Like{ + tx = tx.Clauses(clause.Like{ Column: "rn.name", Value: "%" + req.InviterName + "%", }) @@ -544,6 +545,15 @@ func FindUserList(req *artistInfoUser.FindUsersRequest) (rep []*artistInfoUser.U if req.IsArtist { tx = tx.Where("mgmt_artist_uid !='' ") } + if req.IsLock { + tx = tx.Where("is_lock=true") + } + if req.ArtistRealName != "" { + tx = tx.Where("").Clauses(clause.Like{ + Column: "rn.name", + Value: "%" + req.ArtistRealName + "%", + }) + } err = tx.Count(&total).Scopes(db.Pagination(req.Page, req.PageSize)).Find(&datas).Error if err != nil { diff --git a/cmd/internal/dao/artistinfo_artshow_artistIndex.go b/cmd/internal/dao/artistinfo_artshow_artistIndex.go index 2861c63..46e2c45 100644 --- a/cmd/internal/dao/artistinfo_artshow_artistIndex.go +++ b/cmd/internal/dao/artistinfo_artshow_artistIndex.go @@ -107,16 +107,10 @@ func (a artistinfoArtshowArtistIndex) Audit(auditStatus model.AuditStatus, mark1 return } -func (a artistinfoArtshowArtistIndex) GetArtshowVideoDetail(in *artistinfoArtshow.GetArtshowVideoDetailRequest) (rep model.ArtshowArtistIndex, err error) { +func (a artistinfoArtshowArtistIndex) GetArtistIndexDetail(in *artistinfoArtshow.GetArtistIndexDetailRequest) (rep model.ArtshowArtistIndex, err error) { var tx = db.DB.Model(model.ArtshowArtistIndex{}) - if in.ArtistUid != "" { - tx = tx.Where("artist_uid =?", in.ArtistUid) - } - if in.LockTime != "" { - tx = tx.Where("lock_time", in.LockTime) - } - if in.Status != 0 { - tx = tx.Where("status", in.Status) + if in.Id != 0 { + tx = tx.Where("id = ?", in.Id) } var data model.ArtshowArtistIndex err = tx.First(&data).Error diff --git a/cmd/internal/dao/artistinfo_artshow_artistSupplement.go b/cmd/internal/dao/artistinfo_artshow_artistSupplement.go new file mode 100644 index 0000000..6af211e --- /dev/null +++ b/cmd/internal/dao/artistinfo_artshow_artistSupplement.go @@ -0,0 +1,118 @@ +// Package dao ----------------------------- +// @file : artistinfo_artshow_artistIndex.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2023/3/3 0:20 +// ------------------------------------------- +package dao + +import ( + "errors" + "fmt" + "github.com/fonchain/fonchain-artistinfo/cmd/model" + "github.com/fonchain/fonchain-artistinfo/pb/artistinfoArtshow" + db "github.com/fonchain/fonchain-artistinfo/pkg/db" + "gorm.io/gorm" +) + +var ArtistSupplement = new(artistSupplement) + +type artistSupplement struct{} + +func (a artistSupplement) BatchCreateData(datas []model.ArtshowArtistSupplement) error { + //return db.DB.Create(&datas).Error + tx := db.DB.Begin() + for _, v := range datas { + err := a.CreateData(&v, tx) + if err != nil { + return err + } + } + tx.Commit() + return nil +} +func (a artistSupplement) CreateData(data *model.ArtshowArtistSupplement, tx ...*gorm.DB) error { + var txdb *gorm.DB + if tx != nil { + txdb = tx[0] + } else { + txdb = db.DB + } + var exist = model.ArtshowArtistSupplement{} + db.DB.Where("artist_uid = ? AND status = 2", data.ArtistUid).Find(&exist) + if exist.ID != 0 { + return errors.New(fmt.Sprintf("画家补充信息已存在")) + } + return txdb.Create(&data).Error +} + +func (a artistSupplement) UpdateData(data *model.ArtshowArtistSupplement) error { + return db.DB.Updates(&data).Error + +} + +func (a artistSupplement) DeletedData(id ...int64) (err error) { + if len(id) == 1 { + err = db.DB.Where("id = ?", id[0]).Delete(&model.ArtshowArtistSupplement{}).Error + } else if len(id) > 0 { + err = db.DB.Where("id = ?", id).Delete(&model.ArtshowArtistSupplement{}).Error + } + return err +} + +func (a artistSupplement) GetData(id int64) (data *model.ArtshowArtistSupplement, err error) { + err = db.DB.Where("id = ?", id).First(data).Error + return +} + +func (a artistSupplement) GetDataList(req *artistinfoArtshow.GetArtistSupplementListRequest) (datas []model.ArtshowArtistSupplement, total int64, err error) { + datas = []model.ArtshowArtistSupplement{} + var tx = db.DB.Model(model.ArtshowArtistSupplement{}) + if req.ArtistUid != "" { + tx = tx.Where("artist_uid = ?", req.ArtistUid) + } + if req.LockTime != "" { + tx = tx.Where("lock_time = ?", req.LockTime) + } + if req.Status != 0 { + tx = tx.Where("status = ?", req.Status) + } + if req.AuditStatus != 0 { + tx = tx.Where("audit_status = ?", req.AuditStatus) + } + //if req.AuditMark1 != "" { + // tx = tx.Where("audit_mark1 = ?", req.AuditMark1) + //} + //if req.AuditMark2 != "" { + // tx = tx.Where("audit_mark2 = ?", req.AuditMark2) + //} + err = tx.Count(&total).Scopes(db.Pagination(req.Page, req.PageSize)).Find(&datas).Error + return +} +func (a artistSupplement) Audit(auditStatus model.AuditStatus, mark1, mark2 string, ids ...int64) (err error) { + tx := db.DB.Begin() + err = tx.Model(model.ArtshowArtistSupplement{}).Where("id in ?", ids).Update("audit_status", auditStatus).Error + if err != nil { + return err + } + err = tx.Model(model.ArtshowArtistSupplement{}).Where("id in ?", ids).Update("audit_mark1", mark1).Error + if err != nil { + return err + } + err = tx.Model(model.ArtshowArtistSupplement{}).Where("id in ?", ids).Update("audit_mark2", mark2).Error + if err != nil { + return err + } + tx.Commit() + return +} + +func (a artistSupplement) GetSupplementDetail(in *artistinfoArtshow.GetArtistSupplementDetailRequest) (rep model.ArtshowArtistSupplement, err error) { + var tx = db.DB.Model(model.ArtshowArtistSupplement{}) + if in.Id != 0 { + tx = tx.Where("id = ?", in.Id) + } + var data model.ArtshowArtistSupplement + err = tx.First(&data).Error + return +} diff --git a/cmd/internal/logic/artistinfo_artshowArtistIndex.go b/cmd/internal/logic/artistinfo_artshowArtistIndex.go index 2ecec96..e3ed5ec 100644 --- a/cmd/internal/logic/artistinfo_artshowArtistIndex.go +++ b/cmd/internal/logic/artistinfo_artshowArtistIndex.go @@ -33,11 +33,12 @@ func (a ArtshowArtistIndexLogic) BatchCreateArtistIndex(request *artistinfoArtsh return errors.New(fmt.Sprintf("用户%s不存在", v)) } datas = append(datas, - model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "exhibition", Title: "艺术家-展览", Types: "2", Status: 2}, - model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "seniority", Title: "艺术家-资历", Types: "1", Status: 2}, - model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "specialized", Title: "艺术家-专业", Types: "1", Status: 2}, - model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "Influence", Title: "艺术家-影响力", Types: "1", Status: 2}, - model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "collect", Title: "艺术家-收藏", Types: "1", Status: 2}, + //Status=2(锁定) AuditStatus=5(待补充) + model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "exhibition", Title: "艺术家-展览", Types: "2", Status: 2, AuditStatus: 5}, + model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "seniority", Title: "艺术家-资历", Types: "1", Status: 2, AuditStatus: 5}, + model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "specialized", Title: "艺术家-专业", Types: "1", Status: 2, AuditStatus: 5}, + model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "Influence", Title: "艺术家-影响力", Types: "1", Status: 2, AuditStatus: 5}, + model.ArtshowArtistIndex{LockTime: userInfo.LatestLockTime, ArtistUid: v, Class: "collect", Title: "艺术家-收藏", Types: "1", Status: 2, AuditStatus: 5}, ) } return dao.ArtistinfoArtshowArtistIndex.BatchCreateData(datas) diff --git a/cmd/internal/logic/artistinfo_artshowArtistSupplement.go b/cmd/internal/logic/artistinfo_artshowArtistSupplement.go new file mode 100644 index 0000000..57e681e --- /dev/null +++ b/cmd/internal/logic/artistinfo_artshowArtistSupplement.go @@ -0,0 +1,146 @@ +// Package logic ----------------------------- +// @file : artistinfo_artshowVideo.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2023/3/2 11:51 +// ------------------------------------------- +package logic + +import ( + "errors" + "fmt" + "github.com/fonchain/fonchain-artistinfo/cmd/internal/dao" + "github.com/fonchain/fonchain-artistinfo/cmd/model" + "github.com/fonchain/fonchain-artistinfo/pb/artistInfoUser" + "github.com/fonchain/fonchain-artistinfo/pb/artistinfoArtshow" + "google.golang.org/protobuf/types/known/emptypb" + "gorm.io/gorm" +) + +type ArtshowArtistSupplementLogic struct{} + +func (a ArtshowArtistSupplementLogic) BatchCreateSupplement(request *artistinfoArtshow.BatchCreateArtistSupplementRequest) error { + var datas = []model.ArtshowArtistSupplement{} + for _, v := range request.ArtistUids { + userInfo, err := NewArtistInfo().FindUser(&artistInfoUser.FindUserRequest{ + MgmtArtistUid: v, + IsArtist: true, + }) + if err != nil { + return err + } + if userInfo.Id == 0 { + return errors.New(fmt.Sprintf("用户%s不存在", v)) + } + datas = append(datas, + model.ArtshowArtistSupplement{LockTime: userInfo.LatestLockTime, ArtistUid: v, ArtistName: userInfo.RealName.Name, Status: 2}, + ) + } + return dao.ArtistSupplement.BatchCreateData(datas) +} + +func (a ArtshowArtistSupplementLogic) CreateSupplement(request *artistinfoArtshow.ArtistSupplementInfo) error { + return dao.ArtistSupplement.CreateData(&model.ArtshowArtistSupplement{ + ArtistUid: request.ArtistUid, + Status: 2, //锁定 + AuditStatus: 5, //待补充 + LockTime: request.LockTime, + ArtistName: request.ArtistName, + ArtistProfile: request.ArtistProfile, + CountryArtLevel: request.CountryArtLevel, + ArtistCertPic: request.ArtistCertPic, + BankNum: request.BankNum, + BankName: request.BankName, + }) +} +func (a ArtshowArtistSupplementLogic) GetSupplementDetail(request *artistinfoArtshow.GetArtistSupplementDetailRequest) (rep *artistinfoArtshow.ArtistSupplementInfo, err error) { + data, err := dao.ArtistSupplement.GetData(request.Id) + if err != nil { + if gorm.ErrRecordNotFound == err { + err = errors.New("找不到数据") + } + return nil, err + } + rep = &artistinfoArtshow.ArtistSupplementInfo{ + ArtistUid: data.ArtistUid, + Status: data.Status, + LockTime: data.LockTime, + AuditStatus: int64(data.AuditStatus), + AuditMark1: data.AuditMark1, + AuditMark2: data.AuditMark2, + ArtistName: data.ArtistName, + ArtistProfile: data.ArtistProfile, + CountryArtLevel: data.CountryArtLevel, + ArtistCertPic: data.ArtistCertPic, + BankNum: data.BankNum, + BankName: data.BankName, + Id: data.ID, + CreatedAt: data.CreatedAt.Unix(), + UpdatedAt: data.UpdatedAt.Unix(), + DeletedAt: int64(data.DeletedAt), + } + return nil, nil +} + +func (a ArtshowArtistSupplementLogic) GetSupplementList(request *artistinfoArtshow.GetArtistSupplementListRequest) (res *artistinfoArtshow.GetArtistSupplementListResponse, err error) { + res = &artistinfoArtshow.GetArtistSupplementListResponse{} + datas, total, err := dao.ArtistSupplement.GetDataList(request) + if err != nil { + return nil, err + } + res.Page = &artistinfoArtshow.VideoPagination{ + Page: request.Page, + PageSize: request.PageSize, + Total: total, + } + for _, v := range datas { + res.Data = append(res.Data, &artistinfoArtshow.ArtistSupplementInfo{ + ArtistUid: v.ArtistUid, + ArtistName: v.ArtistName, + ArtistProfile: v.ArtistProfile, + CountryArtLevel: v.CountryArtLevel, + ArtistCertPic: v.ArtistCertPic, + BankNum: v.BankNum, + BankName: v.BankName, + Status: v.Status, + LockTime: v.LockTime, + AuditMark1: v.AuditMark1, + AuditMark2: v.AuditMark2, + AuditStatus: int64(v.AuditStatus), + Id: v.ID, + CreatedAt: v.CreatedAt.Unix(), + UpdatedAt: v.UpdatedAt.Unix(), + DeletedAt: int64(v.DeletedAt), + }) + } + return +} + +func (a ArtshowArtistSupplementLogic) AuditSupplement(request *artistinfoArtshow.AuditArtistSupplementRequest) (*emptypb.Empty, error) { + err := dao.ArtistSupplement.Audit(model.AuditStatus(request.AuditStatus), request.AuditMark1, request.AuditMark2, request.ArtistSupplementIds...) + return nil, err +} + +func (a ArtshowArtistSupplementLogic) UpdateSupplement(request *artistinfoArtshow.UpdateArtistSupplementRequest) (*emptypb.Empty, error) { + err := dao.ArtistSupplement.UpdateData(&model.ArtshowArtistSupplement{ + Model: model.Model{ID: request.Id}, + ArtistProfile: request.ArtistProfile, + CountryArtLevel: request.CountryArtLevel, + ArtistCertPic: request.ArtistCertPic, + BankNum: request.BankNum, + BankName: request.BankName, + AuditStatus: model.AuditType_Pending, + }) + return nil, err +} + +func (a ArtshowArtistSupplementLogic) DeletedSupplement(request *artistinfoArtshow.DeletedArtistSupplementRequest) (*emptypb.Empty, error) { + var ids = []int64{} + if request.Id != 0 { + ids = append(ids, request.Id) + } else if len(request.Ids) > 0 { + ids = append(ids, request.Ids...) + } + err := dao.ArtistSupplement.DeletedData(ids...) + return nil, err +} diff --git a/cmd/internal/logic/artistinfo_artshowVideo.go b/cmd/internal/logic/artistinfo_artshowVideo.go index cdc8db0..2ca48d2 100644 --- a/cmd/internal/logic/artistinfo_artshowVideo.go +++ b/cmd/internal/logic/artistinfo_artshowVideo.go @@ -94,6 +94,7 @@ func (a ArtshowVideoLogic) GetArtshowVideoList(request *artistinfoArtshow.GetArt UpdatedAt: v.UpdatedAt.Unix(), DeletedAt: int64(v.DeletedAt), Status: v.Status, + ArtistName: v.ArtistName, }) } return diff --git a/cmd/model/artshow_artist_supplement.go b/cmd/model/artshow_artist_supplement.go new file mode 100644 index 0000000..9c2f01d --- /dev/null +++ b/cmd/model/artshow_artist_supplement.go @@ -0,0 +1,31 @@ +// Package model ----------------------------- +// @file : artshow.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2023/3/2 9:32 +// ------------------------------------------- +package model + +type ArtshowArtistSupplement struct { + Model + //通过这两个字段弱关联 artwork_lock_record表中对应的画作 + ArtistUid string `json:"artistUid" gorm:"column:artist_uid;comment:"` + Status int64 `json:"status" gorm:"column:status;default:2;comment:2=锁定 3=解锁"` //跟随用户的锁定和解锁状态,用于控制数据的展示 + LockTime string `json:"lockTime" gorm:"column:lock_time;comment:"` + + //审批字段 + AuditStatus AuditStatus `json:"auditStatus" gorm:"column:audit_status;comment:审核状态:2= 待审核,3= 审核失败,4= 审核通过,5= 待补充"` + AuditMark1 string `json:"auditMark1" gorm:"column:audit_mark1;comment:审核备注1"` + AuditMark2 string `json:"auditMark2" gorm:"column:audit_mark2;comment:审核备注2"` + + ArtistName string `json:"artistName" gorm:"column:artist_name;comment:"` + ArtistProfile string `json:"artistProfile" gorm:"column:artist_profile;comment:个人简介"` + CountryArtLevel int64 `json:"countryArtLevel" gorm:"column:country_art_level;comment:国家美术师级别: 1=无 2=1级 3=2级"` + ArtistCertPic string `json:"artistCertPic" gorm:"column:artist_cert_pic;comment:国家美术师证书"` + BankNum string `json:"bank_num" gorm:"column:bank_num;comment:开户行"` + BankName string `json:"bank_name" gorm:"column:bank_name;comment:银行卡账号"` +} + +func (a ArtshowArtistSupplement) TableName() string { + return "artshow_artist_supplement" +} diff --git a/pb/artistInfoUser/artistinfoUser.pb.go b/pb/artistInfoUser/artistinfoUser.pb.go index 3a33727..3811315 100644 --- a/pb/artistInfoUser/artistinfoUser.pb.go +++ b/pb/artistInfoUser/artistinfoUser.pb.go @@ -3302,6 +3302,7 @@ type FindUsersRequest struct { PageSize int32 `protobuf:"varint,6,opt,name=pageSize,proto3" json:"pageSize,omitempty"` IsArtist bool `protobuf:"varint,9,opt,name=isArtist,proto3" json:"isArtist,omitempty"` //查询有艺术家uid的数据 MgmtArtistUids []string `protobuf:"bytes,10,rep,name=mgmtArtistUids,proto3" json:"mgmtArtistUids,omitempty"` + IsLock bool `protobuf:"varint,11,opt,name=isLock,proto3" json:"isLock,omitempty"` } func (x *FindUsersRequest) Reset() { @@ -3392,6 +3393,13 @@ func (x *FindUsersRequest) GetMgmtArtistUids() []string { return nil } +func (x *FindUsersRequest) GetIsLock() bool { + if x != nil { + return x.IsLock + } + return false +} + type FindUsersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4767,7 +4775,7 @@ var file_pb_artistinfoUser_proto_rawDesc = []byte{ 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x22, 0x98, 0x02, 0x0a, 0x10, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, + 0x74, 0x69, 0x73, 0x74, 0x22, 0xb0, 0x02, 0x0a, 0x10, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, @@ -4784,289 +4792,291 @@ var file_pb_artistinfoUser_proto_rawDesc = []byte{ 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x73, 0x22, - 0x71, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, - 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x64, 0x4e, 0x75, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x49, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, - 0x06, 0x54, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, - 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x46, - 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x49, 0x64, 0x43, 0x61, - 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x43, 0x61, 0x72, - 0x64, 0x42, 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x49, 0x64, 0x43, - 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x41, 0x67, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x41, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x42, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x42, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, - 0x64, 0x22, 0xe2, 0x06, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, - 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, - 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x67, 0x6d, - 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, - 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, - 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, - 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x73, - 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, - 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, - 0x65, 0x6e, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x52, 0x65, 0x61, 0x64, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x69, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, - 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4c, 0x6f, - 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, - 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x49, 0x6d, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x67, 0x12, 0x14, 0x0a, 0x05, - 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, - 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x74, 0x6d, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x19, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x74, 0x6d, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x65, 0x6e, 0x76, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x65, 0x6e, 0x76, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x67, 0x6d, 0x74, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, - 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, - 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x1d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x1e, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, - 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xf3, 0x02, 0x0a, 0x15, 0x50, 0x72, 0x65, 0x53, 0x61, - 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6c, - 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x61, 0x61, 0x43, 0x65, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x61, 0x43, 0x65, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x20, - 0x0a, 0x0b, 0x63, 0x61, 0x61, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x61, 0x61, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x68, 0x6f, 0x77, 0x22, 0x3b, 0x0a, 0x1b, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, - 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x22, 0xb4, 0x06, 0x0a, 0x08, 0x55, 0x73, - 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x61, - 0x63, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, - 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, - 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, - 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x64, - 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x64, - 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, - 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x69, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, + 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x69, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x63, 0x61, 0x72, - 0x64, 0x42, 0x61, 0x63, 0x6b, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, 0x63, - 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x64, 0x63, 0x61, 0x72, - 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, - 0x64, 0x63, 0x61, 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, - 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, - 0x6f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, - 0x22, 0x79, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, - 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, - 0x77, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x32, 0xbc, 0x0e, 0x0a, 0x0e, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x12, 0x52, - 0x0a, 0x0c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1f, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, - 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x43, 0x61, - 0x72, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, - 0x00, 0x12, 0x43, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, - 0x52, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, - 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x64, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x10, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x08, 0x55, 0x73, - 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, - 0x22, 0x00, 0x12, 0x55, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, - 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0c, 0x55, 0x6e, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4c, 0x0a, - 0x0a, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1d, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, - 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x09, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x18, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, - 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4f, - 0x0a, 0x0c, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1f, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, - 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x3f, 0x0a, 0x08, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, - 0x12, 0x4a, 0x0a, 0x09, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x11, - 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, - 0x77, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, - 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, - 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x2e, 0x61, 0x72, 0x74, + 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x22, 0x71, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x54, - 0x0a, 0x11, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, - 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, - 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, - 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x50, - 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x0c, 0x52, + 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x49, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x49, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, + 0x0b, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x12, + 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x12, + 0x10, 0x0a, 0x03, 0x41, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x41, 0x67, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x53, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, + 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x22, 0xe2, 0x06, 0x0a, 0x08, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, 0x24, + 0x0a, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, + 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x64, + 0x12, 0x34, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x72, 0x65, + 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, + 0x52, 0x65, 0x61, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x69, 0x73, 0x52, 0x65, + 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, + 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, + 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x67, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x49, 0x6d, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x74, + 0x6d, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x74, + 0x6d, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x76, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x76, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x1b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, + 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4c, 0x6f, + 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xf3, + 0x02, 0x0a, 0x15, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, + 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x67, 0x6d, + 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, + 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x61, 0x43, 0x65, 0x72, + 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x61, 0x43, + 0x65, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, 0x61, 0x4a, 0x6f, 0x69, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x61, 0x61, + 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, + 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, + 0x53, 0x68, 0x6f, 0x77, 0x22, 0x3b, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, + 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, + 0x64, 0x22, 0xb4, 0x06, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, + 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, + 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, + 0x74, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, + 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x69, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, + 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x12, + 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x64, 0x4e, 0x75, + 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x73, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x12, + 0x21, 0x0a, 0x0c, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x46, 0x72, 0x6f, + 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, + 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x1a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, + 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x6e, 0x6b, + 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x79, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x32, 0xbc, 0x0e, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, + 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x07, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4f, + 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x1e, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, + 0x4c, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1d, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x58, 0x0a, + 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0d, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x20, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, + 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, + 0x22, 0x00, 0x12, 0x46, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x1b, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x10, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, + 0x00, 0x12, 0x52, 0x0a, 0x0c, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, + 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x73, 0x67, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x64, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, + 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x76, + 0x0a, 0x18, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0c, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x08, 0x46, 0x69, 0x6e, 0x64, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x09, 0x46, 0x69, 0x6e, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, + 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x44, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, + 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x1a, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x14, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x61, + 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, + 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/pb/artistinfoArtshow.proto b/pb/artistinfoArtshow.proto index d0a2710..886352c 100644 --- a/pb/artistinfoArtshow.proto +++ b/pb/artistinfoArtshow.proto @@ -28,10 +28,22 @@ service ArtistInfoArtshow { rpc UpdateArtistIndex(UpdateArtistIndexRequest)returns(google.protobuf.Empty){} //更新或创建画展视频 rpc DeletedArtistIndex(DeletedArtistIndexRequest)returns(google.protobuf.Empty){} //删除画展视频 // rpc GetArtistListOfArtistIndex(ArtistListRequest)returns(){}//获取后台画家指数审批的画家列表 + + + //画家补充信息 + rpc GetArtistSupplementDetail(GetArtistSupplementDetailRequest)returns(ArtistSupplementInfo){} //获取视频详情 + rpc GetArtistSupplementList(GetArtistSupplementListRequest)returns(GetArtistSupplementListResponse){}//获取画展视频列表 + rpc CreateArtistSupplement(ArtistSupplementInfo)returns(google.protobuf.Empty){} + rpc BatchCreateArtistSupplement(BatchCreateArtistSupplementRequest)returns(google.protobuf.Empty){} + rpc AuditArtistSupplement(AuditArtistSupplementRequest)returns(google.protobuf.Empty){} //审批画展视频 + rpc UpdateArtistSupplement(UpdateArtistSupplementRequest)returns(google.protobuf.Empty){} //更新或创建画展视频 + rpc DeletedArtistSupplement(DeletedArtistSupplementRequest)returns(google.protobuf.Empty){} //删除画展视频 } -message ArtistListRequest{ - string artistName =1; +message ArtistListRequest{//勿删 + int64 page =1; + int64 pageSize=2; + string artistName =3; } message videoPagination{ int64 page =1; @@ -125,38 +137,100 @@ message GetArtistIndexListResponse{ repeated ArtistIndexInfo Data=1; videoPagination page=2; } - message GetArtistIndexDetailRequest{ - int64 id =1; - } - message GetArtistIndexListRequest{ +message GetArtistIndexDetailRequest{ +int64 id =1; +} +message GetArtistIndexListRequest{ string artistUid =1; string artistName =3; string lockTime=4; int64 auditStatus=5; int64 status=6; //锁定状态 2=锁定 3=解锁 - int64 page=7; - int64 pageSize=8; - } + int64 page=7; + int64 pageSize=8; +} - message BatchCreateArtistIndexRequest{ - repeated string artistUids =1; +message BatchCreateArtistIndexRequest{ + repeated string artistUids =1; // string lockTime=2; - } - message AuditArtistIndexRequest{ - repeated int64 artistIndexIds =1; - int64 auditStatus =5; - string auditMark1 =6; - string auditMark2 =7; +} +message AuditArtistIndexRequest{ + repeated int64 artistIndexIds =1; + int64 auditStatus =5; + string auditMark1 =6; + string auditMark2 =7; - } - message UpdateArtistIndexRequest{ - int64 id=12; - int64 titleScore=4; - string score=5; - int64 status=7; - } +} +message UpdateArtistIndexRequest{ + int64 id=12; + int64 titleScore=4; + string score=5; + int64 status=7; +} - message DeletedArtistIndexRequest{ - int64 Id=1; //单个删除 - repeated int64 Ids =2; //批量删除 - } \ No newline at end of file +message DeletedArtistIndexRequest{ + int64 Id=1; //单个删除 + repeated int64 Ids =2; //批量删除 +} + + +//画家补充信息------------ +message ArtistSupplementInfo{ + string ArtistUid=1; + int64 Status=2; + string LockTime=3; + int64 AuditStatus=4; + string AuditMark1=5; + string AuditMark2=6; + string ArtistName=7; + string ArtistProfile=8; + int64 CountryArtLevel=9; + string ArtistCertPic=10; + string BankNum=11; + string BankName=12; + int64 id=13; + int64 createdAt=14; + int64 updatedAt=15; + int64 deletedAt=16; +} +message GetArtistSupplementListResponse{ + repeated ArtistSupplementInfo Data=1; + videoPagination page=2; +} +message GetArtistSupplementDetailRequest{ + int64 id =1; +} +message GetArtistSupplementListRequest{ + string artistUid =1; + string artistName =3; + string lockTime=4; + int64 auditStatus=5; + int64 status=6; //锁定状态 2=锁定 3=解锁 + int64 page=7; + int64 pageSize=8; +} + +message BatchCreateArtistSupplementRequest{ + repeated string artistUids =1; +} + +message AuditArtistSupplementRequest{ + repeated int64 artistSupplementIds =1; + int64 auditStatus =5; + string auditMark1 =6; + string auditMark2 =7; + +} +message UpdateArtistSupplementRequest{ + int64 id=1; + string ArtistProfile=2; + int64 CountryArtLevel=3; + string ArtistCertPic=4; + string BankNum=5; + string BankName=6; +} + +message DeletedArtistSupplementRequest{ + int64 Id=1; //单个删除 + repeated int64 Ids =2; //批量删除 +} \ No newline at end of file diff --git a/pb/artistinfoArtshow/artistinfoArtshow.pb.go b/pb/artistinfoArtshow/artistinfoArtshow.pb.go index bcf3c29..ab8df67 100644 --- a/pb/artistinfoArtshow/artistinfoArtshow.pb.go +++ b/pb/artistinfoArtshow/artistinfoArtshow.pb.go @@ -31,7 +31,9 @@ type ArtistListRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ArtistName string `protobuf:"bytes,1,opt,name=artistName,proto3" json:"artistName,omitempty"` + Page int64 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + PageSize int64 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName,omitempty"` } func (x *ArtistListRequest) Reset() { @@ -66,6 +68,20 @@ func (*ArtistListRequest) Descriptor() ([]byte, []int) { return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{0} } +func (x *ArtistListRequest) GetPage() int64 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *ArtistListRequest) GetPageSize() int64 { + if x != nil { + return x.PageSize + } + return 0 +} + func (x *ArtistListRequest) GetArtistName() string { if x != nil { return x.ArtistName @@ -1424,6 +1440,631 @@ func (x *DeletedArtistIndexRequest) GetIds() []int64 { return nil } +// 画家补充信息------------ +type ArtistSupplementInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUid string `protobuf:"bytes,1,opt,name=ArtistUid,proto3" json:"ArtistUid,omitempty"` + Status int64 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` + LockTime string `protobuf:"bytes,3,opt,name=LockTime,proto3" json:"LockTime,omitempty"` + AuditStatus int64 `protobuf:"varint,4,opt,name=AuditStatus,proto3" json:"AuditStatus,omitempty"` + AuditMark1 string `protobuf:"bytes,5,opt,name=AuditMark1,proto3" json:"AuditMark1,omitempty"` + AuditMark2 string `protobuf:"bytes,6,opt,name=AuditMark2,proto3" json:"AuditMark2,omitempty"` + ArtistName string `protobuf:"bytes,7,opt,name=ArtistName,proto3" json:"ArtistName,omitempty"` + ArtistProfile string `protobuf:"bytes,8,opt,name=ArtistProfile,proto3" json:"ArtistProfile,omitempty"` + CountryArtLevel int64 `protobuf:"varint,9,opt,name=CountryArtLevel,proto3" json:"CountryArtLevel,omitempty"` + ArtistCertPic string `protobuf:"bytes,10,opt,name=ArtistCertPic,proto3" json:"ArtistCertPic,omitempty"` + BankNum string `protobuf:"bytes,11,opt,name=BankNum,proto3" json:"BankNum,omitempty"` + BankName string `protobuf:"bytes,12,opt,name=BankName,proto3" json:"BankName,omitempty"` + Id int64 `protobuf:"varint,13,opt,name=id,proto3" json:"id,omitempty"` + CreatedAt int64 `protobuf:"varint,14,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + UpdatedAt int64 `protobuf:"varint,15,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` + DeletedAt int64 `protobuf:"varint,16,opt,name=deletedAt,proto3" json:"deletedAt,omitempty"` +} + +func (x *ArtistSupplementInfo) Reset() { + *x = ArtistSupplementInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtistSupplementInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtistSupplementInfo) ProtoMessage() {} + +func (x *ArtistSupplementInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArtistSupplementInfo.ProtoReflect.Descriptor instead. +func (*ArtistSupplementInfo) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{19} +} + +func (x *ArtistSupplementInfo) GetArtistUid() string { + if x != nil { + return x.ArtistUid + } + return "" +} + +func (x *ArtistSupplementInfo) GetStatus() int64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *ArtistSupplementInfo) GetLockTime() string { + if x != nil { + return x.LockTime + } + return "" +} + +func (x *ArtistSupplementInfo) GetAuditStatus() int64 { + if x != nil { + return x.AuditStatus + } + return 0 +} + +func (x *ArtistSupplementInfo) GetAuditMark1() string { + if x != nil { + return x.AuditMark1 + } + return "" +} + +func (x *ArtistSupplementInfo) GetAuditMark2() string { + if x != nil { + return x.AuditMark2 + } + return "" +} + +func (x *ArtistSupplementInfo) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *ArtistSupplementInfo) GetArtistProfile() string { + if x != nil { + return x.ArtistProfile + } + return "" +} + +func (x *ArtistSupplementInfo) GetCountryArtLevel() int64 { + if x != nil { + return x.CountryArtLevel + } + return 0 +} + +func (x *ArtistSupplementInfo) GetArtistCertPic() string { + if x != nil { + return x.ArtistCertPic + } + return "" +} + +func (x *ArtistSupplementInfo) GetBankNum() string { + if x != nil { + return x.BankNum + } + return "" +} + +func (x *ArtistSupplementInfo) GetBankName() string { + if x != nil { + return x.BankName + } + return "" +} + +func (x *ArtistSupplementInfo) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ArtistSupplementInfo) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *ArtistSupplementInfo) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *ArtistSupplementInfo) GetDeletedAt() int64 { + if x != nil { + return x.DeletedAt + } + return 0 +} + +type GetArtistSupplementListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*ArtistSupplementInfo `protobuf:"bytes,1,rep,name=Data,proto3" json:"Data,omitempty"` + Page *VideoPagination `protobuf:"bytes,2,opt,name=page,proto3" json:"page,omitempty"` +} + +func (x *GetArtistSupplementListResponse) Reset() { + *x = GetArtistSupplementListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetArtistSupplementListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetArtistSupplementListResponse) ProtoMessage() {} + +func (x *GetArtistSupplementListResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetArtistSupplementListResponse.ProtoReflect.Descriptor instead. +func (*GetArtistSupplementListResponse) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{20} +} + +func (x *GetArtistSupplementListResponse) GetData() []*ArtistSupplementInfo { + if x != nil { + return x.Data + } + return nil +} + +func (x *GetArtistSupplementListResponse) GetPage() *VideoPagination { + if x != nil { + return x.Page + } + return nil +} + +type GetArtistSupplementDetailRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *GetArtistSupplementDetailRequest) Reset() { + *x = GetArtistSupplementDetailRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetArtistSupplementDetailRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetArtistSupplementDetailRequest) ProtoMessage() {} + +func (x *GetArtistSupplementDetailRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetArtistSupplementDetailRequest.ProtoReflect.Descriptor instead. +func (*GetArtistSupplementDetailRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{21} +} + +func (x *GetArtistSupplementDetailRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +type GetArtistSupplementListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUid string `protobuf:"bytes,1,opt,name=artistUid,proto3" json:"artistUid,omitempty"` + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName,omitempty"` + LockTime string `protobuf:"bytes,4,opt,name=lockTime,proto3" json:"lockTime,omitempty"` + AuditStatus int64 `protobuf:"varint,5,opt,name=auditStatus,proto3" json:"auditStatus,omitempty"` + Status int64 `protobuf:"varint,6,opt,name=status,proto3" json:"status,omitempty"` //锁定状态 2=锁定 3=解锁 + Page int64 `protobuf:"varint,7,opt,name=page,proto3" json:"page,omitempty"` + PageSize int64 `protobuf:"varint,8,opt,name=pageSize,proto3" json:"pageSize,omitempty"` +} + +func (x *GetArtistSupplementListRequest) Reset() { + *x = GetArtistSupplementListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetArtistSupplementListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetArtistSupplementListRequest) ProtoMessage() {} + +func (x *GetArtistSupplementListRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetArtistSupplementListRequest.ProtoReflect.Descriptor instead. +func (*GetArtistSupplementListRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{22} +} + +func (x *GetArtistSupplementListRequest) GetArtistUid() string { + if x != nil { + return x.ArtistUid + } + return "" +} + +func (x *GetArtistSupplementListRequest) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *GetArtistSupplementListRequest) GetLockTime() string { + if x != nil { + return x.LockTime + } + return "" +} + +func (x *GetArtistSupplementListRequest) GetAuditStatus() int64 { + if x != nil { + return x.AuditStatus + } + return 0 +} + +func (x *GetArtistSupplementListRequest) GetStatus() int64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *GetArtistSupplementListRequest) GetPage() int64 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetArtistSupplementListRequest) GetPageSize() int64 { + if x != nil { + return x.PageSize + } + return 0 +} + +type BatchCreateArtistSupplementRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUids []string `protobuf:"bytes,1,rep,name=artistUids,proto3" json:"artistUids,omitempty"` +} + +func (x *BatchCreateArtistSupplementRequest) Reset() { + *x = BatchCreateArtistSupplementRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchCreateArtistSupplementRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchCreateArtistSupplementRequest) ProtoMessage() {} + +func (x *BatchCreateArtistSupplementRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchCreateArtistSupplementRequest.ProtoReflect.Descriptor instead. +func (*BatchCreateArtistSupplementRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{23} +} + +func (x *BatchCreateArtistSupplementRequest) GetArtistUids() []string { + if x != nil { + return x.ArtistUids + } + return nil +} + +type AuditArtistSupplementRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistSupplementIds []int64 `protobuf:"varint,1,rep,packed,name=artistSupplementIds,proto3" json:"artistSupplementIds,omitempty"` + AuditStatus int64 `protobuf:"varint,5,opt,name=auditStatus,proto3" json:"auditStatus,omitempty"` + AuditMark1 string `protobuf:"bytes,6,opt,name=auditMark1,proto3" json:"auditMark1,omitempty"` + AuditMark2 string `protobuf:"bytes,7,opt,name=auditMark2,proto3" json:"auditMark2,omitempty"` +} + +func (x *AuditArtistSupplementRequest) Reset() { + *x = AuditArtistSupplementRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuditArtistSupplementRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuditArtistSupplementRequest) ProtoMessage() {} + +func (x *AuditArtistSupplementRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AuditArtistSupplementRequest.ProtoReflect.Descriptor instead. +func (*AuditArtistSupplementRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{24} +} + +func (x *AuditArtistSupplementRequest) GetArtistSupplementIds() []int64 { + if x != nil { + return x.ArtistSupplementIds + } + return nil +} + +func (x *AuditArtistSupplementRequest) GetAuditStatus() int64 { + if x != nil { + return x.AuditStatus + } + return 0 +} + +func (x *AuditArtistSupplementRequest) GetAuditMark1() string { + if x != nil { + return x.AuditMark1 + } + return "" +} + +func (x *AuditArtistSupplementRequest) GetAuditMark2() string { + if x != nil { + return x.AuditMark2 + } + return "" +} + +type UpdateArtistSupplementRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + ArtistProfile string `protobuf:"bytes,2,opt,name=ArtistProfile,proto3" json:"ArtistProfile,omitempty"` + CountryArtLevel int64 `protobuf:"varint,3,opt,name=CountryArtLevel,proto3" json:"CountryArtLevel,omitempty"` + ArtistCertPic string `protobuf:"bytes,4,opt,name=ArtistCertPic,proto3" json:"ArtistCertPic,omitempty"` + BankNum string `protobuf:"bytes,5,opt,name=BankNum,proto3" json:"BankNum,omitempty"` + BankName string `protobuf:"bytes,6,opt,name=BankName,proto3" json:"BankName,omitempty"` +} + +func (x *UpdateArtistSupplementRequest) Reset() { + *x = UpdateArtistSupplementRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateArtistSupplementRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateArtistSupplementRequest) ProtoMessage() {} + +func (x *UpdateArtistSupplementRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateArtistSupplementRequest.ProtoReflect.Descriptor instead. +func (*UpdateArtistSupplementRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{25} +} + +func (x *UpdateArtistSupplementRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *UpdateArtistSupplementRequest) GetArtistProfile() string { + if x != nil { + return x.ArtistProfile + } + return "" +} + +func (x *UpdateArtistSupplementRequest) GetCountryArtLevel() int64 { + if x != nil { + return x.CountryArtLevel + } + return 0 +} + +func (x *UpdateArtistSupplementRequest) GetArtistCertPic() string { + if x != nil { + return x.ArtistCertPic + } + return "" +} + +func (x *UpdateArtistSupplementRequest) GetBankNum() string { + if x != nil { + return x.BankNum + } + return "" +} + +func (x *UpdateArtistSupplementRequest) GetBankName() string { + if x != nil { + return x.BankName + } + return "" +} + +type DeletedArtistSupplementRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //单个删除 + Ids []int64 `protobuf:"varint,2,rep,packed,name=Ids,proto3" json:"Ids,omitempty"` //批量删除 +} + +func (x *DeletedArtistSupplementRequest) Reset() { + *x = DeletedArtistSupplementRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeletedArtistSupplementRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeletedArtistSupplementRequest) ProtoMessage() {} + +func (x *DeletedArtistSupplementRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_artistinfoArtshow_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeletedArtistSupplementRequest.ProtoReflect.Descriptor instead. +func (*DeletedArtistSupplementRequest) Descriptor() ([]byte, []int) { + return file_pb_artistinfoArtshow_proto_rawDescGZIP(), []int{26} +} + +func (x *DeletedArtistSupplementRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *DeletedArtistSupplementRequest) GetIds() []int64 { + if x != nil { + return x.Ids + } + return nil +} + var File_pb_artistinfoArtshow_proto protoreflect.FileDescriptor var file_pb_artistinfoArtshow_proto_rawDesc = []byte{ @@ -1433,9 +2074,12 @@ var file_pb_artistinfoArtshow_proto_rawDesc = []byte{ 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x33, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x63, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x57, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, @@ -1615,89 +2259,226 @@ var file_pb_artistinfoArtshow_proto_rawDesc = []byte{ 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, - 0x73, 0x32, 0x84, 0x0a, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x61, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, - 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x13, 0x47, 0x65, - 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, - 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, - 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, - 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, - 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 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, 0x5f, 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x2a, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x00, 0x12, 0x53, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, - 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, - 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x73, 0x22, 0x80, 0x04, 0x0a, 0x14, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, + 0x0a, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, + 0x0a, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1e, + 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, + 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x41, + 0x72, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x72, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x24, + 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x65, 0x72, 0x74, 0x50, 0x69, 0x63, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x65, 0x72, + 0x74, 0x50, 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x75, 0x6d, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x1a, + 0x0a, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2f, + 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, + 0x32, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x02, 0x69, 0x64, 0x22, 0xe4, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 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, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, + 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x44, 0x0a, 0x22, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x73, + 0x22, 0xb2, 0x01, 0x0a, 0x1c, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x30, 0x0a, 0x13, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x13, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, + 0x72, 0x6b, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, + 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x22, 0xdb, 0x01, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x28, 0x0a, + 0x0f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x72, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x41, + 0x72, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x43, 0x65, 0x72, 0x74, 0x50, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x65, 0x72, 0x74, 0x50, 0x69, 0x63, 0x12, 0x18, 0x0a, + 0x07, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0x42, 0x0a, 0x1e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, 0x73, 0x32, 0xc5, 0x0f, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x61, 0x0a, + 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, + 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, + 0x12, 0x67, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x73, 0x74, 0x1a, 0x27, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x12, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, + 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, + 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 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, 0x55, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x25, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x57, - 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, - 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, - 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, - 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, - 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, - 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, 0x5d, 0x0a, 0x16, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x10, 0x41, 0x75, 0x64, - 0x69, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x23, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x11, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0x00, 0x12, 0x55, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x12, 0x2a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, + 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, - 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, + 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x24, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, + 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x55, 0x0a, + 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, + 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x26, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5e, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x65, 0x0a, + 0x12, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 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, 0x5d, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x29, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, + 0x51, 0x0a, 0x10, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x00, 0x12, 0x53, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x25, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x6d, + 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2c, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, + 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x74, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 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, 0x67, 0x0a, 0x1b, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, + 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x15, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, + 0x5d, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5f, + 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2a, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, + 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -1712,28 +2493,36 @@ func file_pb_artistinfoArtshow_proto_rawDescGZIP() []byte { return file_pb_artistinfoArtshow_proto_rawDescData } -var file_pb_artistinfoArtshow_proto_msgTypes = make([]protoimpl.MessageInfo, 19) +var file_pb_artistinfoArtshow_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_pb_artistinfoArtshow_proto_goTypes = []interface{}{ - (*ArtistListRequest)(nil), // 0: artistinfo.ArtistListRequest - (*VideoPagination)(nil), // 1: artistinfo.videoPagination - (*GetArtshowVideoListRequst)(nil), // 2: artistinfo.GetArtshowVideoListRequst - (*ArtshowVideoInfo)(nil), // 3: artistinfo.ArtshowVideoInfo - (*GetArtshowVideoListResponse)(nil), // 4: artistinfo.GetArtshowVideoListResponse - (*AuditArtshowVideoRequest)(nil), // 5: artistinfo.AuditArtshowVideoRequest - (*UpdateArtshowVideoRequest)(nil), // 6: artistinfo.UpdateArtshowVideoRequest - (*DeletedArtshowVideoRequest)(nil), // 7: artistinfo.DeletedArtshowVideoRequest - (*BatchCreateArtshowVideoRequest)(nil), // 8: artistinfo.BatchCreateArtshowVideoRequest - (*CheckeExistsRequest)(nil), // 9: artistinfo.CheckeExistsRequest - (*GetArtshowVideoDetailRequest)(nil), // 10: artistinfo.GetArtshowVideoDetailRequest - (*ArtistIndexInfo)(nil), // 11: artistinfo.ArtistIndexInfo - (*GetArtistIndexListResponse)(nil), // 12: artistinfo.GetArtistIndexListResponse - (*GetArtistIndexDetailRequest)(nil), // 13: artistinfo.GetArtistIndexDetailRequest - (*GetArtistIndexListRequest)(nil), // 14: artistinfo.GetArtistIndexListRequest - (*BatchCreateArtistIndexRequest)(nil), // 15: artistinfo.BatchCreateArtistIndexRequest - (*AuditArtistIndexRequest)(nil), // 16: artistinfo.AuditArtistIndexRequest - (*UpdateArtistIndexRequest)(nil), // 17: artistinfo.UpdateArtistIndexRequest - (*DeletedArtistIndexRequest)(nil), // 18: artistinfo.DeletedArtistIndexRequest - (*emptypb.Empty)(nil), // 19: google.protobuf.Empty + (*ArtistListRequest)(nil), // 0: artistinfo.ArtistListRequest + (*VideoPagination)(nil), // 1: artistinfo.videoPagination + (*GetArtshowVideoListRequst)(nil), // 2: artistinfo.GetArtshowVideoListRequst + (*ArtshowVideoInfo)(nil), // 3: artistinfo.ArtshowVideoInfo + (*GetArtshowVideoListResponse)(nil), // 4: artistinfo.GetArtshowVideoListResponse + (*AuditArtshowVideoRequest)(nil), // 5: artistinfo.AuditArtshowVideoRequest + (*UpdateArtshowVideoRequest)(nil), // 6: artistinfo.UpdateArtshowVideoRequest + (*DeletedArtshowVideoRequest)(nil), // 7: artistinfo.DeletedArtshowVideoRequest + (*BatchCreateArtshowVideoRequest)(nil), // 8: artistinfo.BatchCreateArtshowVideoRequest + (*CheckeExistsRequest)(nil), // 9: artistinfo.CheckeExistsRequest + (*GetArtshowVideoDetailRequest)(nil), // 10: artistinfo.GetArtshowVideoDetailRequest + (*ArtistIndexInfo)(nil), // 11: artistinfo.ArtistIndexInfo + (*GetArtistIndexListResponse)(nil), // 12: artistinfo.GetArtistIndexListResponse + (*GetArtistIndexDetailRequest)(nil), // 13: artistinfo.GetArtistIndexDetailRequest + (*GetArtistIndexListRequest)(nil), // 14: artistinfo.GetArtistIndexListRequest + (*BatchCreateArtistIndexRequest)(nil), // 15: artistinfo.BatchCreateArtistIndexRequest + (*AuditArtistIndexRequest)(nil), // 16: artistinfo.AuditArtistIndexRequest + (*UpdateArtistIndexRequest)(nil), // 17: artistinfo.UpdateArtistIndexRequest + (*DeletedArtistIndexRequest)(nil), // 18: artistinfo.DeletedArtistIndexRequest + (*ArtistSupplementInfo)(nil), // 19: artistinfo.ArtistSupplementInfo + (*GetArtistSupplementListResponse)(nil), // 20: artistinfo.GetArtistSupplementListResponse + (*GetArtistSupplementDetailRequest)(nil), // 21: artistinfo.GetArtistSupplementDetailRequest + (*GetArtistSupplementListRequest)(nil), // 22: artistinfo.GetArtistSupplementListRequest + (*BatchCreateArtistSupplementRequest)(nil), // 23: artistinfo.BatchCreateArtistSupplementRequest + (*AuditArtistSupplementRequest)(nil), // 24: artistinfo.AuditArtistSupplementRequest + (*UpdateArtistSupplementRequest)(nil), // 25: artistinfo.UpdateArtistSupplementRequest + (*DeletedArtistSupplementRequest)(nil), // 26: artistinfo.DeletedArtistSupplementRequest + (*emptypb.Empty)(nil), // 27: google.protobuf.Empty } var file_pb_artistinfoArtshow_proto_depIdxs = []int32{ 3, // 0: artistinfo.GetArtshowVideoListResponse.data:type_name -> artistinfo.ArtshowVideoInfo @@ -1741,39 +2530,55 @@ var file_pb_artistinfoArtshow_proto_depIdxs = []int32{ 3, // 2: artistinfo.BatchCreateArtshowVideoRequest.data:type_name -> artistinfo.ArtshowVideoInfo 11, // 3: artistinfo.GetArtistIndexListResponse.Data:type_name -> artistinfo.ArtistIndexInfo 1, // 4: artistinfo.GetArtistIndexListResponse.page:type_name -> artistinfo.videoPagination - 10, // 5: artistinfo.ArtistInfoArtshow.GetArtshowVideoDetail:input_type -> artistinfo.GetArtshowVideoDetailRequest - 2, // 6: artistinfo.ArtistInfoArtshow.GetArtshowVideoList:input_type -> artistinfo.GetArtshowVideoListRequst - 3, // 7: artistinfo.ArtistInfoArtshow.CreateArtshowVideo:input_type -> artistinfo.ArtshowVideoInfo - 8, // 8: artistinfo.ArtistInfoArtshow.BatchCreateArtshowVideo:input_type -> artistinfo.BatchCreateArtshowVideoRequest - 5, // 9: artistinfo.ArtistInfoArtshow.AuditArtshowVideo:input_type -> artistinfo.AuditArtshowVideoRequest - 6, // 10: artistinfo.ArtistInfoArtshow.UpdateArtshowVideo:input_type -> artistinfo.UpdateArtshowVideoRequest - 7, // 11: artistinfo.ArtistInfoArtshow.DeletedArtshowVideo:input_type -> artistinfo.DeletedArtshowVideoRequest - 13, // 12: artistinfo.ArtistInfoArtshow.GetArtistIndexDetail:input_type -> artistinfo.GetArtistIndexDetailRequest - 14, // 13: artistinfo.ArtistInfoArtshow.GetArtistIndexList:input_type -> artistinfo.GetArtistIndexListRequest - 11, // 14: artistinfo.ArtistInfoArtshow.CreateArtistIndex:input_type -> artistinfo.ArtistIndexInfo - 15, // 15: artistinfo.ArtistInfoArtshow.BatchCreateArtistIndex:input_type -> artistinfo.BatchCreateArtistIndexRequest - 16, // 16: artistinfo.ArtistInfoArtshow.AuditArtistIndex:input_type -> artistinfo.AuditArtistIndexRequest - 17, // 17: artistinfo.ArtistInfoArtshow.UpdateArtistIndex:input_type -> artistinfo.UpdateArtistIndexRequest - 18, // 18: artistinfo.ArtistInfoArtshow.DeletedArtistIndex:input_type -> artistinfo.DeletedArtistIndexRequest - 3, // 19: artistinfo.ArtistInfoArtshow.GetArtshowVideoDetail:output_type -> artistinfo.ArtshowVideoInfo - 4, // 20: artistinfo.ArtistInfoArtshow.GetArtshowVideoList:output_type -> artistinfo.GetArtshowVideoListResponse - 19, // 21: artistinfo.ArtistInfoArtshow.CreateArtshowVideo:output_type -> google.protobuf.Empty - 19, // 22: artistinfo.ArtistInfoArtshow.BatchCreateArtshowVideo:output_type -> google.protobuf.Empty - 19, // 23: artistinfo.ArtistInfoArtshow.AuditArtshowVideo:output_type -> google.protobuf.Empty - 19, // 24: artistinfo.ArtistInfoArtshow.UpdateArtshowVideo:output_type -> google.protobuf.Empty - 19, // 25: artistinfo.ArtistInfoArtshow.DeletedArtshowVideo:output_type -> google.protobuf.Empty - 11, // 26: artistinfo.ArtistInfoArtshow.GetArtistIndexDetail:output_type -> artistinfo.ArtistIndexInfo - 12, // 27: artistinfo.ArtistInfoArtshow.GetArtistIndexList:output_type -> artistinfo.GetArtistIndexListResponse - 19, // 28: artistinfo.ArtistInfoArtshow.CreateArtistIndex:output_type -> google.protobuf.Empty - 19, // 29: artistinfo.ArtistInfoArtshow.BatchCreateArtistIndex:output_type -> google.protobuf.Empty - 19, // 30: artistinfo.ArtistInfoArtshow.AuditArtistIndex:output_type -> google.protobuf.Empty - 19, // 31: artistinfo.ArtistInfoArtshow.UpdateArtistIndex:output_type -> google.protobuf.Empty - 19, // 32: artistinfo.ArtistInfoArtshow.DeletedArtistIndex:output_type -> google.protobuf.Empty - 19, // [19:33] is the sub-list for method output_type - 5, // [5:19] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name + 19, // 5: artistinfo.GetArtistSupplementListResponse.Data:type_name -> artistinfo.ArtistSupplementInfo + 1, // 6: artistinfo.GetArtistSupplementListResponse.page:type_name -> artistinfo.videoPagination + 10, // 7: artistinfo.ArtistInfoArtshow.GetArtshowVideoDetail:input_type -> artistinfo.GetArtshowVideoDetailRequest + 2, // 8: artistinfo.ArtistInfoArtshow.GetArtshowVideoList:input_type -> artistinfo.GetArtshowVideoListRequst + 3, // 9: artistinfo.ArtistInfoArtshow.CreateArtshowVideo:input_type -> artistinfo.ArtshowVideoInfo + 8, // 10: artistinfo.ArtistInfoArtshow.BatchCreateArtshowVideo:input_type -> artistinfo.BatchCreateArtshowVideoRequest + 5, // 11: artistinfo.ArtistInfoArtshow.AuditArtshowVideo:input_type -> artistinfo.AuditArtshowVideoRequest + 6, // 12: artistinfo.ArtistInfoArtshow.UpdateArtshowVideo:input_type -> artistinfo.UpdateArtshowVideoRequest + 7, // 13: artistinfo.ArtistInfoArtshow.DeletedArtshowVideo:input_type -> artistinfo.DeletedArtshowVideoRequest + 13, // 14: artistinfo.ArtistInfoArtshow.GetArtistIndexDetail:input_type -> artistinfo.GetArtistIndexDetailRequest + 14, // 15: artistinfo.ArtistInfoArtshow.GetArtistIndexList:input_type -> artistinfo.GetArtistIndexListRequest + 11, // 16: artistinfo.ArtistInfoArtshow.CreateArtistIndex:input_type -> artistinfo.ArtistIndexInfo + 15, // 17: artistinfo.ArtistInfoArtshow.BatchCreateArtistIndex:input_type -> artistinfo.BatchCreateArtistIndexRequest + 16, // 18: artistinfo.ArtistInfoArtshow.AuditArtistIndex:input_type -> artistinfo.AuditArtistIndexRequest + 17, // 19: artistinfo.ArtistInfoArtshow.UpdateArtistIndex:input_type -> artistinfo.UpdateArtistIndexRequest + 18, // 20: artistinfo.ArtistInfoArtshow.DeletedArtistIndex:input_type -> artistinfo.DeletedArtistIndexRequest + 21, // 21: artistinfo.ArtistInfoArtshow.GetArtistSupplementDetail:input_type -> artistinfo.GetArtistSupplementDetailRequest + 22, // 22: artistinfo.ArtistInfoArtshow.GetArtistSupplementList:input_type -> artistinfo.GetArtistSupplementListRequest + 19, // 23: artistinfo.ArtistInfoArtshow.CreateArtistSupplement:input_type -> artistinfo.ArtistSupplementInfo + 23, // 24: artistinfo.ArtistInfoArtshow.BatchCreateArtistSupplement:input_type -> artistinfo.BatchCreateArtistSupplementRequest + 24, // 25: artistinfo.ArtistInfoArtshow.AuditArtistSupplement:input_type -> artistinfo.AuditArtistSupplementRequest + 25, // 26: artistinfo.ArtistInfoArtshow.UpdateArtistSupplement:input_type -> artistinfo.UpdateArtistSupplementRequest + 26, // 27: artistinfo.ArtistInfoArtshow.DeletedArtistSupplement:input_type -> artistinfo.DeletedArtistSupplementRequest + 3, // 28: artistinfo.ArtistInfoArtshow.GetArtshowVideoDetail:output_type -> artistinfo.ArtshowVideoInfo + 4, // 29: artistinfo.ArtistInfoArtshow.GetArtshowVideoList:output_type -> artistinfo.GetArtshowVideoListResponse + 27, // 30: artistinfo.ArtistInfoArtshow.CreateArtshowVideo:output_type -> google.protobuf.Empty + 27, // 31: artistinfo.ArtistInfoArtshow.BatchCreateArtshowVideo:output_type -> google.protobuf.Empty + 27, // 32: artistinfo.ArtistInfoArtshow.AuditArtshowVideo:output_type -> google.protobuf.Empty + 27, // 33: artistinfo.ArtistInfoArtshow.UpdateArtshowVideo:output_type -> google.protobuf.Empty + 27, // 34: artistinfo.ArtistInfoArtshow.DeletedArtshowVideo:output_type -> google.protobuf.Empty + 11, // 35: artistinfo.ArtistInfoArtshow.GetArtistIndexDetail:output_type -> artistinfo.ArtistIndexInfo + 12, // 36: artistinfo.ArtistInfoArtshow.GetArtistIndexList:output_type -> artistinfo.GetArtistIndexListResponse + 27, // 37: artistinfo.ArtistInfoArtshow.CreateArtistIndex:output_type -> google.protobuf.Empty + 27, // 38: artistinfo.ArtistInfoArtshow.BatchCreateArtistIndex:output_type -> google.protobuf.Empty + 27, // 39: artistinfo.ArtistInfoArtshow.AuditArtistIndex:output_type -> google.protobuf.Empty + 27, // 40: artistinfo.ArtistInfoArtshow.UpdateArtistIndex:output_type -> google.protobuf.Empty + 27, // 41: artistinfo.ArtistInfoArtshow.DeletedArtistIndex:output_type -> google.protobuf.Empty + 19, // 42: artistinfo.ArtistInfoArtshow.GetArtistSupplementDetail:output_type -> artistinfo.ArtistSupplementInfo + 20, // 43: artistinfo.ArtistInfoArtshow.GetArtistSupplementList:output_type -> artistinfo.GetArtistSupplementListResponse + 27, // 44: artistinfo.ArtistInfoArtshow.CreateArtistSupplement:output_type -> google.protobuf.Empty + 27, // 45: artistinfo.ArtistInfoArtshow.BatchCreateArtistSupplement:output_type -> google.protobuf.Empty + 27, // 46: artistinfo.ArtistInfoArtshow.AuditArtistSupplement:output_type -> google.protobuf.Empty + 27, // 47: artistinfo.ArtistInfoArtshow.UpdateArtistSupplement:output_type -> google.protobuf.Empty + 27, // 48: artistinfo.ArtistInfoArtshow.DeletedArtistSupplement:output_type -> google.protobuf.Empty + 28, // [28:49] is the sub-list for method output_type + 7, // [7:28] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name } func init() { file_pb_artistinfoArtshow_proto_init() } @@ -2010,6 +2815,102 @@ func file_pb_artistinfoArtshow_proto_init() { return nil } } + file_pb_artistinfoArtshow_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtistSupplementInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArtistSupplementListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArtistSupplementDetailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArtistSupplementListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchCreateArtistSupplementRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuditArtistSupplementRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateArtistSupplementRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artistinfoArtshow_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeletedArtistSupplementRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -2017,7 +2918,7 @@ func file_pb_artistinfoArtshow_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_artistinfoArtshow_proto_rawDesc, NumEnums: 0, - NumMessages: 19, + NumMessages: 27, NumExtensions: 0, NumServices: 1, }, diff --git a/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go b/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go index cf843f2..a61e7b9 100644 --- a/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go +++ b/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go @@ -57,6 +57,10 @@ func (m *ArtistListRequest) validate(all bool) error { var errors []error + // no validation rules for Page + + // no validation rules for PageSize + // no validation rules for ArtistName if len(errors) > 0 { @@ -2275,3 +2279,961 @@ var _ interface { Cause() error ErrorName() string } = DeletedArtistIndexRequestValidationError{} + +// Validate checks the field values on ArtistSupplementInfo 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 *ArtistSupplementInfo) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ArtistSupplementInfo 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 +// ArtistSupplementInfoMultiError, or nil if none found. +func (m *ArtistSupplementInfo) ValidateAll() error { + return m.validate(true) +} + +func (m *ArtistSupplementInfo) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ArtistUid + + // no validation rules for Status + + // no validation rules for LockTime + + // no validation rules for AuditStatus + + // no validation rules for AuditMark1 + + // no validation rules for AuditMark2 + + // no validation rules for ArtistName + + // no validation rules for ArtistProfile + + // no validation rules for CountryArtLevel + + // no validation rules for ArtistCertPic + + // no validation rules for BankNum + + // no validation rules for BankName + + // no validation rules for Id + + // no validation rules for CreatedAt + + // no validation rules for UpdatedAt + + // no validation rules for DeletedAt + + if len(errors) > 0 { + return ArtistSupplementInfoMultiError(errors) + } + + return nil +} + +// ArtistSupplementInfoMultiError is an error wrapping multiple validation +// errors returned by ArtistSupplementInfo.ValidateAll() if the designated +// constraints aren't met. +type ArtistSupplementInfoMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ArtistSupplementInfoMultiError) 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 ArtistSupplementInfoMultiError) AllErrors() []error { return m } + +// ArtistSupplementInfoValidationError is the validation error returned by +// ArtistSupplementInfo.Validate if the designated constraints aren't met. +type ArtistSupplementInfoValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ArtistSupplementInfoValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ArtistSupplementInfoValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ArtistSupplementInfoValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ArtistSupplementInfoValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ArtistSupplementInfoValidationError) ErrorName() string { + return "ArtistSupplementInfoValidationError" +} + +// Error satisfies the builtin error interface +func (e ArtistSupplementInfoValidationError) 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 %sArtistSupplementInfo.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ArtistSupplementInfoValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ArtistSupplementInfoValidationError{} + +// Validate checks the field values on GetArtistSupplementListResponse 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 *GetArtistSupplementListResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetArtistSupplementListResponse 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 +// GetArtistSupplementListResponseMultiError, or nil if none found. +func (m *GetArtistSupplementListResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *GetArtistSupplementListResponse) 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, GetArtistSupplementListResponseValidationError{ + 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, GetArtistSupplementListResponseValidationError{ + 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 GetArtistSupplementListResponseValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if all { + switch v := interface{}(m.GetPage()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, GetArtistSupplementListResponseValidationError{ + field: "Page", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, GetArtistSupplementListResponseValidationError{ + field: "Page", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPage()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GetArtistSupplementListResponseValidationError{ + field: "Page", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return GetArtistSupplementListResponseMultiError(errors) + } + + return nil +} + +// GetArtistSupplementListResponseMultiError is an error wrapping multiple +// validation errors returned by GetArtistSupplementListResponse.ValidateAll() +// if the designated constraints aren't met. +type GetArtistSupplementListResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetArtistSupplementListResponseMultiError) 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 GetArtistSupplementListResponseMultiError) AllErrors() []error { return m } + +// GetArtistSupplementListResponseValidationError is the validation error +// returned by GetArtistSupplementListResponse.Validate if the designated +// constraints aren't met. +type GetArtistSupplementListResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetArtistSupplementListResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetArtistSupplementListResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetArtistSupplementListResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetArtistSupplementListResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetArtistSupplementListResponseValidationError) ErrorName() string { + return "GetArtistSupplementListResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e GetArtistSupplementListResponseValidationError) 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 %sGetArtistSupplementListResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetArtistSupplementListResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetArtistSupplementListResponseValidationError{} + +// Validate checks the field values on GetArtistSupplementDetailRequest 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 *GetArtistSupplementDetailRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetArtistSupplementDetailRequest 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 +// GetArtistSupplementDetailRequestMultiError, or nil if none found. +func (m *GetArtistSupplementDetailRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *GetArtistSupplementDetailRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + if len(errors) > 0 { + return GetArtistSupplementDetailRequestMultiError(errors) + } + + return nil +} + +// GetArtistSupplementDetailRequestMultiError is an error wrapping multiple +// validation errors returned by +// GetArtistSupplementDetailRequest.ValidateAll() if the designated +// constraints aren't met. +type GetArtistSupplementDetailRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetArtistSupplementDetailRequestMultiError) 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 GetArtistSupplementDetailRequestMultiError) AllErrors() []error { return m } + +// GetArtistSupplementDetailRequestValidationError is the validation error +// returned by GetArtistSupplementDetailRequest.Validate if the designated +// constraints aren't met. +type GetArtistSupplementDetailRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetArtistSupplementDetailRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetArtistSupplementDetailRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetArtistSupplementDetailRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetArtistSupplementDetailRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetArtistSupplementDetailRequestValidationError) ErrorName() string { + return "GetArtistSupplementDetailRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e GetArtistSupplementDetailRequestValidationError) 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 %sGetArtistSupplementDetailRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetArtistSupplementDetailRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetArtistSupplementDetailRequestValidationError{} + +// Validate checks the field values on GetArtistSupplementListRequest 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 *GetArtistSupplementListRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetArtistSupplementListRequest 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 +// GetArtistSupplementListRequestMultiError, or nil if none found. +func (m *GetArtistSupplementListRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *GetArtistSupplementListRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ArtistUid + + // no validation rules for ArtistName + + // no validation rules for LockTime + + // no validation rules for AuditStatus + + // no validation rules for Status + + // no validation rules for Page + + // no validation rules for PageSize + + if len(errors) > 0 { + return GetArtistSupplementListRequestMultiError(errors) + } + + return nil +} + +// GetArtistSupplementListRequestMultiError is an error wrapping multiple +// validation errors returned by GetArtistSupplementListRequest.ValidateAll() +// if the designated constraints aren't met. +type GetArtistSupplementListRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetArtistSupplementListRequestMultiError) 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 GetArtistSupplementListRequestMultiError) AllErrors() []error { return m } + +// GetArtistSupplementListRequestValidationError is the validation error +// returned by GetArtistSupplementListRequest.Validate if the designated +// constraints aren't met. +type GetArtistSupplementListRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetArtistSupplementListRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetArtistSupplementListRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetArtistSupplementListRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetArtistSupplementListRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetArtistSupplementListRequestValidationError) ErrorName() string { + return "GetArtistSupplementListRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e GetArtistSupplementListRequestValidationError) 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 %sGetArtistSupplementListRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetArtistSupplementListRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetArtistSupplementListRequestValidationError{} + +// Validate checks the field values on BatchCreateArtistSupplementRequest 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 *BatchCreateArtistSupplementRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on BatchCreateArtistSupplementRequest +// 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 +// BatchCreateArtistSupplementRequestMultiError, or nil if none found. +func (m *BatchCreateArtistSupplementRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *BatchCreateArtistSupplementRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return BatchCreateArtistSupplementRequestMultiError(errors) + } + + return nil +} + +// BatchCreateArtistSupplementRequestMultiError is an error wrapping multiple +// validation errors returned by +// BatchCreateArtistSupplementRequest.ValidateAll() if the designated +// constraints aren't met. +type BatchCreateArtistSupplementRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m BatchCreateArtistSupplementRequestMultiError) 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 BatchCreateArtistSupplementRequestMultiError) AllErrors() []error { return m } + +// BatchCreateArtistSupplementRequestValidationError is the validation error +// returned by BatchCreateArtistSupplementRequest.Validate if the designated +// constraints aren't met. +type BatchCreateArtistSupplementRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e BatchCreateArtistSupplementRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e BatchCreateArtistSupplementRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e BatchCreateArtistSupplementRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e BatchCreateArtistSupplementRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e BatchCreateArtistSupplementRequestValidationError) ErrorName() string { + return "BatchCreateArtistSupplementRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e BatchCreateArtistSupplementRequestValidationError) 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 %sBatchCreateArtistSupplementRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = BatchCreateArtistSupplementRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = BatchCreateArtistSupplementRequestValidationError{} + +// Validate checks the field values on AuditArtistSupplementRequest 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 *AuditArtistSupplementRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AuditArtistSupplementRequest 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 +// AuditArtistSupplementRequestMultiError, or nil if none found. +func (m *AuditArtistSupplementRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AuditArtistSupplementRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for AuditStatus + + // no validation rules for AuditMark1 + + // no validation rules for AuditMark2 + + if len(errors) > 0 { + return AuditArtistSupplementRequestMultiError(errors) + } + + return nil +} + +// AuditArtistSupplementRequestMultiError is an error wrapping multiple +// validation errors returned by AuditArtistSupplementRequest.ValidateAll() if +// the designated constraints aren't met. +type AuditArtistSupplementRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AuditArtistSupplementRequestMultiError) 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 AuditArtistSupplementRequestMultiError) AllErrors() []error { return m } + +// AuditArtistSupplementRequestValidationError is the validation error returned +// by AuditArtistSupplementRequest.Validate if the designated constraints +// aren't met. +type AuditArtistSupplementRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AuditArtistSupplementRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AuditArtistSupplementRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AuditArtistSupplementRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AuditArtistSupplementRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AuditArtistSupplementRequestValidationError) ErrorName() string { + return "AuditArtistSupplementRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AuditArtistSupplementRequestValidationError) 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 %sAuditArtistSupplementRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AuditArtistSupplementRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AuditArtistSupplementRequestValidationError{} + +// Validate checks the field values on UpdateArtistSupplementRequest 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 *UpdateArtistSupplementRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateArtistSupplementRequest 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 +// UpdateArtistSupplementRequestMultiError, or nil if none found. +func (m *UpdateArtistSupplementRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateArtistSupplementRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for ArtistProfile + + // no validation rules for CountryArtLevel + + // no validation rules for ArtistCertPic + + // no validation rules for BankNum + + // no validation rules for BankName + + if len(errors) > 0 { + return UpdateArtistSupplementRequestMultiError(errors) + } + + return nil +} + +// UpdateArtistSupplementRequestMultiError is an error wrapping multiple +// validation errors returned by UpdateArtistSupplementRequest.ValidateAll() +// if the designated constraints aren't met. +type UpdateArtistSupplementRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateArtistSupplementRequestMultiError) 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 UpdateArtistSupplementRequestMultiError) AllErrors() []error { return m } + +// UpdateArtistSupplementRequestValidationError is the validation error +// returned by UpdateArtistSupplementRequest.Validate if the designated +// constraints aren't met. +type UpdateArtistSupplementRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateArtistSupplementRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateArtistSupplementRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateArtistSupplementRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateArtistSupplementRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateArtistSupplementRequestValidationError) ErrorName() string { + return "UpdateArtistSupplementRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e UpdateArtistSupplementRequestValidationError) 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 %sUpdateArtistSupplementRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateArtistSupplementRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateArtistSupplementRequestValidationError{} + +// Validate checks the field values on DeletedArtistSupplementRequest 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 *DeletedArtistSupplementRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeletedArtistSupplementRequest 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 +// DeletedArtistSupplementRequestMultiError, or nil if none found. +func (m *DeletedArtistSupplementRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *DeletedArtistSupplementRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + if len(errors) > 0 { + return DeletedArtistSupplementRequestMultiError(errors) + } + + return nil +} + +// DeletedArtistSupplementRequestMultiError is an error wrapping multiple +// validation errors returned by DeletedArtistSupplementRequest.ValidateAll() +// if the designated constraints aren't met. +type DeletedArtistSupplementRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeletedArtistSupplementRequestMultiError) 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 DeletedArtistSupplementRequestMultiError) AllErrors() []error { return m } + +// DeletedArtistSupplementRequestValidationError is the validation error +// returned by DeletedArtistSupplementRequest.Validate if the designated +// constraints aren't met. +type DeletedArtistSupplementRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeletedArtistSupplementRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeletedArtistSupplementRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeletedArtistSupplementRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeletedArtistSupplementRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeletedArtistSupplementRequestValidationError) ErrorName() string { + return "DeletedArtistSupplementRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e DeletedArtistSupplementRequestValidationError) 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 %sDeletedArtistSupplementRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeletedArtistSupplementRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeletedArtistSupplementRequestValidationError{} diff --git a/pb/artistinfoArtshow/artistinfoArtshow_triple.pb.go b/pb/artistinfoArtshow/artistinfoArtshow_triple.pb.go index a655a99..e94a2f4 100644 --- a/pb/artistinfoArtshow/artistinfoArtshow_triple.pb.go +++ b/pb/artistinfoArtshow/artistinfoArtshow_triple.pb.go @@ -45,6 +45,14 @@ type ArtistInfoArtshowClient interface { AuditArtistIndex(ctx context.Context, in *AuditArtistIndexRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) UpdateArtistIndex(ctx context.Context, in *UpdateArtistIndexRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) DeletedArtistIndex(ctx context.Context, in *DeletedArtistIndexRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + // 画家补充信息 + GetArtistSupplementDetail(ctx context.Context, in *GetArtistSupplementDetailRequest, opts ...grpc_go.CallOption) (*ArtistSupplementInfo, common.ErrorWithAttachment) + GetArtistSupplementList(ctx context.Context, in *GetArtistSupplementListRequest, opts ...grpc_go.CallOption) (*GetArtistSupplementListResponse, common.ErrorWithAttachment) + CreateArtistSupplement(ctx context.Context, in *ArtistSupplementInfo, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + BatchCreateArtistSupplement(ctx context.Context, in *BatchCreateArtistSupplementRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + AuditArtistSupplement(ctx context.Context, in *AuditArtistSupplementRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + UpdateArtistSupplement(ctx context.Context, in *UpdateArtistSupplementRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + DeletedArtistSupplement(ctx context.Context, in *DeletedArtistSupplementRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) } type artistInfoArtshowClient struct { @@ -52,20 +60,27 @@ type artistInfoArtshowClient struct { } type ArtistInfoArtshowClientImpl struct { - GetArtshowVideoDetail func(ctx context.Context, in *GetArtshowVideoDetailRequest) (*ArtshowVideoInfo, error) - GetArtshowVideoList func(ctx context.Context, in *GetArtshowVideoListRequst) (*GetArtshowVideoListResponse, error) - CreateArtshowVideo func(ctx context.Context, in *ArtshowVideoInfo) (*emptypb.Empty, error) - BatchCreateArtshowVideo func(ctx context.Context, in *BatchCreateArtshowVideoRequest) (*emptypb.Empty, error) - AuditArtshowVideo func(ctx context.Context, in *AuditArtshowVideoRequest) (*emptypb.Empty, error) - UpdateArtshowVideo func(ctx context.Context, in *UpdateArtshowVideoRequest) (*emptypb.Empty, error) - DeletedArtshowVideo func(ctx context.Context, in *DeletedArtshowVideoRequest) (*emptypb.Empty, error) - GetArtistIndexDetail func(ctx context.Context, in *GetArtistIndexDetailRequest) (*ArtistIndexInfo, error) - GetArtistIndexList func(ctx context.Context, in *GetArtistIndexListRequest) (*GetArtistIndexListResponse, error) - CreateArtistIndex func(ctx context.Context, in *ArtistIndexInfo) (*emptypb.Empty, error) - BatchCreateArtistIndex func(ctx context.Context, in *BatchCreateArtistIndexRequest) (*emptypb.Empty, error) - AuditArtistIndex func(ctx context.Context, in *AuditArtistIndexRequest) (*emptypb.Empty, error) - UpdateArtistIndex func(ctx context.Context, in *UpdateArtistIndexRequest) (*emptypb.Empty, error) - DeletedArtistIndex func(ctx context.Context, in *DeletedArtistIndexRequest) (*emptypb.Empty, error) + GetArtshowVideoDetail func(ctx context.Context, in *GetArtshowVideoDetailRequest) (*ArtshowVideoInfo, error) + GetArtshowVideoList func(ctx context.Context, in *GetArtshowVideoListRequst) (*GetArtshowVideoListResponse, error) + CreateArtshowVideo func(ctx context.Context, in *ArtshowVideoInfo) (*emptypb.Empty, error) + BatchCreateArtshowVideo func(ctx context.Context, in *BatchCreateArtshowVideoRequest) (*emptypb.Empty, error) + AuditArtshowVideo func(ctx context.Context, in *AuditArtshowVideoRequest) (*emptypb.Empty, error) + UpdateArtshowVideo func(ctx context.Context, in *UpdateArtshowVideoRequest) (*emptypb.Empty, error) + DeletedArtshowVideo func(ctx context.Context, in *DeletedArtshowVideoRequest) (*emptypb.Empty, error) + GetArtistIndexDetail func(ctx context.Context, in *GetArtistIndexDetailRequest) (*ArtistIndexInfo, error) + GetArtistIndexList func(ctx context.Context, in *GetArtistIndexListRequest) (*GetArtistIndexListResponse, error) + CreateArtistIndex func(ctx context.Context, in *ArtistIndexInfo) (*emptypb.Empty, error) + BatchCreateArtistIndex func(ctx context.Context, in *BatchCreateArtistIndexRequest) (*emptypb.Empty, error) + AuditArtistIndex func(ctx context.Context, in *AuditArtistIndexRequest) (*emptypb.Empty, error) + UpdateArtistIndex func(ctx context.Context, in *UpdateArtistIndexRequest) (*emptypb.Empty, error) + DeletedArtistIndex func(ctx context.Context, in *DeletedArtistIndexRequest) (*emptypb.Empty, error) + GetArtistSupplementDetail func(ctx context.Context, in *GetArtistSupplementDetailRequest) (*ArtistSupplementInfo, error) + GetArtistSupplementList func(ctx context.Context, in *GetArtistSupplementListRequest) (*GetArtistSupplementListResponse, error) + CreateArtistSupplement func(ctx context.Context, in *ArtistSupplementInfo) (*emptypb.Empty, error) + BatchCreateArtistSupplement func(ctx context.Context, in *BatchCreateArtistSupplementRequest) (*emptypb.Empty, error) + AuditArtistSupplement func(ctx context.Context, in *AuditArtistSupplementRequest) (*emptypb.Empty, error) + UpdateArtistSupplement func(ctx context.Context, in *UpdateArtistSupplementRequest) (*emptypb.Empty, error) + DeletedArtistSupplement func(ctx context.Context, in *DeletedArtistSupplementRequest) (*emptypb.Empty, error) } func (c *ArtistInfoArtshowClientImpl) GetDubboStub(cc *triple.TripleConn) ArtistInfoArtshowClient { @@ -164,6 +179,48 @@ func (c *artistInfoArtshowClient) DeletedArtistIndex(ctx context.Context, in *De return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DeletedArtistIndex", in, out) } +func (c *artistInfoArtshowClient) GetArtistSupplementDetail(ctx context.Context, in *GetArtistSupplementDetailRequest, opts ...grpc_go.CallOption) (*ArtistSupplementInfo, common.ErrorWithAttachment) { + out := new(ArtistSupplementInfo) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetArtistSupplementDetail", in, out) +} + +func (c *artistInfoArtshowClient) GetArtistSupplementList(ctx context.Context, in *GetArtistSupplementListRequest, opts ...grpc_go.CallOption) (*GetArtistSupplementListResponse, common.ErrorWithAttachment) { + out := new(GetArtistSupplementListResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetArtistSupplementList", in, out) +} + +func (c *artistInfoArtshowClient) CreateArtistSupplement(ctx context.Context, in *ArtistSupplementInfo, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateArtistSupplement", in, out) +} + +func (c *artistInfoArtshowClient) BatchCreateArtistSupplement(ctx context.Context, in *BatchCreateArtistSupplementRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/BatchCreateArtistSupplement", in, out) +} + +func (c *artistInfoArtshowClient) AuditArtistSupplement(ctx context.Context, in *AuditArtistSupplementRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AuditArtistSupplement", in, out) +} + +func (c *artistInfoArtshowClient) UpdateArtistSupplement(ctx context.Context, in *UpdateArtistSupplementRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateArtistSupplement", in, out) +} + +func (c *artistInfoArtshowClient) DeletedArtistSupplement(ctx context.Context, in *DeletedArtistSupplementRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DeletedArtistSupplement", in, out) +} + // ArtistInfoArtshowServer is the server API for ArtistInfoArtshow service. // All implementations must embed UnimplementedArtistInfoArtshowServer // for forward compatibility @@ -184,6 +241,14 @@ type ArtistInfoArtshowServer interface { AuditArtistIndex(context.Context, *AuditArtistIndexRequest) (*emptypb.Empty, error) UpdateArtistIndex(context.Context, *UpdateArtistIndexRequest) (*emptypb.Empty, error) DeletedArtistIndex(context.Context, *DeletedArtistIndexRequest) (*emptypb.Empty, error) + // 画家补充信息 + GetArtistSupplementDetail(context.Context, *GetArtistSupplementDetailRequest) (*ArtistSupplementInfo, error) + GetArtistSupplementList(context.Context, *GetArtistSupplementListRequest) (*GetArtistSupplementListResponse, error) + CreateArtistSupplement(context.Context, *ArtistSupplementInfo) (*emptypb.Empty, error) + BatchCreateArtistSupplement(context.Context, *BatchCreateArtistSupplementRequest) (*emptypb.Empty, error) + AuditArtistSupplement(context.Context, *AuditArtistSupplementRequest) (*emptypb.Empty, error) + UpdateArtistSupplement(context.Context, *UpdateArtistSupplementRequest) (*emptypb.Empty, error) + DeletedArtistSupplement(context.Context, *DeletedArtistSupplementRequest) (*emptypb.Empty, error) mustEmbedUnimplementedArtistInfoArtshowServer() } @@ -234,6 +299,27 @@ func (UnimplementedArtistInfoArtshowServer) UpdateArtistIndex(context.Context, * func (UnimplementedArtistInfoArtshowServer) DeletedArtistIndex(context.Context, *DeletedArtistIndexRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeletedArtistIndex not implemented") } +func (UnimplementedArtistInfoArtshowServer) GetArtistSupplementDetail(context.Context, *GetArtistSupplementDetailRequest) (*ArtistSupplementInfo, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetArtistSupplementDetail not implemented") +} +func (UnimplementedArtistInfoArtshowServer) GetArtistSupplementList(context.Context, *GetArtistSupplementListRequest) (*GetArtistSupplementListResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetArtistSupplementList not implemented") +} +func (UnimplementedArtistInfoArtshowServer) CreateArtistSupplement(context.Context, *ArtistSupplementInfo) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateArtistSupplement not implemented") +} +func (UnimplementedArtistInfoArtshowServer) BatchCreateArtistSupplement(context.Context, *BatchCreateArtistSupplementRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method BatchCreateArtistSupplement not implemented") +} +func (UnimplementedArtistInfoArtshowServer) AuditArtistSupplement(context.Context, *AuditArtistSupplementRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method AuditArtistSupplement not implemented") +} +func (UnimplementedArtistInfoArtshowServer) UpdateArtistSupplement(context.Context, *UpdateArtistSupplementRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateArtistSupplement not implemented") +} +func (UnimplementedArtistInfoArtshowServer) DeletedArtistSupplement(context.Context, *DeletedArtistSupplementRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeletedArtistSupplement not implemented") +} func (s *UnimplementedArtistInfoArtshowServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -668,6 +754,209 @@ func _ArtistInfoArtshow_DeletedArtistIndex_Handler(srv interface{}, ctx context. return interceptor(ctx, in, info, handler) } +func _ArtistInfoArtshow_GetArtistSupplementDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetArtistSupplementDetailRequest) + 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("GetArtistSupplementDetail", 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 _ArtistInfoArtshow_GetArtistSupplementList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetArtistSupplementListRequest) + 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("GetArtistSupplementList", 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 _ArtistInfoArtshow_CreateArtistSupplement_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ArtistSupplementInfo) + 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("CreateArtistSupplement", 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 _ArtistInfoArtshow_BatchCreateArtistSupplement_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchCreateArtistSupplementRequest) + 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("BatchCreateArtistSupplement", 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 _ArtistInfoArtshow_AuditArtistSupplement_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(AuditArtistSupplementRequest) + 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("AuditArtistSupplement", 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 _ArtistInfoArtshow_UpdateArtistSupplement_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateArtistSupplementRequest) + 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("UpdateArtistSupplement", 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 _ArtistInfoArtshow_DeletedArtistSupplement_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(DeletedArtistSupplementRequest) + 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("DeletedArtistSupplement", 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) +} + // ArtistInfoArtshow_ServiceDesc is the grpc_go.ServiceDesc for ArtistInfoArtshow service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -731,6 +1020,34 @@ var ArtistInfoArtshow_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "DeletedArtistIndex", Handler: _ArtistInfoArtshow_DeletedArtistIndex_Handler, }, + { + MethodName: "GetArtistSupplementDetail", + Handler: _ArtistInfoArtshow_GetArtistSupplementDetail_Handler, + }, + { + MethodName: "GetArtistSupplementList", + Handler: _ArtistInfoArtshow_GetArtistSupplementList_Handler, + }, + { + MethodName: "CreateArtistSupplement", + Handler: _ArtistInfoArtshow_CreateArtistSupplement_Handler, + }, + { + MethodName: "BatchCreateArtistSupplement", + Handler: _ArtistInfoArtshow_BatchCreateArtistSupplement_Handler, + }, + { + MethodName: "AuditArtistSupplement", + Handler: _ArtistInfoArtshow_AuditArtistSupplement_Handler, + }, + { + MethodName: "UpdateArtistSupplement", + Handler: _ArtistInfoArtshow_UpdateArtistSupplement_Handler, + }, + { + MethodName: "DeletedArtistSupplement", + Handler: _ArtistInfoArtshow_DeletedArtistSupplement_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/artistinfoArtshow.proto", diff --git a/pb/artistinfoUser.proto b/pb/artistinfoUser.proto index c4a24fe..0106cc7 100644 --- a/pb/artistinfoUser.proto +++ b/pb/artistinfoUser.proto @@ -391,6 +391,7 @@ message FindUsersRequest{ int32 pageSize=6; bool isArtist=9; //查询有艺术家uid的数据 repeated string mgmtArtistUids =10; + bool isLock =11; // string Account = 3; // string TelNum = 4; // bool IsLock = 5; diff --git a/pkg/db/init.go b/pkg/db/init.go index 49db8d4..c21e09c 100644 --- a/pkg/db/init.go +++ b/pkg/db/init.go @@ -110,8 +110,9 @@ func migration() { &old.ArtworkBatch{}, &model.TempArtistInfo{}, &model.ArtworkLockRecord{}, - &model.ArtshowRecord{}, //画展视频记录 - &model.ArtshowArtistIndex{}, //画展-画家指数 + &model.ArtshowRecord{}, //画展视频记录 + &model.ArtshowArtistIndex{}, //画展-画家指数 + &model.ArtshowArtistSupplement{}, //画展-画家补充信息 ) if err != nil { fmt.Println("register table fail") From c55f56134421fa6e4cb66195d86f1ff6bf782333 Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Fri, 3 Mar 2023 13:59:36 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artshowArtistSupplement.go | 2 +- pb/artistinfoArtshow.proto | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/internal/logic/artistinfo_artshowArtistSupplement.go b/cmd/internal/logic/artistinfo_artshowArtistSupplement.go index 57e681e..8b65f68 100644 --- a/cmd/internal/logic/artistinfo_artshowArtistSupplement.go +++ b/cmd/internal/logic/artistinfo_artshowArtistSupplement.go @@ -33,7 +33,7 @@ func (a ArtshowArtistSupplementLogic) BatchCreateSupplement(request *artistinfoA return errors.New(fmt.Sprintf("用户%s不存在", v)) } datas = append(datas, - model.ArtshowArtistSupplement{LockTime: userInfo.LatestLockTime, ArtistUid: v, ArtistName: userInfo.RealName.Name, Status: 2}, + model.ArtshowArtistSupplement{LockTime: userInfo.LatestLockTime, ArtistUid: v, ArtistName: userInfo.RealName.Name, Status: 2, AuditStatus: 5}, ) } return dao.ArtistSupplement.BatchCreateData(datas) diff --git a/pb/artistinfoArtshow.proto b/pb/artistinfoArtshow.proto index 886352c..35eb796 100644 --- a/pb/artistinfoArtshow.proto +++ b/pb/artistinfoArtshow.proto @@ -113,6 +113,7 @@ message GetArtshowVideoDetailRequest{ string artistUid=1; string lockTime=2; int32 status=3; + int64 id=4; } //-------------------画家指数请求参数 From c828806dc60ca8cd49c0b80f8186f6481a633aed Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Fri, 3 Mar 2023 15:28:55 +0800 Subject: [PATCH 11/11] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistInfo_user.go | 49 +- .../dao/artistinfo_artshow_artistIndex.go | 4 +- .../artistinfo_artshow_artistSupplement.go | 6 +- cmd/internal/dao/artistinfo_artshow_video.go | 52 +- .../logic/artistinfo_artshowArtistIndex.go | 3 +- .../artistinfo_artshowArtistSupplement.go | 3 +- cmd/internal/logic/artistinfo_artshowVideo.go | 11 +- cmd/internal/logic/artistinfo_artwork.go | 2 + cmd/model/artshow_artistIndex.go | 9 + cmd/model/artshow_artist_supplement.go | 11 +- cmd/model/artshow_video.go | 13 +- cmd/model/artwork_main_lockRecord.go | 2 +- cmd/model/{ => old}/artwork_ex_video.go | 6 +- pb/artistInfoArtwork/artistinfoArtwork.pb.go | 374 +++++----- .../artistinfoArtwork.pb.validate.go | 4 + pb/artistinfoArtshow.proto | 3 + pb/artistinfoArtshow/artistinfoArtshow.pb.go | 700 +++++++++--------- .../artistinfoArtshow.pb.validate.go | 8 + pb/artistinfoArtwork.proto | 5 +- pkg/db/init.go | 2 +- 20 files changed, 684 insertions(+), 583 deletions(-) rename cmd/model/{ => old}/artwork_ex_video.go (81%) diff --git a/cmd/internal/dao/artistInfo_user.go b/cmd/internal/dao/artistInfo_user.go index 65f35f1..6db574a 100644 --- a/cmd/internal/dao/artistInfo_user.go +++ b/cmd/internal/dao/artistInfo_user.go @@ -279,7 +279,7 @@ func ArtistSupplyList(req *artistInfoUser.ArtistSupplyListRequest) (rep *artistI } func UserLock(req *artistInfoUser.UserLockRequest) (rep *artistInfoUser.UserLockRespond, err error) { - var tx = db.DB.Model(model.User{}) + var tx = db.DB.Model(model.User{}).Begin() switch { case req.Id != 0: tx = tx.Where("id = ?", req.Id) @@ -302,36 +302,23 @@ func UserLock(req *artistInfoUser.UserLockRequest) (rep *artistInfoUser.UserLock return nil, err } rep.LockTime = now - //if !req.IsLock { - // var vas model.ExhVideo - // vas.UserId = uint(req.Id) - // if err = db.DB.Model(&vas).Update("state", 5).Where("state = 1 or state = 2 or state = 3").Error; err != nil { - // zap.L().Error("get user info err", zap.Error(err)) - // err = errors.New(m.ERROR_SELECT) - // return nil, err - // } - // var ee model.ExhExam - // ee.UserId = uint(req.Id) - // if err = db.DB.Model(&ee).Update("state", 5).Where("state = 1 or state = 2 or state = 3 or state = 4").Error; err != nil { - // zap.L().Error("get user info err", zap.Error(err)) - // err = errors.New(m.ERROR_SELECT) - // return nil, err - // } - // var si model.SupplyInfo - // si.UserId = uint(req.Id) - // if err = db.DB.Model(&si).Update("state", 5).Where("state = 1 or state = 2 or state = 3 or state = 4").Error; err != nil { - // zap.L().Error("get user info err", zap.Error(err)) - // err = errors.New(m.ERROR_SELECT) - // return nil, err - // } - // var ai model.ArtistInfo - // ai.UserId = uint(req.Id) - // if err = db.DB.Model(&ai).Update("state", 5).Where("state = 1 or state = 2 or state = 3 or state = 4").Error; err != nil { - // zap.L().Error("get user info err", zap.Error(err)) - // err = errors.New(m.ERROR_SELECT) - // return nil, err - // } - //} + + if !req.IsLock { + // 解锁时与另外4个模块联动 + if err = db.DB.Model(model.ArtworkLockRecord{}).Where("artist_uid = ? AND status =2 ", req.ArtistUid).Update("status", 3).Error; err != nil { + return nil, err + } + if err = db.DB.Model(model.ArtshowArtistSupplement{}).Where("artist_uid = ? AND status =2 ", req.ArtistUid).Update("status", 3).Error; err != nil { + return nil, err + } + if err = db.DB.Model(model.ArtshowArtistIndex{}).Where("artist_uid = ? AND status =2 ", req.ArtistUid).Update("status", 3).Error; err != nil { + return nil, err + } + if err = db.DB.Model(model.ArtshowVideoRecord{}).Where("artist_uid = ? AND status =2 ", req.ArtistUid).Update("status", 3).Error; err != nil { + return nil, err + } + } + tx.Commit() return rep, nil } diff --git a/cmd/internal/dao/artistinfo_artshow_artistIndex.go b/cmd/internal/dao/artistinfo_artshow_artistIndex.go index 46e2c45..afe4665 100644 --- a/cmd/internal/dao/artistinfo_artshow_artistIndex.go +++ b/cmd/internal/dao/artistinfo_artshow_artistIndex.go @@ -112,7 +112,7 @@ func (a artistinfoArtshowArtistIndex) GetArtistIndexDetail(in *artistinfoArtshow if in.Id != 0 { tx = tx.Where("id = ?", in.Id) } - var data model.ArtshowArtistIndex - err = tx.First(&data).Error + //var data model.ArtshowArtistIndex + err = tx.First(&rep).Error return } diff --git a/cmd/internal/dao/artistinfo_artshow_artistSupplement.go b/cmd/internal/dao/artistinfo_artshow_artistSupplement.go index 6af211e..754fb46 100644 --- a/cmd/internal/dao/artistinfo_artshow_artistSupplement.go +++ b/cmd/internal/dao/artistinfo_artshow_artistSupplement.go @@ -61,7 +61,7 @@ func (a artistSupplement) DeletedData(id ...int64) (err error) { } func (a artistSupplement) GetData(id int64) (data *model.ArtshowArtistSupplement, err error) { - err = db.DB.Where("id = ?", id).First(data).Error + err = db.DB.Where("id = ?", id).First(&data).Error return } @@ -112,7 +112,7 @@ func (a artistSupplement) GetSupplementDetail(in *artistinfoArtshow.GetArtistSup if in.Id != 0 { tx = tx.Where("id = ?", in.Id) } - var data model.ArtshowArtistSupplement - err = tx.First(&data).Error + //var data model.ArtshowArtistSupplement + err = tx.First(&rep).Error return } diff --git a/cmd/internal/dao/artistinfo_artshow_video.go b/cmd/internal/dao/artistinfo_artshow_video.go index 2c571be..d8044fb 100644 --- a/cmd/internal/dao/artistinfo_artshow_video.go +++ b/cmd/internal/dao/artistinfo_artshow_video.go @@ -19,7 +19,7 @@ var ArtistinfoArtshowVideo = new(artistinfoArtshowVideo) type artistinfoArtshowVideo struct{} -func (a artistinfoArtshowVideo) BatchCreateData(datas []model.ArtshowRecord) error { +func (a artistinfoArtshowVideo) BatchCreateData(datas []model.ArtshowVideoRecord) error { //return db.DB.Create(&datas).Error tx := db.DB.Begin() for _, v := range datas { @@ -31,14 +31,14 @@ func (a artistinfoArtshowVideo) BatchCreateData(datas []model.ArtshowRecord) err tx.Commit() return nil } -func (a artistinfoArtshowVideo) CreateData(data *model.ArtshowRecord, tx ...*gorm.DB) error { +func (a artistinfoArtshowVideo) CreateData(data *model.ArtshowVideoRecord, tx ...*gorm.DB) error { var txdb *gorm.DB if tx != nil { txdb = tx[0] } else { txdb = db.DB } - var exist = model.ArtshowRecord{} + var exist = model.ArtshowVideoRecord{} db.DB.Where("artist_uid = ? AND status = 2", data.ArtistUid).Find(&exist) if exist.ID != 0 { return errors.New("数据已存在") @@ -46,28 +46,28 @@ func (a artistinfoArtshowVideo) CreateData(data *model.ArtshowRecord, tx ...*gor return txdb.Create(&data).Error } -func (a artistinfoArtshowVideo) UpdateData(data *model.ArtshowRecord) error { +func (a artistinfoArtshowVideo) UpdateData(data *model.ArtshowVideoRecord) error { return db.DB.Updates(&data).Error } func (a artistinfoArtshowVideo) DeletedData(id ...int64) (err error) { if len(id) == 1 { - err = db.DB.Where("id = ?", id[0]).Delete(&model.ArtshowRecord{}).Error + err = db.DB.Where("id = ?", id[0]).Delete(&model.ArtshowVideoRecord{}).Error } else if len(id) > 0 { - err = db.DB.Where("id = ?", id).Delete(&model.ArtshowRecord{}).Error + err = db.DB.Where("id = ?", id).Delete(&model.ArtshowVideoRecord{}).Error } return err } -func (a artistinfoArtshowVideo) GetData(id int64) (data *model.ArtshowRecord, err error) { +func (a artistinfoArtshowVideo) GetData(id int64) (data *model.ArtshowVideoRecord, err error) { err = db.DB.Where("id = ?", id).First(data).Error return } -func (a artistinfoArtshowVideo) GetDataList(req *artistinfoArtshow.GetArtshowVideoListRequst) (datas []model.ArtshowRecord, total int64, err error) { - datas = []model.ArtshowRecord{} - var tx = db.DB.Model(model.ArtshowRecord{}) +func (a artistinfoArtshowVideo) GetDataList(req *artistinfoArtshow.GetArtshowVideoListRequst) (datas []model.ArtshowVideoRecord, total int64, err error) { + datas = []model.ArtshowVideoRecord{} + var tx = db.DB.Model(model.ArtshowVideoRecord{}) if req.ArtistUid != "" { tx = tx.Where("artist_uid = ?", req.ArtistUid) } @@ -100,33 +100,35 @@ func (a artistinfoArtshowVideo) GetDataList(req *artistinfoArtshow.GetArtshowVid } func (a artistinfoArtshowVideo) Audit(auditStatus model.AuditStatus, mark1, mark2 string, ids ...int64) (err error) { tx := db.DB.Begin() - err = tx.Model(model.ArtshowRecord{}).Where("id in ?", ids).Update("audit_status", auditStatus).Error + err = tx.Model(model.ArtshowVideoRecord{}).Where("id in ?", ids).Update("audit_status", auditStatus).Error if err != nil { return err } - err = tx.Model(model.ArtshowRecord{}).Where("id in ?", ids).Update("audit_mark1", mark1).Error + err = tx.Model(model.ArtshowVideoRecord{}).Where("id in ?", ids).Update("audit_mark1", mark1).Error if err != nil { return err } - err = tx.Model(model.ArtshowRecord{}).Where("id in ?", ids).Update("audit_mark2", mark2).Error + err = tx.Model(model.ArtshowVideoRecord{}).Where("id in ?", ids).Update("audit_mark2", mark2).Error if err != nil { return err } tx.Commit() return } -func (a artistinfoArtshowVideo) GetArtshowVideoDetail(in *artistinfoArtshow.GetArtshowVideoDetailRequest) (rep model.ArtshowRecord, err error) { - var tx = db.DB.Model(model.ArtshowRecord{}) - if in.ArtistUid != "" { - tx = tx.Where("artist_uid =?", in.ArtistUid) +func (a artistinfoArtshowVideo) GetArtshowVideoDetail(in *artistinfoArtshow.GetArtshowVideoDetailRequest) (rep model.ArtshowVideoRecord, err error) { + var tx = db.DB.Model(model.ArtshowVideoRecord{}) + //if in.ArtistUid != "" { + // tx = tx.Where("artist_uid =?", in.ArtistUid) + //} + //if in.LockTime != "" { + // tx = tx.Where("lock_time = ?", in.LockTime) + //} + //if in.Status != 0 { + // tx = tx.Where("status = ?", in.Status) + //} + if in.Id != 0 { + tx = tx.Where("id = ?", in.Id) } - if in.LockTime != "" { - tx = tx.Where("lock_time", in.LockTime) - } - if in.Status != 0 { - tx = tx.Where("status", in.Status) - } - var data model.ArtshowRecord - err = tx.First(&data).Error + err = tx.First(&rep).Error return } diff --git a/cmd/internal/logic/artistinfo_artshowArtistIndex.go b/cmd/internal/logic/artistinfo_artshowArtistIndex.go index e3ed5ec..04efa0a 100644 --- a/cmd/internal/logic/artistinfo_artshowArtistIndex.go +++ b/cmd/internal/logic/artistinfo_artshowArtistIndex.go @@ -78,8 +78,9 @@ func (a ArtshowArtistIndexLogic) GetArtistIndexDetail(request *artistinfoArtshow CreatedAt: data.CreatedAt.Unix(), UpdatedAt: data.UpdatedAt.Unix(), DeletedAt: int64(data.DeletedAt), + Editable: data.Editable(), } - return nil, nil + return } func (a ArtshowArtistIndexLogic) GetArtistIndexList(request *artistinfoArtshow.GetArtistIndexListRequest) (res *artistinfoArtshow.GetArtistIndexListResponse, err error) { diff --git a/cmd/internal/logic/artistinfo_artshowArtistSupplement.go b/cmd/internal/logic/artistinfo_artshowArtistSupplement.go index 8b65f68..d0aca15 100644 --- a/cmd/internal/logic/artistinfo_artshowArtistSupplement.go +++ b/cmd/internal/logic/artistinfo_artshowArtistSupplement.go @@ -78,8 +78,9 @@ func (a ArtshowArtistSupplementLogic) GetSupplementDetail(request *artistinfoArt CreatedAt: data.CreatedAt.Unix(), UpdatedAt: data.UpdatedAt.Unix(), DeletedAt: int64(data.DeletedAt), + Editable: data.Editable(), } - return nil, nil + return } func (a ArtshowArtistSupplementLogic) GetSupplementList(request *artistinfoArtshow.GetArtistSupplementListRequest) (res *artistinfoArtshow.GetArtistSupplementListResponse, err error) { diff --git a/cmd/internal/logic/artistinfo_artshowVideo.go b/cmd/internal/logic/artistinfo_artshowVideo.go index 2ca48d2..110a001 100644 --- a/cmd/internal/logic/artistinfo_artshowVideo.go +++ b/cmd/internal/logic/artistinfo_artshowVideo.go @@ -18,9 +18,9 @@ import ( type ArtshowVideoLogic struct{} func (a ArtshowVideoLogic) BatchCreateArtshowVideo(request *artistinfoArtshow.BatchCreateArtshowVideoRequest) error { - var datas = []model.ArtshowRecord{} + var datas = []model.ArtshowVideoRecord{} for _, v := range request.Data { - datas = append(datas, model.ArtshowRecord{ + datas = append(datas, model.ArtshowVideoRecord{ ArtistUid: v.ArtistUid, LockTime: v.LockTime, ArtistName: v.ArtistName, @@ -34,7 +34,7 @@ func (a ArtshowVideoLogic) BatchCreateArtshowVideo(request *artistinfoArtshow.Ba return dao.ArtistinfoArtshowVideo.BatchCreateData(datas) } func (a ArtshowVideoLogic) CreateArtshowVideo(request *artistinfoArtshow.ArtshowVideoInfo) error { - return dao.ArtistinfoArtshowVideo.CreateData(&model.ArtshowRecord{ + return dao.ArtistinfoArtshowVideo.CreateData(&model.ArtshowVideoRecord{ ArtistUid: request.ArtistUid, LockTime: request.LockTime, ArtistName: request.ArtistName, @@ -66,8 +66,9 @@ func (a ArtshowVideoLogic) GetArtshowVideoDetail(request *artistinfoArtshow.GetA DeletedAt: int64(data.DeletedAt), ArtistName: data.ArtistName, Status: data.Status, + Editable: data.Editable(), } - return nil, nil + return } func (a ArtshowVideoLogic) GetArtshowVideoList(request *artistinfoArtshow.GetArtshowVideoListRequst) (res *artistinfoArtshow.GetArtshowVideoListResponse, err error) { @@ -106,7 +107,7 @@ func (a ArtshowVideoLogic) AuditArtshowVideo(request *artistinfoArtshow.AuditArt } func (a ArtshowVideoLogic) UpdateArtshowVideo(request *artistinfoArtshow.UpdateArtshowVideoRequest) (*emptypb.Empty, error) { - err := dao.ArtistinfoArtshowVideo.UpdateData(&model.ArtshowRecord{ + err := dao.ArtistinfoArtshowVideo.UpdateData(&model.ArtshowVideoRecord{ Model: model.Model{ID: request.Id}, ArtistUid: request.ArtistUid, LockTime: request.LockTime, diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index 9b128be..f4bfb5d 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -52,6 +52,8 @@ func (a ArtistInfoArtworkLogic) GetArtworkLockDetail(request *artistInfoArtwork. SupplementAuditMark: data.SupplementAuditMark, SupplementAuditMark2: data.SupplementAuditMark2, AuditFlowIndex: int32(data.AuditFlowIndex), + BaseEditable: data.BaseEditable(), + SupplementEditable: data.SupplementEditable(), } return } diff --git a/cmd/model/artshow_artistIndex.go b/cmd/model/artshow_artistIndex.go index abf787c..715fc01 100644 --- a/cmd/model/artshow_artistIndex.go +++ b/cmd/model/artshow_artistIndex.go @@ -25,3 +25,12 @@ type ArtshowArtistIndex struct { func (a ArtshowArtistIndex) TableName() string { return "artshow_artist_index" } +func (a *ArtshowArtistIndex) Editable() bool { + if a.Status == 1 { + return true + } + if a.Status == 2 && (a.AuditStatus == AuditType_Failed || a.AuditStatus == AuditType_Pending || a.AuditStatus == AuditType_Supplemented) { + return true + } + return false +} diff --git a/cmd/model/artshow_artist_supplement.go b/cmd/model/artshow_artist_supplement.go index 9c2f01d..0de74df 100644 --- a/cmd/model/artshow_artist_supplement.go +++ b/cmd/model/artshow_artist_supplement.go @@ -20,7 +20,7 @@ type ArtshowArtistSupplement struct { ArtistName string `json:"artistName" gorm:"column:artist_name;comment:"` ArtistProfile string `json:"artistProfile" gorm:"column:artist_profile;comment:个人简介"` - CountryArtLevel int64 `json:"countryArtLevel" gorm:"column:country_art_level;comment:国家美术师级别: 1=无 2=1级 3=2级"` + CountryArtLevel int64 `json:"countryArtLevel" gorm:"column:country_art_level;default:1;comment:国家美术师级别: 1=无 2=1级 3=2级"` ArtistCertPic string `json:"artistCertPic" gorm:"column:artist_cert_pic;comment:国家美术师证书"` BankNum string `json:"bank_num" gorm:"column:bank_num;comment:开户行"` BankName string `json:"bank_name" gorm:"column:bank_name;comment:银行卡账号"` @@ -29,3 +29,12 @@ type ArtshowArtistSupplement struct { func (a ArtshowArtistSupplement) TableName() string { return "artshow_artist_supplement" } +func (a *ArtshowArtistSupplement) Editable() bool { + if a.Status == 1 { + return true + } + if a.Status == 2 && (a.AuditStatus == AuditType_Failed || a.AuditStatus == AuditType_Pending || a.AuditStatus == AuditType_Supplemented) { + return true + } + return false +} diff --git a/cmd/model/artshow_video.go b/cmd/model/artshow_video.go index ae8d99c..9bf0cd6 100644 --- a/cmd/model/artshow_video.go +++ b/cmd/model/artshow_video.go @@ -6,7 +6,7 @@ // ------------------------------------------- package model -type ArtshowRecord struct { +type ArtshowVideoRecord struct { Model //通过这两个字段弱关联 artwork_lock_record表中对应的画作 ArtistUid string `json:"artistUid" gorm:"column:artist_uid;comment:"` @@ -23,6 +23,15 @@ type ArtshowRecord struct { AuditMark2 string `json:"auditMark2" gorm:"column:audit_mark2;comment:审核备注2"` } -func (a ArtshowRecord) TableName() string { +func (a ArtshowVideoRecord) TableName() string { return "artshow_video_record" } +func (a *ArtshowVideoRecord) Editable() bool { + if a.Status == 1 { + return true + } + if a.Status == 2 && (a.AuditStatus == AuditType_Failed || a.AuditStatus == AuditType_Pending || a.AuditStatus == AuditType_Supplemented) { + return true + } + return false +} diff --git a/cmd/model/artwork_main_lockRecord.go b/cmd/model/artwork_main_lockRecord.go index 9c02a13..7a3bdd1 100644 --- a/cmd/model/artwork_main_lockRecord.go +++ b/cmd/model/artwork_main_lockRecord.go @@ -77,7 +77,7 @@ func (a *ArtworkLockRecord) BaseEditable() bool { if a.Status == 1 { return true } - if a.Status == 2 && (a.BaseAuditStatus == AuditType_Failed || a.BaseAuditStatus == AuditType_Pending) { + if a.Status == 2 && (a.BaseAuditStatus == AuditType_Failed || a.BaseAuditStatus == AuditType_Pending || a.BaseAuditStatus == AuditType_Supplemented) { return true } return false diff --git a/cmd/model/artwork_ex_video.go b/cmd/model/old/artwork_ex_video.go similarity index 81% rename from cmd/model/artwork_ex_video.go rename to cmd/model/old/artwork_ex_video.go index 7c42252..35ec179 100644 --- a/cmd/model/artwork_ex_video.go +++ b/cmd/model/old/artwork_ex_video.go @@ -1,8 +1,10 @@ -package model +package old + +import "github.com/fonchain/fonchain-artistinfo/cmd/model" // ExhVideo 视频资料 type ExhVideo struct { - Model + model.Model UserId uint `gorm:"not null default:0"` Url string `gorm:"type:varchar(256) default ''"` State string `gorm:"type:varchar(25) default ''"` diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.go index dc453ca..77842d3 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.go @@ -436,6 +436,9 @@ type ArtistLockInfo struct { SupplementAuditMark2 string `protobuf:"bytes,17,opt,name=supplementAuditMark2,proto3" json:"supplementAuditMark2,omitempty"` // 当前审批流位置 AuditFlowIndex int32 `protobuf:"varint,18,opt,name=auditFlowIndex,proto3" json:"auditFlowIndex,omitempty"` + // 是否用户可编辑 + BaseEditable bool `protobuf:"varint,19,opt,name=baseEditable,proto3" json:"baseEditable,omitempty"` + SupplementEditable bool `protobuf:"varint,20,opt,name=supplementEditable,proto3" json:"supplementEditable,omitempty"` } func (x *ArtistLockInfo) Reset() { @@ -568,6 +571,20 @@ func (x *ArtistLockInfo) GetAuditFlowIndex() int32 { return 0 } +func (x *ArtistLockInfo) GetBaseEditable() bool { + if x != nil { + return x.BaseEditable + } + return false +} + +func (x *ArtistLockInfo) GetSupplementEditable() bool { + if x != nil { + return x.SupplementEditable + } + return false +} + type ArtworkLockList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1298,7 +1315,7 @@ var file_pb_artistinfoArtwork_proto_rawDesc = []byte{ 0x6f, 0x64, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x98, 0x04, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, + 0x22, 0xec, 0x04, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, @@ -1331,184 +1348,189 @@ var file_pb_artistinfoArtwork_proto_rawDesc = []byte{ 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x75, 0x64, - 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x41, 0x0a, 0x0f, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x32, - 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, - 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, - 0x64, 0x73, 0x22, 0x3c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, - 0x22, 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, - 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x2a, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, - 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x22, 0xf2, 0x05, 0x0a, 0x12, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, - 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, - 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, - 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x61, - 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, - 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x61, 0x73, - 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x61, - 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, - 0x6b, 0x32, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, - 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x32, 0x0a, 0x14, 0x73, 0x75, + 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x62, + 0x61, 0x73, 0x65, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, + 0x2e, 0x0a, 0x12, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x64, 0x69, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x75, 0x70, + 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, + 0x41, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x32, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x55, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, + 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x22, + 0xf2, 0x05, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, + 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, + 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x0a, + 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, + 0x0a, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, + 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x26, + 0x0a, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x13, + 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, + 0x61, 0x72, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x32, + 0x0a, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, - 0x6b, 0x32, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x26, - 0x0a, 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x5c, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, - 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6d, - 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xe1, 0x01, - 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, - 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, - 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, - 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, - 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, - 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, - 0x73, 0x22, 0x3a, 0x0a, 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2a, 0xa7, 0x01, - 0x0a, 0x10, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x6f, 0x77, - 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x01, 0x12, - 0x17, 0x0a, 0x13, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x6e, 0x64, - 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x6f, 0x77, 0x41, - 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x66, 0x42, 0x61, 0x73, 0x65, 0x10, 0x03, - 0x12, 0x1f, 0x0a, 0x1b, 0x4e, 0x6f, 0x77, 0x41, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, - 0x4f, 0x66, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x10, - 0x04, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x05, 0x32, 0x9a, 0x08, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x66, 0x0a, - 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, - 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, - 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, - 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x28, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x6b, 0x32, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x22, 0x5c, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, - 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, - 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, - 0x12, 0x5d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, - 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, - 0x6c, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x69, 0x0a, - 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x42, 0x61, 0x73, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x22, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, + 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, + 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, + 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, + 0x74, 0x22, 0xe1, 0x01, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, + 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, + 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3a, 0x0a, 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2a, 0xa7, 0x01, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, + 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x00, 0x12, 0x14, 0x0a, + 0x10, 0x4e, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, + 0x65, 0x41, 0x6e, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, + 0x4e, 0x6f, 0x77, 0x41, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x66, 0x42, 0x61, + 0x73, 0x65, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x4e, 0x6f, 0x77, 0x41, 0x75, 0x64, 0x69, 0x74, + 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x66, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x69, 0x6e, 0x67, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, + 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x05, 0x32, 0x9a, 0x08, 0x0a, 0x11, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x12, 0x66, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, + 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x1d, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, - 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x01, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, + 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, + 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x62, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, + 0x00, 0x12, 0x69, 0x0a, 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x22, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, + 0x1d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go index 4b0ff7f..de59c2a 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go @@ -720,6 +720,10 @@ func (m *ArtistLockInfo) validate(all bool) error { // no validation rules for AuditFlowIndex + // no validation rules for BaseEditable + + // no validation rules for SupplementEditable + if len(errors) > 0 { return ArtistLockInfoMultiError(errors) } diff --git a/pb/artistinfoArtshow.proto b/pb/artistinfoArtshow.proto index 35eb796..e604937 100644 --- a/pb/artistinfoArtshow.proto +++ b/pb/artistinfoArtshow.proto @@ -72,6 +72,7 @@ message ArtshowVideoInfo { int64 deletedAt=10; string artistName=11; int64 status=12;//锁定状态 + bool editable=13; } message GetArtshowVideoListResponse{ repeated ArtshowVideoInfo data =1; @@ -133,6 +134,7 @@ message ArtistIndexInfo{ int64 createdAt=13; int64 updatedAt=14; int64 deletedAt=15; + bool editable=16; } message GetArtistIndexListResponse{ repeated ArtistIndexInfo Data=1; @@ -193,6 +195,7 @@ message ArtistSupplementInfo{ int64 createdAt=14; int64 updatedAt=15; int64 deletedAt=16; + bool editable=17;//是否用户可编辑 } message GetArtistSupplementListResponse{ repeated ArtistSupplementInfo Data=1; diff --git a/pb/artistinfoArtshow/artistinfoArtshow.pb.go b/pb/artistinfoArtshow/artistinfoArtshow.pb.go index ab8df67..8584cf2 100644 --- a/pb/artistinfoArtshow/artistinfoArtshow.pb.go +++ b/pb/artistinfoArtshow/artistinfoArtshow.pb.go @@ -264,6 +264,7 @@ type ArtshowVideoInfo struct { DeletedAt int64 `protobuf:"varint,10,opt,name=deletedAt,proto3" json:"deletedAt,omitempty"` ArtistName string `protobuf:"bytes,11,opt,name=artistName,proto3" json:"artistName,omitempty"` Status int64 `protobuf:"varint,12,opt,name=status,proto3" json:"status,omitempty"` //锁定状态 + Editable bool `protobuf:"varint,13,opt,name=editable,proto3" json:"editable,omitempty"` } func (x *ArtshowVideoInfo) Reset() { @@ -382,6 +383,13 @@ func (x *ArtshowVideoInfo) GetStatus() int64 { return 0 } +func (x *ArtshowVideoInfo) GetEditable() bool { + if x != nil { + return x.Editable + } + return false +} + type GetArtshowVideoListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -784,6 +792,7 @@ type GetArtshowVideoDetailRequest struct { ArtistUid string `protobuf:"bytes,1,opt,name=artistUid,proto3" json:"artistUid,omitempty"` LockTime string `protobuf:"bytes,2,opt,name=lockTime,proto3" json:"lockTime,omitempty"` Status int32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` + Id int64 `protobuf:"varint,4,opt,name=id,proto3" json:"id,omitempty"` } func (x *GetArtshowVideoDetailRequest) Reset() { @@ -839,6 +848,13 @@ func (x *GetArtshowVideoDetailRequest) GetStatus() int32 { return 0 } +func (x *GetArtshowVideoDetailRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + // -------------------画家指数请求参数 type ArtistIndexInfo struct { state protoimpl.MessageState @@ -860,6 +876,7 @@ type ArtistIndexInfo struct { CreatedAt int64 `protobuf:"varint,13,opt,name=createdAt,proto3" json:"createdAt,omitempty"` UpdatedAt int64 `protobuf:"varint,14,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` DeletedAt int64 `protobuf:"varint,15,opt,name=deletedAt,proto3" json:"deletedAt,omitempty"` + Editable bool `protobuf:"varint,16,opt,name=editable,proto3" json:"editable,omitempty"` } func (x *ArtistIndexInfo) Reset() { @@ -999,6 +1016,13 @@ func (x *ArtistIndexInfo) GetDeletedAt() int64 { return 0 } +func (x *ArtistIndexInfo) GetEditable() bool { + if x != nil { + return x.Editable + } + return false +} + type GetArtistIndexListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1462,6 +1486,7 @@ type ArtistSupplementInfo struct { CreatedAt int64 `protobuf:"varint,14,opt,name=createdAt,proto3" json:"createdAt,omitempty"` UpdatedAt int64 `protobuf:"varint,15,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` DeletedAt int64 `protobuf:"varint,16,opt,name=deletedAt,proto3" json:"deletedAt,omitempty"` + Editable bool `protobuf:"varint,17,opt,name=editable,proto3" json:"editable,omitempty"` //是否用户可编辑 } func (x *ArtistSupplementInfo) Reset() { @@ -1608,6 +1633,13 @@ func (x *ArtistSupplementInfo) GetDeletedAt() int64 { return 0 } +func (x *ArtistSupplementInfo) GetEditable() bool { + if x != nil { + return x.Editable + } + return false +} + type GetArtistSupplementListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2100,7 +2132,7 @@ var file_pb_artistinfoArtshow_proto_rawDesc = []byte{ 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xec, 0x02, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x73, 0x68, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x88, 0x03, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, @@ -2123,188 +2155,108 @@ var file_pb_artistinfoArtshow_proto_rawDesc = []byte{ 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x18, 0x41, 0x75, 0x64, - 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, - 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0f, - 0x61, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x73, 0x12, - 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, - 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, - 0x32, 0x22, 0x9b, 0x02, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, - 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, - 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, - 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, - 0x3e, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, - 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, - 0x03, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, 0x73, 0x22, - 0x52, 0x0a, 0x1e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, - 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x13, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x45, 0x78, 0x69, - 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, - 0x54, 0x69, 0x6d, 0x65, 0x22, 0x70, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, - 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, - 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xa7, 0x03, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, - 0x6b, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, - 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, - 0x6b, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, - 0x61, 0x72, 0x6b, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x7e, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, - 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x2f, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x22, 0x2d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, - 0xdf, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, - 0x72, 0x74, 0x69, 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, 0x1a, 0x0a, 0x08, 0x6c, - 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, - 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, - 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x22, 0x3f, 0x0a, 0x1d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, - 0x64, 0x73, 0x22, 0xa3, 0x01, 0x0a, 0x17, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, - 0x0a, 0x0e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, - 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, - 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, - 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, - 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, - 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x22, 0x78, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x3d, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x10, 0x0a, 0x03, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, - 0x73, 0x22, 0x80, 0x04, 0x0a, 0x14, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, - 0x0a, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, - 0x0a, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1e, - 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, - 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x41, - 0x72, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x72, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x24, - 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x65, 0x72, 0x74, 0x50, 0x69, 0x63, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x65, 0x72, - 0x74, 0x50, 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x75, 0x6d, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x1a, - 0x0a, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2f, - 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, - 0x32, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x02, 0x69, 0x64, 0x22, 0xe4, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x61, 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x18, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, + 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0f, 0x61, 0x72, 0x74, 0x73, + 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, + 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x22, 0x9b, 0x02, + 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, + 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, + 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, + 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, + 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, + 0x72, 0x6b, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x64, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, 0x73, 0x22, 0x52, 0x0a, 0x1e, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, + 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x4f, 0x0a, 0x13, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, + 0x22, 0x80, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x02, 0x69, 0x64, 0x22, 0xc3, 0x03, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x7e, 0x0a, 0x1a, 0x47, 0x65, 0x74, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0x2d, 0x0a, 0x1b, 0x47, 0x65, 0x74, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0xdf, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, @@ -2317,168 +2269,254 @@ var file_pb_artistinfoArtshow_proto_rawDesc = []byte{ 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x44, 0x0a, 0x22, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, - 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x73, - 0x22, 0xb2, 0x01, 0x0a, 0x1c, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x30, 0x0a, 0x13, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x13, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, - 0x72, 0x6b, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, - 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x22, 0xdb, 0x01, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x3f, 0x0a, 0x1d, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x73, 0x22, 0xa3, 0x01, 0x0a, 0x17, + 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, + 0x0e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x73, 0x12, + 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x32, 0x22, 0x78, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x3d, 0x0a, 0x19, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x64, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, 0x73, 0x22, 0x9c, 0x04, 0x0a, 0x14, 0x41, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, + 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4c, 0x6f, 0x63, + 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x72, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x41, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x72, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x43, 0x65, 0x72, 0x74, 0x50, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x74, 0x43, 0x65, 0x72, 0x74, 0x50, 0x69, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x65, 0x72, 0x74, 0x50, 0x69, 0x63, 0x12, 0x18, 0x0a, - 0x07, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x07, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x42, 0x0a, 0x1e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, + 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x1f, 0x47, 0x65, + 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, + 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x22, 0x32, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0xe4, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, + 0x69, 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, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, + 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, + 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, + 0x44, 0x0a, 0x22, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, 0x73, 0x32, 0xc5, 0x0f, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x61, 0x0a, - 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, - 0x64, 0x65, 0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, - 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, - 0x12, 0x67, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, - 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x73, 0x74, 0x1a, 0x27, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x12, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, - 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, - 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 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, 0x5f, 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x12, 0x2a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, + 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x55, 0x69, 0x64, 0x73, 0x22, 0xb2, 0x01, 0x0a, 0x1c, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x03, 0x52, 0x13, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, + 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x22, 0xdb, 0x01, 0x0a, 0x1d, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0d, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x72, 0x74, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x72, 0x79, 0x41, 0x72, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x65, 0x72, 0x74, 0x50, 0x69, 0x63, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x65, 0x72, 0x74, 0x50, + 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, + 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x42, 0x0a, 0x1e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x64, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, 0x73, 0x32, 0xc5, 0x0f, 0x0a, + 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x73, 0x68, + 0x6f, 0x77, 0x12, 0x61, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x28, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, + 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, + 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, + 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, + 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, + 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x6e, + 0x66, 0x6f, 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, 0x5f, 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, - 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, - 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x24, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, + 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x2a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x55, 0x0a, - 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, - 0x64, 0x65, 0x6f, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, - 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, - 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x26, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5e, 0x0a, - 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x65, 0x0a, - 0x12, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 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, 0x5d, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x29, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, - 0x51, 0x0a, 0x10, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, + 0x11, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x00, 0x12, 0x53, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, + 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x73, + 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x13, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, + 0x22, 0x00, 0x12, 0x65, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x11, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 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, 0x5d, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x10, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x25, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x6d, - 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2c, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, - 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x74, 0x0a, - 0x17, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, - 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 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, 0x67, 0x0a, 0x1b, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, - 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x15, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, - 0x5d, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, - 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5f, - 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, - 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2a, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, - 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x12, 0x2c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x22, 0x00, 0x12, 0x74, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 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, 0x67, + 0x0a, 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x15, 0x41, 0x75, 0x64, 0x69, 0x74, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x75, + 0x64, 0x69, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x29, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2a, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x50, 0x00, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go b/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go index a61e7b9..65db1ce 100644 --- a/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go +++ b/pb/artistinfoArtshow/artistinfoArtshow.pb.validate.go @@ -411,6 +411,8 @@ func (m *ArtshowVideoInfo) validate(all bool) error { // no validation rules for Status + // no validation rules for Editable + if len(errors) > 0 { return ArtshowVideoInfoMultiError(errors) } @@ -1258,6 +1260,8 @@ func (m *GetArtshowVideoDetailRequest) validate(all bool) error { // no validation rules for Status + // no validation rules for Id + if len(errors) > 0 { return GetArtshowVideoDetailRequestMultiError(errors) } @@ -1391,6 +1395,8 @@ func (m *ArtistIndexInfo) validate(all bool) error { // no validation rules for DeletedAt + // no validation rules for Editable + if len(errors) > 0 { return ArtistIndexInfoMultiError(errors) } @@ -2334,6 +2340,8 @@ func (m *ArtistSupplementInfo) validate(all bool) error { // no validation rules for DeletedAt + // no validation rules for Editable + if len(errors) > 0 { return ArtistSupplementInfoMultiError(errors) } diff --git a/pb/artistinfoArtwork.proto b/pb/artistinfoArtwork.proto index c97caa1..392833c 100644 --- a/pb/artistinfoArtwork.proto +++ b/pb/artistinfoArtwork.proto @@ -18,7 +18,7 @@ service ArtistInfoArtwork { rpc UpdateArtworkAuditStatus(UpdateArtworkAuditStatusRequest)returns(ArtworkCommonNoParams){}//更新画作审批状态 rpc CheckArtworkBaseInfoEditable(ArtworkUidRequest)returns(CheckArtworkEditableResponse){}//查询画作基本信息是否可编辑 rpc CheckArtworkSupplementInfoEditable(ArtworkUidRequest)returns(CheckArtworkEditableResponse){}//查询画作补充信息是否可编辑 -// rpc GenerateArtworkSupplementInfo(ArtworkUidsRequest)returns(google.protobuf.Empty){}//查询画作补充信息是否可编辑 + rpc GenerateArtworkSupplementInfo(ArtworkUidsRequest)returns(google.protobuf.Empty){}//查询画作补充信息是否可编辑 } message ArtworkCommonNoParams{} @@ -74,6 +74,9 @@ message ArtistLockInfo{ string supplementAuditMark2=17; // 当前审批流位置 int32 auditFlowIndex =18; + //是否用户可编辑 + bool baseEditable =19; + bool supplementEditable=20; } message ArtworkLockList{ diff --git a/pkg/db/init.go b/pkg/db/init.go index c21e09c..398fa81 100644 --- a/pkg/db/init.go +++ b/pkg/db/init.go @@ -110,7 +110,7 @@ func migration() { &old.ArtworkBatch{}, &model.TempArtistInfo{}, &model.ArtworkLockRecord{}, - &model.ArtshowRecord{}, //画展视频记录 + &model.ArtshowVideoRecord{}, //画展视频记录 &model.ArtshowArtistIndex{}, //画展-画家指数 &model.ArtshowArtistSupplement{}, //画展-画家补充信息 )