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;