From 1b274a0fcebaa5da37db787a071da6f7a3fe3042 Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Fri, 24 Mar 2023 18:18:10 +0800 Subject: [PATCH 01/52] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dmysql=E5=A4=A7=E5=B0=8F?= =?UTF-8?q?=E5=86=99=E4=B8=8D=E6=95=8F=E6=84=9F=E5=AF=BC=E8=87=B4=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=BB=9F=E8=AE=A1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistInfo_user.go | 2 +- cmd/model/view_user.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/internal/dao/artistInfo_user.go b/cmd/internal/dao/artistInfo_user.go index b9c23bd..2e7a79e 100644 --- a/cmd/internal/dao/artistInfo_user.go +++ b/cmd/internal/dao/artistInfo_user.go @@ -1136,7 +1136,7 @@ func GetInviteStaticList(in *artistInfoUser.GetInviteStaticListRequest) (res *ar orm := db.DB. Select("ui.invite_code,max(rn.name) real_name, max(su.tel_num) tel_num,max(su.mgmt_artist_uid) artist_uid,count(ui.invited_code) invited_count "). Table(model.UserInvited{}.TableName() + " AS ui"). - Joins(fmt.Sprintf("LEFT JOIN %v su ON su.invited_code = ui.invite_code", model.User{}.TableName())). + Joins(fmt.Sprintf("LEFT JOIN %v su ON BINARY su.invited_code =BINARY ui.invite_code", model.User{}.TableName())). Joins((fmt.Sprintf("LEFT JOIN %v rn ON rn.id = su.real_name_id", model.RealName{}.TableName()))). Where("su.deleted_at=0"). Group("ui.invite_code") //HAVING count(ui.invited_code) >0 diff --git a/cmd/model/view_user.go b/cmd/model/view_user.go index 647f75e..410f4b2 100644 --- a/cmd/model/view_user.go +++ b/cmd/model/view_user.go @@ -87,7 +87,7 @@ FROM sys_user su LEFT JOIN real_name rn ON rn.id = su.real_name_id -- 邀请者信息 LEFT JOIN invite ON invite.invited_id = su.id -LEFT JOIN sys_user inviter ON inviter.invited_code = invite.invite_code +LEFT JOIN sys_user inviter ON BINARY inviter.invited_code = BINARY invite.invite_code LEFT JOIN real_name inviter_rn ON inviter_rn.id = inviter.real_name_id LEFT JOIN artshow_artist_supplement aas ON aas.artist_uid = su.mgmt_artist_uid AND aas.lock_time = ( select MAX(lock_time) from artshow_artist_supplement WHERE artist_uid = su.mgmt_artist_uid From 2d9f9dbb9583676090a6b70784408af5d3b58e5f Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Fri, 24 Mar 2023 18:19:17 +0800 Subject: [PATCH 02/52] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A4=A7=E5=B0=8F?= =?UTF-8?q?=E5=86=99=E4=B8=8D=E6=95=8F=E6=84=9F=E5=AF=BC=E8=87=B4=E7=9A=84?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistInfo_user.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/internal/dao/artistInfo_user.go b/cmd/internal/dao/artistInfo_user.go index c0163b7..6af2715 100644 --- a/cmd/internal/dao/artistInfo_user.go +++ b/cmd/internal/dao/artistInfo_user.go @@ -1135,7 +1135,7 @@ func GetInviteStaticList(in *artistInfoUser.GetInviteStaticListRequest) (res *ar orm := db.DB. Select("ui.invite_code,max(rn.name) real_name, max(su.tel_num) tel_num,max(su.mgmt_artist_uid) artist_uid,count(ui.invited_code) invited_count "). Table(model.UserInvited{}.TableName() + " AS ui"). - Joins(fmt.Sprintf("LEFT JOIN %v su ON su.invited_code = ui.invite_code", model.User{}.TableName())). + Joins(fmt.Sprintf("LEFT JOIN %v su ON BINARY su.invited_code =BINARY ui.invite_code", model.User{}.TableName())). Joins((fmt.Sprintf("LEFT JOIN %v rn ON rn.id = su.real_name_id", model.RealName{}.TableName()))). Where("su.deleted_at=0"). Group("ui.invite_code") //HAVING count(ui.invited_code) >0 From e29f86fa8c7833eec8248daa682eb44e16e97a12 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Mon, 27 Mar 2023 09:52:16 +0800 Subject: [PATCH 03/52] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E5=80=BC=E8=BF=94=E5=9B=9E=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index cf4d806..bf9e174 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -221,7 +221,7 @@ func (a ArtistInfoArtworkLogic) ArtworkStatic(request *artistInfoArtwork.ArtistA if err != nil { return nil, err } - if userList == nil || len(userList) == 0 { + if len(userList) == 0 { return nil, nil } var artistUids []string @@ -251,9 +251,9 @@ func (a ArtistInfoArtworkLogic) ArtworkStatic(request *artistInfoArtwork.ArtistA //查询这些画家审核通过的画作数据统计 res = &artistInfoArtwork.ArtistArtworkStaticResponse{ - Page: int64(artistList.Count), - PageSize: int64(artistList.Page), - Total: request.PageSize, + Page: int64(artistList.Page), + PageSize: int64(request.PageSize), + Total: int64(artistList.Count), } viewDatas, err := dao.PassedArtworkStatic(request, artistUids) if err != nil { From 02930a50be03b873f7eab96e1e4a07db269e2c33 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Mon, 27 Mar 2023 10:02:30 +0800 Subject: [PATCH 04/52] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=BB=E5=AE=B6?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=97=B6total=E5=80=BC=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index bf9e174..409ca5f 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -241,13 +241,24 @@ func (a ArtistInfoArtworkLogic) ArtworkStatic(request *artistInfoArtwork.ArtistA Page: 1, PageSize: -1, Gender: gender, - Uids: artistUids, + // Uids: artistUids, //直接搜会导致Count值不对,手动筛选 }) if err != nil { return nil, err } - fmt.Println("\n artistUids:", artistUids, "\n") - fmt.Printf("\n\n artistList.Data: %+v\n\n", artistList.Data) + //手动筛选uid + var datas []*artist.ProfileRequest + for i, v := range artistList.Data { + if len(datas) == len(artistUids) { + break + } + for _, uid := range artistUids { + if uid == v.Uid { + datas = append(datas, artistList.Data[i]) + break + } + } + } //查询这些画家审核通过的画作数据统计 res = &artistInfoArtwork.ArtistArtworkStaticResponse{ From 65847688d68bac9cc9a800e9a68b870296e89a40 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Mon, 27 Mar 2023 10:07:41 +0800 Subject: [PATCH 05/52] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index 409ca5f..1d3a56b 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -211,7 +211,7 @@ func (a ArtistInfoArtworkLogic) GenerateArtworkSupplementInfo(request *artistInf func (a ArtistInfoArtworkLogic) ArtworkStatic(request *artistInfoArtwork.ArtistArtworkStaticRequest) (res *artistInfoArtwork.ArtistArtworkStaticResponse, err error) { //查询画家宝中认证成功的用户 - userList, _, err := dao.GetViewUserList(&artistInfoUser.FindUsersRequest{ + userList, total, err := dao.GetViewUserList(&artistInfoUser.FindUsersRequest{ // ArtistRealName: request.ArtistKeyWords, Keyword: request.ArtistKeyWords, Page: int32(request.Page), @@ -237,7 +237,7 @@ func (a ArtistInfoArtworkLogic) ArtworkStatic(request *artistInfoArtwork.ArtistA } //查询匹配的画家数据列表 artistList, err := service.GrpcArtistImpl.ArtistList(context.Background(), &artist.ArtistListRequest{ - Keyword: request.ArtistKeyWords, + // Keyword: request.ArtistKeyWords, Page: 1, PageSize: -1, Gender: gender, @@ -264,7 +264,7 @@ func (a ArtistInfoArtworkLogic) ArtworkStatic(request *artistInfoArtwork.ArtistA res = &artistInfoArtwork.ArtistArtworkStaticResponse{ Page: int64(artistList.Page), PageSize: int64(request.PageSize), - Total: int64(artistList.Count), + Total: total, } viewDatas, err := dao.PassedArtworkStatic(request, artistUids) if err != nil { From 75f292ee01d6ce8a82493c29cf787f4987103faf Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Mon, 27 Mar 2023 10:08:24 +0800 Subject: [PATCH 06/52] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index 1d3a56b..78bdc4a 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -241,24 +241,11 @@ func (a ArtistInfoArtworkLogic) ArtworkStatic(request *artistInfoArtwork.ArtistA Page: 1, PageSize: -1, Gender: gender, - // Uids: artistUids, //直接搜会导致Count值不对,手动筛选 + Uids: artistUids, //直接搜会导致Count值不对,手动筛选 }) if err != nil { return nil, err } - //手动筛选uid - var datas []*artist.ProfileRequest - for i, v := range artistList.Data { - if len(datas) == len(artistUids) { - break - } - for _, uid := range artistUids { - if uid == v.Uid { - datas = append(datas, artistList.Data[i]) - break - } - } - } //查询这些画家审核通过的画作数据统计 res = &artistInfoArtwork.ArtistArtworkStaticResponse{ From bc0f15f77e878139d55ac3e190d9ea0b26720952 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Tue, 28 Mar 2023 13:38:07 +0800 Subject: [PATCH 07/52] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=BB=E4=BD=9C?= =?UTF-8?q?=E9=A2=84=E8=A7=88=E5=88=97=E8=A1=A8=E7=9A=84=E7=AD=9B=E9=80=89?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistinfo_artwork.go | 13 ++++-- pb/artistInfoArtwork/artistinfoArtwork.pb.go | 40 ++++++++++++++----- .../artistinfoArtwork.pb.validate.go | 4 +- pb/artistinfoArtwork.proto | 4 +- 4 files changed, 47 insertions(+), 14 deletions(-) diff --git a/cmd/internal/dao/artistinfo_artwork.go b/cmd/internal/dao/artistinfo_artwork.go index f858b0b..dcaeee4 100644 --- a/cmd/internal/dao/artistinfo_artwork.go +++ b/cmd/internal/dao/artistinfo_artwork.go @@ -10,6 +10,8 @@ import ( "context" "errors" "fmt" + "time" + "github.com/fonchain/fonchain-artistinfo/cmd/model" "github.com/fonchain/fonchain-artistinfo/pb/artistInfoArtwork" "github.com/fonchain/fonchain-artistinfo/pb/artwork_query" @@ -17,7 +19,6 @@ import ( "github.com/fonchain/fonchain-artistinfo/pkg/service" "github.com/fonchain/fonchain-artistinfo/pkg/util/stime" "gorm.io/gorm" - "time" ) func CreateArtworkLockRecord(in *model.ArtworkLockRecord) error { @@ -142,8 +143,14 @@ func GetArtworkLockRecords(req *artistInfoArtwork.GetArtworkLockRecordsRequest) case artistInfoArtwork.ArtworkQueryMode_AllAuditPassArtwork: //所有审核通过的画作 tx = tx.Where("supplement_audit_status = 4").Order("lock_time desc") } - if req.AuditStatus != 0 { - tx = tx.Where("audit_status = ?", req.AuditStatus) + if req.BaseAuditStatus != 0 { + tx = tx.Where("base_audit_status = ?", req.BaseAuditStatus) + } + if req.SupplementAuditStatus != 0 { + tx = tx.Where("supplement_audit_status = ?", req.SupplementAuditStatus) + } + if len(req.ArtworkUids) > 0 { + tx = tx.Where("artwork_uid in ?", req.ArtworkUids) } err = tx.Find(&datas).Error for _, v := range datas { diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.go index 3ff72b1..4d395bb 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.go @@ -362,9 +362,11 @@ type GetArtworkLockRecordsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ArtistUid string `protobuf:"bytes,1,opt,name=artistUid,proto3" json:"artistUid,omitempty"` //画家uid - QueryType ArtworkQueryMode `protobuf:"varint,2,opt,name=queryType,proto3,enum=artistinfo.ArtworkQueryMode" json:"queryType,omitempty"` //查询模式 - AuditStatus int64 `protobuf:"varint,3,opt,name=AuditStatus,proto3" json:"AuditStatus,omitempty"` //审批状态 可选 + ArtistUid string `protobuf:"bytes,1,opt,name=artistUid,proto3" json:"artistUid,omitempty"` //画家uid + QueryType ArtworkQueryMode `protobuf:"varint,2,opt,name=queryType,proto3,enum=artistinfo.ArtworkQueryMode" json:"queryType,omitempty"` //查询模式 + BaseAuditStatus int64 `protobuf:"varint,3,opt,name=baseAuditStatus,proto3" json:"baseAuditStatus,omitempty"` //基本信息审批状态 可选 + SupplementAuditStatus int64 `protobuf:"varint,4,opt,name=supplementAuditStatus,proto3" json:"supplementAuditStatus,omitempty"` //基本信息审批状态 可选 + ArtworkUids []string `protobuf:"bytes,5,rep,name=artworkUids,proto3" json:"artworkUids,omitempty"` //画作uid列表 } func (x *GetArtworkLockRecordsRequest) Reset() { @@ -413,13 +415,27 @@ func (x *GetArtworkLockRecordsRequest) GetQueryType() ArtworkQueryMode { return ArtworkQueryMode_Non } -func (x *GetArtworkLockRecordsRequest) GetAuditStatus() int64 { +func (x *GetArtworkLockRecordsRequest) GetBaseAuditStatus() int64 { if x != nil { - return x.AuditStatus + return x.BaseAuditStatus } return 0 } +func (x *GetArtworkLockRecordsRequest) GetSupplementAuditStatus() int64 { + if x != nil { + return x.SupplementAuditStatus + } + return 0 +} + +func (x *GetArtworkLockRecordsRequest) GetArtworkUids() []string { + if x != nil { + return x.ArtworkUids + } + return nil +} + type ArtistLockInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1595,7 +1611,7 @@ var file_pb_artistinfoArtwork_proto_rawDesc = []byte{ 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, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, - 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, + 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x86, 0x02, 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, @@ -1603,9 +1619,15 @@ var file_pb_artistinfoArtwork_proto_rawDesc = []byte{ 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, + 0x6f, 0x64, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, + 0x0a, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, + 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0xec, 0x04, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go index e4ac39d..31347e7 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go @@ -587,7 +587,9 @@ func (m *GetArtworkLockRecordsRequest) validate(all bool) error { // no validation rules for QueryType - // no validation rules for AuditStatus + // no validation rules for BaseAuditStatus + + // no validation rules for SupplementAuditStatus if len(errors) > 0 { return GetArtworkLockRecordsRequestMultiError(errors) diff --git a/pb/artistinfoArtwork.proto b/pb/artistinfoArtwork.proto index cc18fa2..34297d6 100644 --- a/pb/artistinfoArtwork.proto +++ b/pb/artistinfoArtwork.proto @@ -54,7 +54,9 @@ enum ArtworkQueryMode { message GetArtworkLockRecordsRequest{ string artistUid =1 [(validate.rules).message.required = true];//画家uid ArtworkQueryMode queryType =2 ; //查询模式 - int64 AuditStatus =3; //审批状态 可选 + int64 baseAuditStatus =3; //基本信息审批状态 可选 + int64 supplementAuditStatus =4; //基本信息审批状态 可选 + repeated string artworkUids=5; //画作uid列表 } message ArtistLockInfo{ From 4dd5ff48da568e53868c9f1385db75be710c100b Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Tue, 28 Mar 2023 13:51:44 +0800 Subject: [PATCH 08/52] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E4=BF=A1=E6=81=AF=E6=9F=A5=E8=AF=A2=E6=9D=A1?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistinfo_artshow_video.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/cmd/internal/dao/artistinfo_artshow_video.go b/cmd/internal/dao/artistinfo_artshow_video.go index d8044fb..2ec3b55 100644 --- a/cmd/internal/dao/artistinfo_artshow_video.go +++ b/cmd/internal/dao/artistinfo_artshow_video.go @@ -8,6 +8,7 @@ package dao import ( "errors" + "github.com/fonchain/fonchain-artistinfo/cmd/model" "github.com/fonchain/fonchain-artistinfo/pb/artistinfoArtshow" db "github.com/fonchain/fonchain-artistinfo/pkg/db" @@ -75,10 +76,12 @@ func (a artistinfoArtshowVideo) GetDataList(req *artistinfoArtshow.GetArtshowVid tx = tx.Where("lock_time = ?", req.LockTime) } if req.ArtistName != "" { - tx = tx.Clauses(clause.Like{ - Column: "artist_name", - Value: "%" + req.ArtistName + "%", - }) + // tx = tx.Clauses(clause.Like{ + // Column: "artist_name", + // Value: "%" + req.ArtistName + "%", + // }) + var searchName = "%" + req.ArtistName + "%" + tx = tx.Where("artist_name LIKE ? OR artist_uid LIKE ?", searchName, searchName) } if req.Status != 0 { tx = tx.Where("status = ?", req.Status) From a7bdbf39a1317f354e3ff24b0d997c7fc5cbb928 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Tue, 28 Mar 2023 14:01:26 +0800 Subject: [PATCH 09/52] =?UTF-8?q?=E4=BC=98=E5=8C=96url=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistinfo_artshow_video.go | 1 - cmd/model/artshow_video.go | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/cmd/internal/dao/artistinfo_artshow_video.go b/cmd/internal/dao/artistinfo_artshow_video.go index 2ec3b55..d2bcad1 100644 --- a/cmd/internal/dao/artistinfo_artshow_video.go +++ b/cmd/internal/dao/artistinfo_artshow_video.go @@ -13,7 +13,6 @@ import ( "github.com/fonchain/fonchain-artistinfo/pb/artistinfoArtshow" db "github.com/fonchain/fonchain-artistinfo/pkg/db" "gorm.io/gorm" - "gorm.io/gorm/clause" ) var ArtistinfoArtshowVideo = new(artistinfoArtshowVideo) diff --git a/cmd/model/artshow_video.go b/cmd/model/artshow_video.go index 9bf0cd6..bbff871 100644 --- a/cmd/model/artshow_video.go +++ b/cmd/model/artshow_video.go @@ -15,7 +15,7 @@ type ArtshowVideoRecord struct { //AccountId int64 `json:"accountId" gorm:"column:account_id;comment:"` ArtistName string `json:"artistName" gorm:"column:artist_name;comment:"` - VideoUrl string `json:"videoUrl" gorm:"column:video_url;comment:"` + VideoUrl string `json:"videoUrl" gorm:"column:video_url;type:varchar(2000);comment:"` //审批字段 AuditStatus AuditStatus `json:"auditStatus" gorm:"column:audit_status;comment:审核状态:2= 待审核,3= 审核失败,4= 审核通过,5= 待补充"` From ab1e64b6e47048d93c5f6a553c9f9da05eef0776 Mon Sep 17 00:00:00 2001 From: songchuang <192749120@qq.com> Date: Tue, 28 Mar 2023 15:42:30 +0800 Subject: [PATCH 10/52] =?UTF-8?q?contract=20=E5=A2=9E=E5=8A=A0ContractHist?= =?UTF-8?q?oryByLockMgmt=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/contract.go | 8 + cmd/internal/dao/contract.go | 30 ++ cmd/internal/logic/contract.go | 23 + pb/contract/contract.pb.go | 694 +++++++++++++++++---------- pb/contract/contract.proto | 14 + pb/contract/contract.validator.pb.go | 13 + pb/contract/contract_triple.pb.go | 45 ++ 7 files changed, 569 insertions(+), 258 deletions(-) diff --git a/cmd/internal/controller/contract.go b/cmd/internal/controller/contract.go index 175bfaa..5cbf4b6 100644 --- a/cmd/internal/controller/contract.go +++ b/cmd/internal/controller/contract.go @@ -29,6 +29,14 @@ func (c *ArtistInfoContractProvider) ContractListMgmt(ctx context.Context, req * return rep, nil } +func (c *ArtistInfoContractProvider) ContractHistoryByLockMgmt(ctx context.Context, req *contract.ContractHistoryByLockMgmtRequest) (rep *contract.ContractHistoryByLockMgmtRespond, err error) { + fmt.Println("第一处") + if rep, err = c.contractLogic.ContractHistoryByLockMgmt(req); err != nil { + return nil, err + } + return rep, nil +} + func (c *ArtistInfoContractProvider) ContractList(ctx context.Context, req *contract.ContractListRequest) (rep *contract.ContractListRespond, err error) { fmt.Println("第一处") if rep, err = c.contractLogic.ContractList(req); err != nil { diff --git a/cmd/internal/dao/contract.go b/cmd/internal/dao/contract.go index ab2f4f3..610237f 100644 --- a/cmd/internal/dao/contract.go +++ b/cmd/internal/dao/contract.go @@ -136,6 +136,36 @@ func GetContractList(artistUid string, pageSize, offset int32) (contracts []*con } +func ContractHistoryByLockMgmt(artistUid string, pageSize, offset, status int32) (contracts []*contract.Contracts, err error) { + + var contractSlice []model.Contract + if err = db.DB.Where("artist_uid = ? AND status = ?", artistUid, status).Order("ID asc").Limit(int(pageSize)).Offset(int(offset)).Find(&contractSlice).Error; err != nil { + zap.L().Error("get contracts info err", zap.Error(err)) + err = errors.New(m.CREATE_ERROR) + return + } + + for _, v := range contractSlice { + contcontract := &contract.Contracts{ + ContractUid: v.Uid, + ArtistUid: v.ArtistUid, + ArtworkUid: v.ArtworkUid, + ContractId: v.ContractId, + TransactionId: v.TransactionId, + Type: v.Type, + ViewUrl: v.ViewUrl, + DownloadUrl: v.DownloadUrl, + State: v.State, + Status: int32(v.Status), + LockTime: v.LockTime, + } + + contracts = append(contracts, contcontract) + } + + return +} + func GetArtistInfoById(artistUid string) (user model.User, err error) { if err = db.DB.Where("mgmt_artist_uid = ?", artistUid).First(&user).Error; err != nil { zap.L().Error("get user info err", zap.Error(err)) diff --git a/cmd/internal/logic/contract.go b/cmd/internal/logic/contract.go index 6383730..25de64c 100644 --- a/cmd/internal/logic/contract.go +++ b/cmd/internal/logic/contract.go @@ -20,6 +20,7 @@ import ( type IContract interface { CreateContract(req *contract.CreateContractRequest) (rep *contract.CreateContractRespond, err error) ContractListMgmt(req *contract.ContractListMgmtRequest) (rep *contract.ContractListMgmtRespond, err error) + ContractHistoryByLockMgmt(req *contract.ContractHistoryByLockMgmtRequest) (rep *contract.ContractHistoryByLockMgmtRespond, err error) ContractList(req *contract.ContractListRequest) (rep *contract.ContractListRespond, err error) SignContract(req *contract.SignContractRequest) (rep *contract.SignContractRespond, err error) FinishContract(req *contract.FinishContractRequest) (rep *contract.FinishContractRespond, err error) @@ -183,6 +184,28 @@ func (a *Contract) ContractListMgmt(req *contract.ContractListMgmtRequest) (rep return } +func (a *Contract) ContractHistoryByLockMgmt(req *contract.ContractHistoryByLockMgmtRequest) (rep *contract.ContractHistoryByLockMgmtRespond, err error) { + rep = &contract.ContractHistoryByLockMgmtRespond{} + + //合同分页查询操作 + if req.Page < 1 { + req.Page = 1 + } + if req.Num < 1 { + req.Num = 15 + } + offset := (req.Page - 1) * req.Num + + //获取该用户的所有合同 + contracts, err := dao.ContractHistoryByLockMgmt(req.ArtistUid, req.Num, offset, req.Status) + if err != nil { + return + } + rep.Data = contracts + + return +} + func (a *Contract) ContractList(req *contract.ContractListRequest) (rep *contract.ContractListRespond, err error) { //查看是否有该画家 diff --git a/pb/contract/contract.pb.go b/pb/contract/contract.pb.go index a79a7f2..c6cfec2 100644 --- a/pb/contract/contract.pb.go +++ b/pb/contract/contract.pb.go @@ -415,6 +415,132 @@ func (x *ContractListMgmtRespond) GetMsg() string { return "" } +type ContractHistoryByLockMgmtRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistUid string `protobuf:"bytes,1,opt,name=ArtistUid,json=artist_uid,proto3" json:"ArtistUid,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + Page int32 `protobuf:"varint,3,opt,name=Page,json=page,proto3" json:"Page,omitempty"` + Num int32 `protobuf:"varint,4,opt,name=Num,json=num,proto3" json:"Num,omitempty"` +} + +func (x *ContractHistoryByLockMgmtRequest) Reset() { + *x = ContractHistoryByLockMgmtRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_contract_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ContractHistoryByLockMgmtRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContractHistoryByLockMgmtRequest) ProtoMessage() {} + +func (x *ContractHistoryByLockMgmtRequest) ProtoReflect() protoreflect.Message { + mi := &file_contract_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ContractHistoryByLockMgmtRequest.ProtoReflect.Descriptor instead. +func (*ContractHistoryByLockMgmtRequest) Descriptor() ([]byte, []int) { + return file_contract_proto_rawDescGZIP(), []int{5} +} + +func (x *ContractHistoryByLockMgmtRequest) GetArtistUid() string { + if x != nil { + return x.ArtistUid + } + return "" +} + +func (x *ContractHistoryByLockMgmtRequest) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *ContractHistoryByLockMgmtRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *ContractHistoryByLockMgmtRequest) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +type ContractHistoryByLockMgmtRespond struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*Contracts `protobuf:"bytes,1,rep,name=Data,json=data,proto3" json:"Data,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` +} + +func (x *ContractHistoryByLockMgmtRespond) Reset() { + *x = ContractHistoryByLockMgmtRespond{} + if protoimpl.UnsafeEnabled { + mi := &file_contract_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ContractHistoryByLockMgmtRespond) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContractHistoryByLockMgmtRespond) ProtoMessage() {} + +func (x *ContractHistoryByLockMgmtRespond) ProtoReflect() protoreflect.Message { + mi := &file_contract_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ContractHistoryByLockMgmtRespond.ProtoReflect.Descriptor instead. +func (*ContractHistoryByLockMgmtRespond) Descriptor() ([]byte, []int) { + return file_contract_proto_rawDescGZIP(), []int{6} +} + +func (x *ContractHistoryByLockMgmtRespond) GetData() []*Contracts { + if x != nil { + return x.Data + } + return nil +} + +func (x *ContractHistoryByLockMgmtRespond) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + type ContractListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -429,7 +555,7 @@ type ContractListRequest struct { func (x *ContractListRequest) Reset() { *x = ContractListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[5] + mi := &file_contract_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -442,7 +568,7 @@ func (x *ContractListRequest) String() string { func (*ContractListRequest) ProtoMessage() {} func (x *ContractListRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[5] + mi := &file_contract_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -455,7 +581,7 @@ func (x *ContractListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractListRequest.ProtoReflect.Descriptor instead. func (*ContractListRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{5} + return file_contract_proto_rawDescGZIP(), []int{7} } func (x *ContractListRequest) GetArtistUid() string { @@ -498,7 +624,7 @@ type ContractListRespond struct { func (x *ContractListRespond) Reset() { *x = ContractListRespond{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[6] + mi := &file_contract_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -511,7 +637,7 @@ func (x *ContractListRespond) String() string { func (*ContractListRespond) ProtoMessage() {} func (x *ContractListRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[6] + mi := &file_contract_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -524,7 +650,7 @@ func (x *ContractListRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractListRespond.ProtoReflect.Descriptor instead. func (*ContractListRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{6} + return file_contract_proto_rawDescGZIP(), []int{8} } func (x *ContractListRespond) GetData() []*Contracts { @@ -560,7 +686,7 @@ type SignContractRequest struct { func (x *SignContractRequest) Reset() { *x = SignContractRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[7] + mi := &file_contract_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -573,7 +699,7 @@ func (x *SignContractRequest) String() string { func (*SignContractRequest) ProtoMessage() {} func (x *SignContractRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[7] + mi := &file_contract_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -586,7 +712,7 @@ func (x *SignContractRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SignContractRequest.ProtoReflect.Descriptor instead. func (*SignContractRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{7} + return file_contract_proto_rawDescGZIP(), []int{9} } func (x *SignContractRequest) GetArtistUid() string { @@ -664,7 +790,7 @@ type SignContractRespond struct { func (x *SignContractRespond) Reset() { *x = SignContractRespond{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[8] + mi := &file_contract_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -677,7 +803,7 @@ func (x *SignContractRespond) String() string { func (*SignContractRespond) ProtoMessage() {} func (x *SignContractRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[8] + mi := &file_contract_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -690,7 +816,7 @@ func (x *SignContractRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use SignContractRespond.ProtoReflect.Descriptor instead. func (*SignContractRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{8} + return file_contract_proto_rawDescGZIP(), []int{10} } func (x *SignContractRespond) GetJumpUrl() string { @@ -719,7 +845,7 @@ type FinishContractRequest struct { func (x *FinishContractRequest) Reset() { *x = FinishContractRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[9] + mi := &file_contract_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -732,7 +858,7 @@ func (x *FinishContractRequest) String() string { func (*FinishContractRequest) ProtoMessage() {} func (x *FinishContractRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[9] + mi := &file_contract_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -745,7 +871,7 @@ func (x *FinishContractRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FinishContractRequest.ProtoReflect.Descriptor instead. func (*FinishContractRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{9} + return file_contract_proto_rawDescGZIP(), []int{11} } func (x *FinishContractRequest) GetTransactionId() string { @@ -774,7 +900,7 @@ type FinishContractRespond struct { func (x *FinishContractRespond) Reset() { *x = FinishContractRespond{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[10] + mi := &file_contract_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -787,7 +913,7 @@ func (x *FinishContractRespond) String() string { func (*FinishContractRespond) ProtoMessage() {} func (x *FinishContractRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[10] + mi := &file_contract_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -800,7 +926,7 @@ func (x *FinishContractRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use FinishContractRespond.ProtoReflect.Descriptor instead. func (*FinishContractRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{10} + return file_contract_proto_rawDescGZIP(), []int{12} } func (x *FinishContractRespond) GetContract() *Contracts { @@ -831,7 +957,7 @@ type ContractTxListRequest struct { func (x *ContractTxListRequest) Reset() { *x = ContractTxListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[11] + mi := &file_contract_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -844,7 +970,7 @@ func (x *ContractTxListRequest) String() string { func (*ContractTxListRequest) ProtoMessage() {} func (x *ContractTxListRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[11] + mi := &file_contract_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -857,7 +983,7 @@ func (x *ContractTxListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractTxListRequest.ProtoReflect.Descriptor instead. func (*ContractTxListRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{11} + return file_contract_proto_rawDescGZIP(), []int{13} } func (x *ContractTxListRequest) GetID() int32 { @@ -900,7 +1026,7 @@ type ContractTxListRespond struct { func (x *ContractTxListRespond) Reset() { *x = ContractTxListRespond{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[12] + mi := &file_contract_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -913,7 +1039,7 @@ func (x *ContractTxListRespond) String() string { func (*ContractTxListRespond) ProtoMessage() {} func (x *ContractTxListRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[12] + mi := &file_contract_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -926,7 +1052,7 @@ func (x *ContractTxListRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractTxListRespond.ProtoReflect.Descriptor instead. func (*ContractTxListRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{12} + return file_contract_proto_rawDescGZIP(), []int{14} } func (x *ContractTxListRespond) GetData() []*Contracts { @@ -954,7 +1080,7 @@ type GetContractInfoByContractUidRequest struct { func (x *GetContractInfoByContractUidRequest) Reset() { *x = GetContractInfoByContractUidRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[13] + mi := &file_contract_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -967,7 +1093,7 @@ func (x *GetContractInfoByContractUidRequest) String() string { func (*GetContractInfoByContractUidRequest) ProtoMessage() {} func (x *GetContractInfoByContractUidRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[13] + mi := &file_contract_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -980,7 +1106,7 @@ func (x *GetContractInfoByContractUidRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use GetContractInfoByContractUidRequest.ProtoReflect.Descriptor instead. func (*GetContractInfoByContractUidRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{13} + return file_contract_proto_rawDescGZIP(), []int{15} } func (x *GetContractInfoByContractUidRequest) GetContractUid() string { @@ -1002,7 +1128,7 @@ type GetContractInfoByContractUidRespond struct { func (x *GetContractInfoByContractUidRespond) Reset() { *x = GetContractInfoByContractUidRespond{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[14] + mi := &file_contract_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1015,7 +1141,7 @@ func (x *GetContractInfoByContractUidRespond) String() string { func (*GetContractInfoByContractUidRespond) ProtoMessage() {} func (x *GetContractInfoByContractUidRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[14] + mi := &file_contract_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1028,7 +1154,7 @@ func (x *GetContractInfoByContractUidRespond) ProtoReflect() protoreflect.Messag // Deprecated: Use GetContractInfoByContractUidRespond.ProtoReflect.Descriptor instead. func (*GetContractInfoByContractUidRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{14} + return file_contract_proto_rawDescGZIP(), []int{16} } func (x *GetContractInfoByContractUidRespond) GetData() *Contracts { @@ -1056,7 +1182,7 @@ type GetContractRequest struct { func (x *GetContractRequest) Reset() { *x = GetContractRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[15] + mi := &file_contract_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1069,7 +1195,7 @@ func (x *GetContractRequest) String() string { func (*GetContractRequest) ProtoMessage() {} func (x *GetContractRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[15] + mi := &file_contract_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1082,7 +1208,7 @@ func (x *GetContractRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetContractRequest.ProtoReflect.Descriptor instead. func (*GetContractRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{15} + return file_contract_proto_rawDescGZIP(), []int{17} } func (x *GetContractRequest) GetId() int64 { @@ -1119,7 +1245,7 @@ type UpdateContractRequest struct { func (x *UpdateContractRequest) Reset() { *x = UpdateContractRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[16] + mi := &file_contract_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1132,7 +1258,7 @@ func (x *UpdateContractRequest) String() string { func (*UpdateContractRequest) ProtoMessage() {} func (x *UpdateContractRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[16] + mi := &file_contract_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1145,7 +1271,7 @@ func (x *UpdateContractRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateContractRequest.ProtoReflect.Descriptor instead. func (*UpdateContractRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{16} + return file_contract_proto_rawDescGZIP(), []int{18} } func (x *UpdateContractRequest) GetID() uint64 { @@ -1276,7 +1402,7 @@ type UpdateContractRespond struct { func (x *UpdateContractRespond) Reset() { *x = UpdateContractRespond{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[17] + mi := &file_contract_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1289,7 +1415,7 @@ func (x *UpdateContractRespond) String() string { func (*UpdateContractRespond) ProtoMessage() {} func (x *UpdateContractRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[17] + mi := &file_contract_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1302,7 +1428,7 @@ func (x *UpdateContractRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateContractRespond.ProtoReflect.Descriptor instead. func (*UpdateContractRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{17} + return file_contract_proto_rawDescGZIP(), []int{19} } type UpdateContractTxRequest struct { @@ -1317,7 +1443,7 @@ type UpdateContractTxRequest struct { func (x *UpdateContractTxRequest) Reset() { *x = UpdateContractTxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[18] + mi := &file_contract_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1330,7 +1456,7 @@ func (x *UpdateContractTxRequest) String() string { func (*UpdateContractTxRequest) ProtoMessage() {} func (x *UpdateContractTxRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[18] + mi := &file_contract_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1343,7 +1469,7 @@ func (x *UpdateContractTxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateContractTxRequest.ProtoReflect.Descriptor instead. func (*UpdateContractTxRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{18} + return file_contract_proto_rawDescGZIP(), []int{20} } func (x *UpdateContractTxRequest) GetID() int64 { @@ -1369,7 +1495,7 @@ type UpdateContractTxRespond struct { func (x *UpdateContractTxRespond) Reset() { *x = UpdateContractTxRespond{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[19] + mi := &file_contract_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1382,7 +1508,7 @@ func (x *UpdateContractTxRespond) String() string { func (*UpdateContractTxRespond) ProtoMessage() {} func (x *UpdateContractTxRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[19] + mi := &file_contract_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1395,7 +1521,7 @@ func (x *UpdateContractTxRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateContractTxRespond.ProtoReflect.Descriptor instead. func (*UpdateContractTxRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{19} + return file_contract_proto_rawDescGZIP(), []int{21} } var File_contract_proto protoreflect.FileDescriptor @@ -1455,170 +1581,193 @@ var file_contract_proto_rawDesc = []byte{ 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x7a, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, - 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, - 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x22, 0x56, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb2, 0x02, 0x0a, 0x13, 0x53, 0x69, - 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, - 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, - 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x08, 0x48, 0x74, 0x6d, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x74, 0x6d, - 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x07, 0x45, 0x6e, 0x76, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x76, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x20, 0x0a, 0x0a, 0x56, 0x69, 0x65, 0x77, 0x50, 0x64, 0x66, 0x55, 0x72, 0x6c, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x70, 0x64, 0x66, 0x5f, - 0x75, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, - 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x6f, 0x12, 0x25, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x42, - 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x07, 0x4a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x75, 0x6d, 0x70, 0x5f, 0x75, 0x72, 0x6c, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x22, 0x61, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0d, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x5b, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x30, - 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x22, 0x6e, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x08, 0x50, - 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x22, 0x58, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x73, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x49, 0x0a, 0x23, - 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, - 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, - 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x7f, 0x0a, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4c, 0x6f, 0x63, 0x6b, 0x4d, 0x67, + 0x6d, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x63, 0x0a, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4c, 0x6f, 0x63, 0x6b, 0x4d, + 0x67, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x7a, 0x0a, 0x13, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x56, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, + 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, - 0x24, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0xfd, 0x03, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x4d, 0x67, 0x6d, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x67, 0x6d, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, - 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x56, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x69, 0x67, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, 0x67, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x4f, - 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, - 0x19, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x32, 0xe3, 0x05, 0x0a, 0x0e, 0x41, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x60, 0x0a, - 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, - 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, - 0x66, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, - 0x67, 0x6d, 0x74, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x64, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, - 0x60, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, - 0x00, 0x12, 0x60, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0xb2, 0x02, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x1b, 0x0a, 0x08, 0x48, 0x74, 0x6d, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x68, 0x74, 0x6d, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x07, + 0x45, 0x6e, 0x76, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, + 0x6e, 0x76, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0a, 0x56, 0x69, 0x65, 0x77, 0x50, + 0x64, 0x66, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x69, 0x65, + 0x77, 0x5f, 0x70, 0x64, 0x66, 0x5f, 0x75, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0b, 0x44, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0a, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x6f, 0x12, 0x25, 0x0a, + 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x42, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x07, 0x4a, + 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x75, + 0x6d, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x61, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x25, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x5b, 0x0a, 0x15, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x30, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x73, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x6e, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x1b, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, + 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x58, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x64, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x55, 0x69, 0x64, 0x12, 0x33, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x22, 0x49, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, - 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, - 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x66, 0x0a, + 0x23, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x24, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0xfd, 0x03, 0x0a, 0x15, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, + 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x67, 0x6d, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x67, 0x6d, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 0x12, + 0x20, 0x0a, 0x0b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, + 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x69, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x4f, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x24, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, + 0x32, 0xe7, 0x06, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x12, 0x60, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x81, 0x01, + 0x0a, 0x19, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x42, 0x79, 0x4c, 0x6f, 0x63, 0x6b, 0x4d, 0x67, 0x6d, 0x74, 0x12, 0x30, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4c, 0x6f, + 0x63, 0x6b, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, + 0x4c, 0x6f, 0x63, 0x6b, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, + 0x00, 0x12, 0x5a, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5a, 0x0a, + 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x23, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x53, + 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0e, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0e, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x8a, 0x01, + 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x12, 0x33, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, + 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, + 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1633,54 +1782,59 @@ func file_contract_proto_rawDescGZIP() []byte { return file_contract_proto_rawDescData } -var file_contract_proto_msgTypes = make([]protoimpl.MessageInfo, 20) +var file_contract_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_contract_proto_goTypes = []interface{}{ (*Contracts)(nil), // 0: artistContract.Contracts (*CreateContractRequest)(nil), // 1: artistContract.CreateContractRequest (*CreateContractRespond)(nil), // 2: artistContract.CreateContractRespond (*ContractListMgmtRequest)(nil), // 3: artistContract.ContractListMgmtRequest (*ContractListMgmtRespond)(nil), // 4: artistContract.ContractListMgmtRespond - (*ContractListRequest)(nil), // 5: artistContract.ContractListRequest - (*ContractListRespond)(nil), // 6: artistContract.ContractListRespond - (*SignContractRequest)(nil), // 7: artistContract.SignContractRequest - (*SignContractRespond)(nil), // 8: artistContract.SignContractRespond - (*FinishContractRequest)(nil), // 9: artistContract.FinishContractRequest - (*FinishContractRespond)(nil), // 10: artistContract.FinishContractRespond - (*ContractTxListRequest)(nil), // 11: artistContract.ContractTxListRequest - (*ContractTxListRespond)(nil), // 12: artistContract.ContractTxListRespond - (*GetContractInfoByContractUidRequest)(nil), // 13: artistContract.GetContractInfoByContractUidRequest - (*GetContractInfoByContractUidRespond)(nil), // 14: artistContract.GetContractInfoByContractUidRespond - (*GetContractRequest)(nil), // 15: artistContract.GetContractRequest - (*UpdateContractRequest)(nil), // 16: artistContract.UpdateContractRequest - (*UpdateContractRespond)(nil), // 17: artistContract.UpdateContractRespond - (*UpdateContractTxRequest)(nil), // 18: artistContract.UpdateContractTxRequest - (*UpdateContractTxRespond)(nil), // 19: artistContract.UpdateContractTxRespond + (*ContractHistoryByLockMgmtRequest)(nil), // 5: artistContract.ContractHistoryByLockMgmtRequest + (*ContractHistoryByLockMgmtRespond)(nil), // 6: artistContract.ContractHistoryByLockMgmtRespond + (*ContractListRequest)(nil), // 7: artistContract.ContractListRequest + (*ContractListRespond)(nil), // 8: artistContract.ContractListRespond + (*SignContractRequest)(nil), // 9: artistContract.SignContractRequest + (*SignContractRespond)(nil), // 10: artistContract.SignContractRespond + (*FinishContractRequest)(nil), // 11: artistContract.FinishContractRequest + (*FinishContractRespond)(nil), // 12: artistContract.FinishContractRespond + (*ContractTxListRequest)(nil), // 13: artistContract.ContractTxListRequest + (*ContractTxListRespond)(nil), // 14: artistContract.ContractTxListRespond + (*GetContractInfoByContractUidRequest)(nil), // 15: artistContract.GetContractInfoByContractUidRequest + (*GetContractInfoByContractUidRespond)(nil), // 16: artistContract.GetContractInfoByContractUidRespond + (*GetContractRequest)(nil), // 17: artistContract.GetContractRequest + (*UpdateContractRequest)(nil), // 18: artistContract.UpdateContractRequest + (*UpdateContractRespond)(nil), // 19: artistContract.UpdateContractRespond + (*UpdateContractTxRequest)(nil), // 20: artistContract.UpdateContractTxRequest + (*UpdateContractTxRespond)(nil), // 21: artistContract.UpdateContractTxRespond } var file_contract_proto_depIdxs = []int32{ 0, // 0: artistContract.ContractListMgmtRespond.Data:type_name -> artistContract.Contracts - 0, // 1: artistContract.ContractListRespond.Data:type_name -> artistContract.Contracts - 0, // 2: artistContract.FinishContractRespond.Contract:type_name -> artistContract.Contracts - 0, // 3: artistContract.ContractTxListRespond.Data:type_name -> artistContract.Contracts - 0, // 4: artistContract.GetContractInfoByContractUidRespond.Data:type_name -> artistContract.Contracts - 1, // 5: artistContract.ArtistContract.CreateContract:input_type -> artistContract.CreateContractRequest - 3, // 6: artistContract.ArtistContract.ContractListMgmt:input_type -> artistContract.ContractListMgmtRequest - 5, // 7: artistContract.ArtistContract.ContractList:input_type -> artistContract.ContractListRequest - 7, // 8: artistContract.ArtistContract.SignContract:input_type -> artistContract.SignContractRequest - 9, // 9: artistContract.ArtistContract.FinishContract:input_type -> artistContract.FinishContractRequest - 11, // 10: artistContract.ArtistContract.ContractTxList:input_type -> artistContract.ContractTxListRequest - 13, // 11: artistContract.ArtistContract.GetContractInfoByContractUid:input_type -> artistContract.GetContractInfoByContractUidRequest - 2, // 12: artistContract.ArtistContract.CreateContract:output_type -> artistContract.CreateContractRespond - 4, // 13: artistContract.ArtistContract.ContractListMgmt:output_type -> artistContract.ContractListMgmtRespond - 6, // 14: artistContract.ArtistContract.ContractList:output_type -> artistContract.ContractListRespond - 8, // 15: artistContract.ArtistContract.SignContract:output_type -> artistContract.SignContractRespond - 10, // 16: artistContract.ArtistContract.FinishContract:output_type -> artistContract.FinishContractRespond - 12, // 17: artistContract.ArtistContract.ContractTxList:output_type -> artistContract.ContractTxListRespond - 14, // 18: artistContract.ArtistContract.GetContractInfoByContractUid:output_type -> artistContract.GetContractInfoByContractUidRespond - 12, // [12:19] is the sub-list for method output_type - 5, // [5:12] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name + 0, // 1: artistContract.ContractHistoryByLockMgmtRespond.Data:type_name -> artistContract.Contracts + 0, // 2: artistContract.ContractListRespond.Data:type_name -> artistContract.Contracts + 0, // 3: artistContract.FinishContractRespond.Contract:type_name -> artistContract.Contracts + 0, // 4: artistContract.ContractTxListRespond.Data:type_name -> artistContract.Contracts + 0, // 5: artistContract.GetContractInfoByContractUidRespond.Data:type_name -> artistContract.Contracts + 1, // 6: artistContract.ArtistContract.CreateContract:input_type -> artistContract.CreateContractRequest + 3, // 7: artistContract.ArtistContract.ContractListMgmt:input_type -> artistContract.ContractListMgmtRequest + 5, // 8: artistContract.ArtistContract.ContractHistoryByLockMgmt:input_type -> artistContract.ContractHistoryByLockMgmtRequest + 7, // 9: artistContract.ArtistContract.ContractList:input_type -> artistContract.ContractListRequest + 9, // 10: artistContract.ArtistContract.SignContract:input_type -> artistContract.SignContractRequest + 11, // 11: artistContract.ArtistContract.FinishContract:input_type -> artistContract.FinishContractRequest + 13, // 12: artistContract.ArtistContract.ContractTxList:input_type -> artistContract.ContractTxListRequest + 15, // 13: artistContract.ArtistContract.GetContractInfoByContractUid:input_type -> artistContract.GetContractInfoByContractUidRequest + 2, // 14: artistContract.ArtistContract.CreateContract:output_type -> artistContract.CreateContractRespond + 4, // 15: artistContract.ArtistContract.ContractListMgmt:output_type -> artistContract.ContractListMgmtRespond + 6, // 16: artistContract.ArtistContract.ContractHistoryByLockMgmt:output_type -> artistContract.ContractHistoryByLockMgmtRespond + 8, // 17: artistContract.ArtistContract.ContractList:output_type -> artistContract.ContractListRespond + 10, // 18: artistContract.ArtistContract.SignContract:output_type -> artistContract.SignContractRespond + 12, // 19: artistContract.ArtistContract.FinishContract:output_type -> artistContract.FinishContractRespond + 14, // 20: artistContract.ArtistContract.ContractTxList:output_type -> artistContract.ContractTxListRespond + 16, // 21: artistContract.ArtistContract.GetContractInfoByContractUid:output_type -> artistContract.GetContractInfoByContractUidRespond + 14, // [14:22] is the sub-list for method output_type + 6, // [6:14] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name } func init() { file_contract_proto_init() } @@ -1750,7 +1904,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContractListRequest); i { + switch v := v.(*ContractHistoryByLockMgmtRequest); i { case 0: return &v.state case 1: @@ -1762,7 +1916,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContractListRespond); i { + switch v := v.(*ContractHistoryByLockMgmtRespond); i { case 0: return &v.state case 1: @@ -1774,7 +1928,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignContractRequest); i { + switch v := v.(*ContractListRequest); i { case 0: return &v.state case 1: @@ -1786,7 +1940,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignContractRespond); i { + switch v := v.(*ContractListRespond); i { case 0: return &v.state case 1: @@ -1798,7 +1952,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FinishContractRequest); i { + switch v := v.(*SignContractRequest); i { case 0: return &v.state case 1: @@ -1810,7 +1964,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FinishContractRespond); i { + switch v := v.(*SignContractRespond); i { case 0: return &v.state case 1: @@ -1822,7 +1976,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContractTxListRequest); i { + switch v := v.(*FinishContractRequest); i { case 0: return &v.state case 1: @@ -1834,7 +1988,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContractTxListRespond); i { + switch v := v.(*FinishContractRespond); i { case 0: return &v.state case 1: @@ -1846,7 +2000,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetContractInfoByContractUidRequest); i { + switch v := v.(*ContractTxListRequest); i { case 0: return &v.state case 1: @@ -1858,7 +2012,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetContractInfoByContractUidRespond); i { + switch v := v.(*ContractTxListRespond); i { case 0: return &v.state case 1: @@ -1870,7 +2024,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetContractRequest); i { + switch v := v.(*GetContractInfoByContractUidRequest); i { case 0: return &v.state case 1: @@ -1882,7 +2036,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateContractRequest); i { + switch v := v.(*GetContractInfoByContractUidRespond); i { case 0: return &v.state case 1: @@ -1894,7 +2048,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateContractRespond); i { + switch v := v.(*GetContractRequest); i { case 0: return &v.state case 1: @@ -1906,7 +2060,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateContractTxRequest); i { + switch v := v.(*UpdateContractRequest); i { case 0: return &v.state case 1: @@ -1918,6 +2072,30 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateContractRespond); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_contract_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateContractTxRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_contract_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateContractTxRespond); i { case 0: return &v.state @@ -1936,7 +2114,7 @@ func file_contract_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_contract_proto_rawDesc, NumEnums: 0, - NumMessages: 20, + NumMessages: 22, NumExtensions: 0, NumServices: 1, }, diff --git a/pb/contract/contract.proto b/pb/contract/contract.proto index 0ad8ebb..de565c5 100644 --- a/pb/contract/contract.proto +++ b/pb/contract/contract.proto @@ -5,6 +5,7 @@ option go_package = "./;artistContract"; service ArtistContract { rpc CreateContract (CreateContractRequest) returns (CreateContractRespond) {} rpc ContractListMgmt (ContractListMgmtRequest) returns (ContractListMgmtRespond) {} + rpc ContractHistoryByLockMgmt (ContractHistoryByLockMgmtRequest) returns (ContractHistoryByLockMgmtRespond) {} rpc ContractList (ContractListRequest) returns (ContractListRespond) {} rpc SignContract (SignContractRequest) returns (SignContractRespond) {} rpc FinishContract (FinishContractRequest) returns (FinishContractRespond) {} @@ -57,6 +58,19 @@ message ContractListMgmtRespond{ string Msg = 2 [json_name = "msg"]; } +message ContractHistoryByLockMgmtRequest{ + string ArtistUid = 1 [json_name = "artist_uid"]; + int32 Status = 2 [json_name = "status"]; + int32 Page = 3 [json_name = "page"]; + int32 Num = 4 [json_name = "num"]; +} + +message ContractHistoryByLockMgmtRespond{ + repeated Contracts Data = 1 [json_name = "data"]; + string Msg = 2 [json_name = "msg"]; +} + + message ContractListRequest { string ArtistUid = 1 [json_name = "artist_uid"]; int32 PageSize = 2 [json_name="pageSize"]; diff --git a/pb/contract/contract.validator.pb.go b/pb/contract/contract.validator.pb.go index 0fa8cde..a9d77ce 100644 --- a/pb/contract/contract.validator.pb.go +++ b/pb/contract/contract.validator.pb.go @@ -37,6 +37,19 @@ func (this *ContractListMgmtRespond) Validate() error { } return nil } +func (this *ContractHistoryByLockMgmtRequest) Validate() error { + return nil +} +func (this *ContractHistoryByLockMgmtRespond) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} func (this *ContractListRequest) Validate() error { return nil } diff --git a/pb/contract/contract_triple.pb.go b/pb/contract/contract_triple.pb.go index 95a2e87..4af891f 100644 --- a/pb/contract/contract_triple.pb.go +++ b/pb/contract/contract_triple.pb.go @@ -30,6 +30,7 @@ const _ = grpc_go.SupportPackageIsVersion7 type ArtistContractClient interface { CreateContract(ctx context.Context, in *CreateContractRequest, opts ...grpc_go.CallOption) (*CreateContractRespond, common.ErrorWithAttachment) ContractListMgmt(ctx context.Context, in *ContractListMgmtRequest, opts ...grpc_go.CallOption) (*ContractListMgmtRespond, common.ErrorWithAttachment) + ContractHistoryByLockMgmt(ctx context.Context, in *ContractHistoryByLockMgmtRequest, opts ...grpc_go.CallOption) (*ContractHistoryByLockMgmtRespond, common.ErrorWithAttachment) ContractList(ctx context.Context, in *ContractListRequest, opts ...grpc_go.CallOption) (*ContractListRespond, common.ErrorWithAttachment) SignContract(ctx context.Context, in *SignContractRequest, opts ...grpc_go.CallOption) (*SignContractRespond, common.ErrorWithAttachment) FinishContract(ctx context.Context, in *FinishContractRequest, opts ...grpc_go.CallOption) (*FinishContractRespond, common.ErrorWithAttachment) @@ -44,6 +45,7 @@ type artistContractClient struct { type ArtistContractClientImpl struct { CreateContract func(ctx context.Context, in *CreateContractRequest) (*CreateContractRespond, error) ContractListMgmt func(ctx context.Context, in *ContractListMgmtRequest) (*ContractListMgmtRespond, error) + ContractHistoryByLockMgmt func(ctx context.Context, in *ContractHistoryByLockMgmtRequest) (*ContractHistoryByLockMgmtRespond, error) ContractList func(ctx context.Context, in *ContractListRequest) (*ContractListRespond, error) SignContract func(ctx context.Context, in *SignContractRequest) (*SignContractRespond, error) FinishContract func(ctx context.Context, in *FinishContractRequest) (*FinishContractRespond, error) @@ -75,6 +77,12 @@ func (c *artistContractClient) ContractListMgmt(ctx context.Context, in *Contrac return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ContractListMgmt", in, out) } +func (c *artistContractClient) ContractHistoryByLockMgmt(ctx context.Context, in *ContractHistoryByLockMgmtRequest, opts ...grpc_go.CallOption) (*ContractHistoryByLockMgmtRespond, common.ErrorWithAttachment) { + out := new(ContractHistoryByLockMgmtRespond) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ContractHistoryByLockMgmt", in, out) +} + func (c *artistContractClient) ContractList(ctx context.Context, in *ContractListRequest, opts ...grpc_go.CallOption) (*ContractListRespond, common.ErrorWithAttachment) { out := new(ContractListRespond) interfaceKey := ctx.Value(constant.InterfaceKey).(string) @@ -111,6 +119,7 @@ func (c *artistContractClient) GetContractInfoByContractUid(ctx context.Context, type ArtistContractServer interface { CreateContract(context.Context, *CreateContractRequest) (*CreateContractRespond, error) ContractListMgmt(context.Context, *ContractListMgmtRequest) (*ContractListMgmtRespond, error) + ContractHistoryByLockMgmt(context.Context, *ContractHistoryByLockMgmtRequest) (*ContractHistoryByLockMgmtRespond, error) ContractList(context.Context, *ContractListRequest) (*ContractListRespond, error) SignContract(context.Context, *SignContractRequest) (*SignContractRespond, error) FinishContract(context.Context, *FinishContractRequest) (*FinishContractRespond, error) @@ -130,6 +139,9 @@ func (UnimplementedArtistContractServer) CreateContract(context.Context, *Create func (UnimplementedArtistContractServer) ContractListMgmt(context.Context, *ContractListMgmtRequest) (*ContractListMgmtRespond, error) { return nil, status.Errorf(codes.Unimplemented, "method ContractListMgmt not implemented") } +func (UnimplementedArtistContractServer) ContractHistoryByLockMgmt(context.Context, *ContractHistoryByLockMgmtRequest) (*ContractHistoryByLockMgmtRespond, error) { + return nil, status.Errorf(codes.Unimplemented, "method ContractHistoryByLockMgmt not implemented") +} func (UnimplementedArtistContractServer) ContractList(context.Context, *ContractListRequest) (*ContractListRespond, error) { return nil, status.Errorf(codes.Unimplemented, "method ContractList not implemented") } @@ -231,6 +243,35 @@ func _ArtistContract_ContractListMgmt_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } +func _ArtistContract_ContractHistoryByLockMgmt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ContractHistoryByLockMgmtRequest) + 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("ContractHistoryByLockMgmt", 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 _ArtistContract_ContractList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(ContractListRequest) if err := dec(in); err != nil { @@ -391,6 +432,10 @@ var ArtistContract_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "ContractListMgmt", Handler: _ArtistContract_ContractListMgmt_Handler, }, + { + MethodName: "ContractHistoryByLockMgmt", + Handler: _ArtistContract_ContractHistoryByLockMgmt_Handler, + }, { MethodName: "ContractList", Handler: _ArtistContract_ContractList_Handler, From f898e796322b775affe824fd8802e975ec08cdb7 Mon Sep 17 00:00:00 2001 From: songchuang <192749120@qq.com> Date: Tue, 28 Mar 2023 17:11:39 +0800 Subject: [PATCH 11/52] =?UTF-8?q?contract=20=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/contract.go | 8 - cmd/internal/dao/contract.go | 34 +- cmd/internal/logic/contract.go | 25 +- pb/contract/contract.pb.go | 732 +++++++++++---------------- pb/contract/contract.proto | 19 +- pb/contract/contract.validator.pb.go | 13 - pb/contract/contract_triple.pb.go | 45 -- 7 files changed, 288 insertions(+), 588 deletions(-) diff --git a/cmd/internal/controller/contract.go b/cmd/internal/controller/contract.go index 5cbf4b6..175bfaa 100644 --- a/cmd/internal/controller/contract.go +++ b/cmd/internal/controller/contract.go @@ -29,14 +29,6 @@ func (c *ArtistInfoContractProvider) ContractListMgmt(ctx context.Context, req * return rep, nil } -func (c *ArtistInfoContractProvider) ContractHistoryByLockMgmt(ctx context.Context, req *contract.ContractHistoryByLockMgmtRequest) (rep *contract.ContractHistoryByLockMgmtRespond, err error) { - fmt.Println("第一处") - if rep, err = c.contractLogic.ContractHistoryByLockMgmt(req); err != nil { - return nil, err - } - return rep, nil -} - func (c *ArtistInfoContractProvider) ContractList(ctx context.Context, req *contract.ContractListRequest) (rep *contract.ContractListRespond, err error) { fmt.Println("第一处") if rep, err = c.contractLogic.ContractList(req); err != nil { diff --git a/cmd/internal/dao/contract.go b/cmd/internal/dao/contract.go index 610237f..1768b56 100644 --- a/cmd/internal/dao/contract.go +++ b/cmd/internal/dao/contract.go @@ -105,38 +105,7 @@ func GetArtistNoByUid(artistUid string) (err error) { return } -func GetContractList(artistUid string, pageSize, offset int32) (contracts []*contract.Contracts, err error) { - - var contractSlice []model.Contract - if err = db.DB.Where("artist_uid = ?", artistUid).Order("ID asc").Limit(int(pageSize)).Offset(int(offset)).Find(&contractSlice).Error; err != nil { - zap.L().Error("get contracts info err", zap.Error(err)) - err = errors.New(m.CREATE_ERROR) - return - } - fmt.Println("第二处") - for _, v := range contractSlice { - contcontract := &contract.Contracts{ - ContractUid: v.Uid, - ArtistUid: v.ArtistUid, - ArtworkUid: v.ArtworkUid, - ContractId: v.ContractId, - TransactionId: v.TransactionId, - Type: v.Type, - ViewUrl: v.ViewUrl, - DownloadUrl: v.DownloadUrl, - State: v.State, - Status: int32(v.Status), - LockTime: v.LockTime, - } - - contracts = append(contracts, contcontract) - } - - return - -} - -func ContractHistoryByLockMgmt(artistUid string, pageSize, offset, status int32) (contracts []*contract.Contracts, err error) { +func GetContractList(artistUid string, pageSize, offset, status int32) (contracts []*contract.Contracts, err error) { var contractSlice []model.Contract if err = db.DB.Where("artist_uid = ? AND status = ?", artistUid, status).Order("ID asc").Limit(int(pageSize)).Offset(int(offset)).Find(&contractSlice).Error; err != nil { @@ -164,6 +133,7 @@ func ContractHistoryByLockMgmt(artistUid string, pageSize, offset, status int32) } return + } func GetArtistInfoById(artistUid string) (user model.User, err error) { diff --git a/cmd/internal/logic/contract.go b/cmd/internal/logic/contract.go index 25de64c..73d3e8c 100644 --- a/cmd/internal/logic/contract.go +++ b/cmd/internal/logic/contract.go @@ -20,7 +20,6 @@ import ( type IContract interface { CreateContract(req *contract.CreateContractRequest) (rep *contract.CreateContractRespond, err error) ContractListMgmt(req *contract.ContractListMgmtRequest) (rep *contract.ContractListMgmtRespond, err error) - ContractHistoryByLockMgmt(req *contract.ContractHistoryByLockMgmtRequest) (rep *contract.ContractHistoryByLockMgmtRespond, err error) ContractList(req *contract.ContractListRequest) (rep *contract.ContractListRespond, err error) SignContract(req *contract.SignContractRequest) (rep *contract.SignContractRespond, err error) FinishContract(req *contract.FinishContractRequest) (rep *contract.FinishContractRespond, err error) @@ -175,29 +174,7 @@ func (a *Contract) ContractListMgmt(req *contract.ContractListMgmtRequest) (rep offset := (req.Page - 1) * req.Num //获取该用户的所有合同 - contracts, err := dao.GetContractList(req.ArtistUid, req.Num, offset) - if err != nil { - return - } - rep.Data = contracts - - return -} - -func (a *Contract) ContractHistoryByLockMgmt(req *contract.ContractHistoryByLockMgmtRequest) (rep *contract.ContractHistoryByLockMgmtRespond, err error) { - rep = &contract.ContractHistoryByLockMgmtRespond{} - - //合同分页查询操作 - if req.Page < 1 { - req.Page = 1 - } - if req.Num < 1 { - req.Num = 15 - } - offset := (req.Page - 1) * req.Num - - //获取该用户的所有合同 - contracts, err := dao.ContractHistoryByLockMgmt(req.ArtistUid, req.Num, offset, req.Status) + contracts, err := dao.GetContractList(req.ArtistUid, req.Num, offset, req.Status) if err != nil { return } diff --git a/pb/contract/contract.pb.go b/pb/contract/contract.pb.go index c6cfec2..b68255c 100644 --- a/pb/contract/contract.pb.go +++ b/pb/contract/contract.pb.go @@ -303,8 +303,9 @@ type ContractListMgmtRequest struct { unknownFields protoimpl.UnknownFields ArtistUid string `protobuf:"bytes,1,opt,name=ArtistUid,json=artist_uid,proto3" json:"ArtistUid,omitempty"` - Page int32 `protobuf:"varint,2,opt,name=Page,json=page,proto3" json:"Page,omitempty"` - Num int32 `protobuf:"varint,3,opt,name=Num,json=num,proto3" json:"Num,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + Page int32 `protobuf:"varint,3,opt,name=Page,json=page,proto3" json:"Page,omitempty"` + Num int32 `protobuf:"varint,4,opt,name=Num,json=num,proto3" json:"Num,omitempty"` } func (x *ContractListMgmtRequest) Reset() { @@ -346,6 +347,13 @@ func (x *ContractListMgmtRequest) GetArtistUid() string { return "" } +func (x *ContractListMgmtRequest) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + func (x *ContractListMgmtRequest) GetPage() int32 { if x != nil { return x.Page @@ -415,132 +423,6 @@ func (x *ContractListMgmtRespond) GetMsg() string { return "" } -type ContractHistoryByLockMgmtRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ArtistUid string `protobuf:"bytes,1,opt,name=ArtistUid,json=artist_uid,proto3" json:"ArtistUid,omitempty"` - Status int32 `protobuf:"varint,2,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - Page int32 `protobuf:"varint,3,opt,name=Page,json=page,proto3" json:"Page,omitempty"` - Num int32 `protobuf:"varint,4,opt,name=Num,json=num,proto3" json:"Num,omitempty"` -} - -func (x *ContractHistoryByLockMgmtRequest) Reset() { - *x = ContractHistoryByLockMgmtRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ContractHistoryByLockMgmtRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ContractHistoryByLockMgmtRequest) ProtoMessage() {} - -func (x *ContractHistoryByLockMgmtRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ContractHistoryByLockMgmtRequest.ProtoReflect.Descriptor instead. -func (*ContractHistoryByLockMgmtRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{5} -} - -func (x *ContractHistoryByLockMgmtRequest) GetArtistUid() string { - if x != nil { - return x.ArtistUid - } - return "" -} - -func (x *ContractHistoryByLockMgmtRequest) GetStatus() int32 { - if x != nil { - return x.Status - } - return 0 -} - -func (x *ContractHistoryByLockMgmtRequest) GetPage() int32 { - if x != nil { - return x.Page - } - return 0 -} - -func (x *ContractHistoryByLockMgmtRequest) GetNum() int32 { - if x != nil { - return x.Num - } - return 0 -} - -type ContractHistoryByLockMgmtRespond struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Data []*Contracts `protobuf:"bytes,1,rep,name=Data,json=data,proto3" json:"Data,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` -} - -func (x *ContractHistoryByLockMgmtRespond) Reset() { - *x = ContractHistoryByLockMgmtRespond{} - if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ContractHistoryByLockMgmtRespond) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ContractHistoryByLockMgmtRespond) ProtoMessage() {} - -func (x *ContractHistoryByLockMgmtRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ContractHistoryByLockMgmtRespond.ProtoReflect.Descriptor instead. -func (*ContractHistoryByLockMgmtRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{6} -} - -func (x *ContractHistoryByLockMgmtRespond) GetData() []*Contracts { - if x != nil { - return x.Data - } - return nil -} - -func (x *ContractHistoryByLockMgmtRespond) GetMsg() string { - if x != nil { - return x.Msg - } - return "" -} - type ContractListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -555,7 +437,7 @@ type ContractListRequest struct { func (x *ContractListRequest) Reset() { *x = ContractListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[7] + mi := &file_contract_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -568,7 +450,7 @@ func (x *ContractListRequest) String() string { func (*ContractListRequest) ProtoMessage() {} func (x *ContractListRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[7] + mi := &file_contract_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -581,7 +463,7 @@ func (x *ContractListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractListRequest.ProtoReflect.Descriptor instead. func (*ContractListRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{7} + return file_contract_proto_rawDescGZIP(), []int{5} } func (x *ContractListRequest) GetArtistUid() string { @@ -624,7 +506,7 @@ type ContractListRespond struct { func (x *ContractListRespond) Reset() { *x = ContractListRespond{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[8] + mi := &file_contract_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -637,7 +519,7 @@ func (x *ContractListRespond) String() string { func (*ContractListRespond) ProtoMessage() {} func (x *ContractListRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[8] + mi := &file_contract_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -650,7 +532,7 @@ func (x *ContractListRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractListRespond.ProtoReflect.Descriptor instead. func (*ContractListRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{8} + return file_contract_proto_rawDescGZIP(), []int{6} } func (x *ContractListRespond) GetData() []*Contracts { @@ -686,7 +568,7 @@ type SignContractRequest struct { func (x *SignContractRequest) Reset() { *x = SignContractRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[9] + mi := &file_contract_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -699,7 +581,7 @@ func (x *SignContractRequest) String() string { func (*SignContractRequest) ProtoMessage() {} func (x *SignContractRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[9] + mi := &file_contract_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -712,7 +594,7 @@ func (x *SignContractRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SignContractRequest.ProtoReflect.Descriptor instead. func (*SignContractRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{9} + return file_contract_proto_rawDescGZIP(), []int{7} } func (x *SignContractRequest) GetArtistUid() string { @@ -790,7 +672,7 @@ type SignContractRespond struct { func (x *SignContractRespond) Reset() { *x = SignContractRespond{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[10] + mi := &file_contract_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -803,7 +685,7 @@ func (x *SignContractRespond) String() string { func (*SignContractRespond) ProtoMessage() {} func (x *SignContractRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[10] + mi := &file_contract_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -816,7 +698,7 @@ func (x *SignContractRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use SignContractRespond.ProtoReflect.Descriptor instead. func (*SignContractRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{10} + return file_contract_proto_rawDescGZIP(), []int{8} } func (x *SignContractRespond) GetJumpUrl() string { @@ -845,7 +727,7 @@ type FinishContractRequest struct { func (x *FinishContractRequest) Reset() { *x = FinishContractRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[11] + mi := &file_contract_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -858,7 +740,7 @@ func (x *FinishContractRequest) String() string { func (*FinishContractRequest) ProtoMessage() {} func (x *FinishContractRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[11] + mi := &file_contract_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -871,7 +753,7 @@ func (x *FinishContractRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FinishContractRequest.ProtoReflect.Descriptor instead. func (*FinishContractRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{11} + return file_contract_proto_rawDescGZIP(), []int{9} } func (x *FinishContractRequest) GetTransactionId() string { @@ -900,7 +782,7 @@ type FinishContractRespond struct { func (x *FinishContractRespond) Reset() { *x = FinishContractRespond{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[12] + mi := &file_contract_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -913,7 +795,7 @@ func (x *FinishContractRespond) String() string { func (*FinishContractRespond) ProtoMessage() {} func (x *FinishContractRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[12] + mi := &file_contract_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -926,7 +808,7 @@ func (x *FinishContractRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use FinishContractRespond.ProtoReflect.Descriptor instead. func (*FinishContractRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{12} + return file_contract_proto_rawDescGZIP(), []int{10} } func (x *FinishContractRespond) GetContract() *Contracts { @@ -957,7 +839,7 @@ type ContractTxListRequest struct { func (x *ContractTxListRequest) Reset() { *x = ContractTxListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[13] + mi := &file_contract_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -970,7 +852,7 @@ func (x *ContractTxListRequest) String() string { func (*ContractTxListRequest) ProtoMessage() {} func (x *ContractTxListRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[13] + mi := &file_contract_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -983,7 +865,7 @@ func (x *ContractTxListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractTxListRequest.ProtoReflect.Descriptor instead. func (*ContractTxListRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{13} + return file_contract_proto_rawDescGZIP(), []int{11} } func (x *ContractTxListRequest) GetID() int32 { @@ -1026,7 +908,7 @@ type ContractTxListRespond struct { func (x *ContractTxListRespond) Reset() { *x = ContractTxListRespond{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[14] + mi := &file_contract_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1039,7 +921,7 @@ func (x *ContractTxListRespond) String() string { func (*ContractTxListRespond) ProtoMessage() {} func (x *ContractTxListRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[14] + mi := &file_contract_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1052,7 +934,7 @@ func (x *ContractTxListRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractTxListRespond.ProtoReflect.Descriptor instead. func (*ContractTxListRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{14} + return file_contract_proto_rawDescGZIP(), []int{12} } func (x *ContractTxListRespond) GetData() []*Contracts { @@ -1080,7 +962,7 @@ type GetContractInfoByContractUidRequest struct { func (x *GetContractInfoByContractUidRequest) Reset() { *x = GetContractInfoByContractUidRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[15] + mi := &file_contract_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1093,7 +975,7 @@ func (x *GetContractInfoByContractUidRequest) String() string { func (*GetContractInfoByContractUidRequest) ProtoMessage() {} func (x *GetContractInfoByContractUidRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[15] + mi := &file_contract_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1106,7 +988,7 @@ func (x *GetContractInfoByContractUidRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use GetContractInfoByContractUidRequest.ProtoReflect.Descriptor instead. func (*GetContractInfoByContractUidRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{15} + return file_contract_proto_rawDescGZIP(), []int{13} } func (x *GetContractInfoByContractUidRequest) GetContractUid() string { @@ -1128,7 +1010,7 @@ type GetContractInfoByContractUidRespond struct { func (x *GetContractInfoByContractUidRespond) Reset() { *x = GetContractInfoByContractUidRespond{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[16] + mi := &file_contract_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1141,7 +1023,7 @@ func (x *GetContractInfoByContractUidRespond) String() string { func (*GetContractInfoByContractUidRespond) ProtoMessage() {} func (x *GetContractInfoByContractUidRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[16] + mi := &file_contract_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1154,7 +1036,7 @@ func (x *GetContractInfoByContractUidRespond) ProtoReflect() protoreflect.Messag // Deprecated: Use GetContractInfoByContractUidRespond.ProtoReflect.Descriptor instead. func (*GetContractInfoByContractUidRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{16} + return file_contract_proto_rawDescGZIP(), []int{14} } func (x *GetContractInfoByContractUidRespond) GetData() *Contracts { @@ -1182,7 +1064,7 @@ type GetContractRequest struct { func (x *GetContractRequest) Reset() { *x = GetContractRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[17] + mi := &file_contract_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1195,7 +1077,7 @@ func (x *GetContractRequest) String() string { func (*GetContractRequest) ProtoMessage() {} func (x *GetContractRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[17] + mi := &file_contract_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1208,7 +1090,7 @@ func (x *GetContractRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetContractRequest.ProtoReflect.Descriptor instead. func (*GetContractRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{17} + return file_contract_proto_rawDescGZIP(), []int{15} } func (x *GetContractRequest) GetId() int64 { @@ -1245,7 +1127,7 @@ type UpdateContractRequest struct { func (x *UpdateContractRequest) Reset() { *x = UpdateContractRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[18] + mi := &file_contract_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1258,7 +1140,7 @@ func (x *UpdateContractRequest) String() string { func (*UpdateContractRequest) ProtoMessage() {} func (x *UpdateContractRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[18] + mi := &file_contract_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1271,7 +1153,7 @@ func (x *UpdateContractRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateContractRequest.ProtoReflect.Descriptor instead. func (*UpdateContractRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{18} + return file_contract_proto_rawDescGZIP(), []int{16} } func (x *UpdateContractRequest) GetID() uint64 { @@ -1402,7 +1284,7 @@ type UpdateContractRespond struct { func (x *UpdateContractRespond) Reset() { *x = UpdateContractRespond{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[19] + mi := &file_contract_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1415,7 +1297,7 @@ func (x *UpdateContractRespond) String() string { func (*UpdateContractRespond) ProtoMessage() {} func (x *UpdateContractRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[19] + mi := &file_contract_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1428,7 +1310,7 @@ func (x *UpdateContractRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateContractRespond.ProtoReflect.Descriptor instead. func (*UpdateContractRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{19} + return file_contract_proto_rawDescGZIP(), []int{17} } type UpdateContractTxRequest struct { @@ -1443,7 +1325,7 @@ type UpdateContractTxRequest struct { func (x *UpdateContractTxRequest) Reset() { *x = UpdateContractTxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[20] + mi := &file_contract_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1456,7 +1338,7 @@ func (x *UpdateContractTxRequest) String() string { func (*UpdateContractTxRequest) ProtoMessage() {} func (x *UpdateContractTxRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[20] + mi := &file_contract_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1469,7 +1351,7 @@ func (x *UpdateContractTxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateContractTxRequest.ProtoReflect.Descriptor instead. func (*UpdateContractTxRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{20} + return file_contract_proto_rawDescGZIP(), []int{18} } func (x *UpdateContractTxRequest) GetID() int64 { @@ -1495,7 +1377,7 @@ type UpdateContractTxRespond struct { func (x *UpdateContractTxRespond) Reset() { *x = UpdateContractTxRespond{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[21] + mi := &file_contract_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1508,7 +1390,7 @@ func (x *UpdateContractTxRespond) String() string { func (*UpdateContractTxRespond) ProtoMessage() {} func (x *UpdateContractTxRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[21] + mi := &file_contract_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1521,7 +1403,7 @@ func (x *UpdateContractTxRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateContractTxRespond.ProtoReflect.Descriptor instead. func (*UpdateContractTxRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{21} + return file_contract_proto_rawDescGZIP(), []int{19} } var File_contract_proto protoreflect.FileDescriptor @@ -1569,205 +1451,184 @@ var file_contract_proto_rawDesc = []byte{ 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x5e, 0x0a, 0x17, 0x43, 0x6f, 0x6e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x76, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, - 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x5a, 0x0a, 0x17, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x7f, 0x0a, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4c, 0x6f, 0x63, 0x6b, 0x4d, 0x67, - 0x6d, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x70, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x63, 0x0a, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4c, 0x6f, 0x63, 0x6b, 0x4d, - 0x67, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x7a, 0x0a, 0x13, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x56, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, - 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, - 0xb2, 0x02, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x1b, 0x0a, 0x08, 0x48, 0x74, 0x6d, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x68, 0x74, 0x6d, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x07, - 0x45, 0x6e, 0x76, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, - 0x6e, 0x76, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0a, 0x56, 0x69, 0x65, 0x77, 0x50, - 0x64, 0x66, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x69, 0x65, - 0x77, 0x5f, 0x70, 0x64, 0x66, 0x5f, 0x75, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0b, 0x44, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0a, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x6f, 0x12, 0x25, 0x0a, - 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x42, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x07, 0x4a, - 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x75, - 0x6d, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x61, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x25, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x5b, 0x0a, 0x15, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x30, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x73, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x6e, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x1b, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x58, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x22, 0x49, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, - 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x66, 0x0a, - 0x23, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x24, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0xfd, 0x03, 0x0a, 0x15, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, - 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, - 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x67, 0x6d, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x67, 0x6d, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 0x12, - 0x20, 0x0a, 0x0b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, - 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x69, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x4f, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x24, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, - 0x32, 0xe7, 0x06, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x12, 0x60, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, - 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x81, 0x01, - 0x0a, 0x19, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x42, 0x79, 0x4c, 0x6f, 0x63, 0x6b, 0x4d, 0x67, 0x6d, 0x74, 0x12, 0x30, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4c, 0x6f, - 0x63, 0x6b, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, - 0x4c, 0x6f, 0x63, 0x6b, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, - 0x00, 0x12, 0x5a, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5a, 0x0a, - 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x23, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x53, - 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0e, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0e, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x8a, 0x01, - 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x12, 0x33, + 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x50, + 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, + 0x6d, 0x22, 0x5a, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, + 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x7a, 0x0a, + 0x13, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, + 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x56, 0x0a, 0x13, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, + 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x22, 0xb2, 0x02, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x1b, 0x0a, 0x08, 0x48, 0x74, 0x6d, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x74, 0x6d, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, + 0x0a, 0x07, 0x45, 0x6e, 0x76, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x65, 0x6e, 0x76, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0a, 0x56, 0x69, 0x65, + 0x77, 0x50, 0x64, 0x66, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, + 0x69, 0x65, 0x77, 0x5f, 0x70, 0x64, 0x66, 0x5f, 0x75, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0b, 0x44, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x12, 0x1f, + 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x6f, 0x12, + 0x25, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x42, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x19, 0x0a, + 0x07, 0x4a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6a, 0x75, 0x6d, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x61, 0x0a, 0x15, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x5b, 0x0a, + 0x15, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x30, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x73, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x6e, 0x0a, 0x15, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x58, 0x0a, 0x15, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x04, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x22, 0x49, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0b, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x66, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x24, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0xfd, 0x03, + 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x67, 0x6d, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x67, 0x6d, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x69, 0x65, 0x77, 0x55, + 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, + 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x70, + 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x17, 0x0a, + 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x4f, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x64, 0x32, 0xe3, 0x05, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x60, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x12, 0x27, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, + 0x5a, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x0c, 0x53, + 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x53, 0x69, 0x67, + 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, - 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, - 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x12, 0x33, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x47, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, 0x3b, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1782,59 +1643,54 @@ func file_contract_proto_rawDescGZIP() []byte { return file_contract_proto_rawDescData } -var file_contract_proto_msgTypes = make([]protoimpl.MessageInfo, 22) +var file_contract_proto_msgTypes = make([]protoimpl.MessageInfo, 20) var file_contract_proto_goTypes = []interface{}{ (*Contracts)(nil), // 0: artistContract.Contracts (*CreateContractRequest)(nil), // 1: artistContract.CreateContractRequest (*CreateContractRespond)(nil), // 2: artistContract.CreateContractRespond (*ContractListMgmtRequest)(nil), // 3: artistContract.ContractListMgmtRequest (*ContractListMgmtRespond)(nil), // 4: artistContract.ContractListMgmtRespond - (*ContractHistoryByLockMgmtRequest)(nil), // 5: artistContract.ContractHistoryByLockMgmtRequest - (*ContractHistoryByLockMgmtRespond)(nil), // 6: artistContract.ContractHistoryByLockMgmtRespond - (*ContractListRequest)(nil), // 7: artistContract.ContractListRequest - (*ContractListRespond)(nil), // 8: artistContract.ContractListRespond - (*SignContractRequest)(nil), // 9: artistContract.SignContractRequest - (*SignContractRespond)(nil), // 10: artistContract.SignContractRespond - (*FinishContractRequest)(nil), // 11: artistContract.FinishContractRequest - (*FinishContractRespond)(nil), // 12: artistContract.FinishContractRespond - (*ContractTxListRequest)(nil), // 13: artistContract.ContractTxListRequest - (*ContractTxListRespond)(nil), // 14: artistContract.ContractTxListRespond - (*GetContractInfoByContractUidRequest)(nil), // 15: artistContract.GetContractInfoByContractUidRequest - (*GetContractInfoByContractUidRespond)(nil), // 16: artistContract.GetContractInfoByContractUidRespond - (*GetContractRequest)(nil), // 17: artistContract.GetContractRequest - (*UpdateContractRequest)(nil), // 18: artistContract.UpdateContractRequest - (*UpdateContractRespond)(nil), // 19: artistContract.UpdateContractRespond - (*UpdateContractTxRequest)(nil), // 20: artistContract.UpdateContractTxRequest - (*UpdateContractTxRespond)(nil), // 21: artistContract.UpdateContractTxRespond + (*ContractListRequest)(nil), // 5: artistContract.ContractListRequest + (*ContractListRespond)(nil), // 6: artistContract.ContractListRespond + (*SignContractRequest)(nil), // 7: artistContract.SignContractRequest + (*SignContractRespond)(nil), // 8: artistContract.SignContractRespond + (*FinishContractRequest)(nil), // 9: artistContract.FinishContractRequest + (*FinishContractRespond)(nil), // 10: artistContract.FinishContractRespond + (*ContractTxListRequest)(nil), // 11: artistContract.ContractTxListRequest + (*ContractTxListRespond)(nil), // 12: artistContract.ContractTxListRespond + (*GetContractInfoByContractUidRequest)(nil), // 13: artistContract.GetContractInfoByContractUidRequest + (*GetContractInfoByContractUidRespond)(nil), // 14: artistContract.GetContractInfoByContractUidRespond + (*GetContractRequest)(nil), // 15: artistContract.GetContractRequest + (*UpdateContractRequest)(nil), // 16: artistContract.UpdateContractRequest + (*UpdateContractRespond)(nil), // 17: artistContract.UpdateContractRespond + (*UpdateContractTxRequest)(nil), // 18: artistContract.UpdateContractTxRequest + (*UpdateContractTxRespond)(nil), // 19: artistContract.UpdateContractTxRespond } var file_contract_proto_depIdxs = []int32{ 0, // 0: artistContract.ContractListMgmtRespond.Data:type_name -> artistContract.Contracts - 0, // 1: artistContract.ContractHistoryByLockMgmtRespond.Data:type_name -> artistContract.Contracts - 0, // 2: artistContract.ContractListRespond.Data:type_name -> artistContract.Contracts - 0, // 3: artistContract.FinishContractRespond.Contract:type_name -> artistContract.Contracts - 0, // 4: artistContract.ContractTxListRespond.Data:type_name -> artistContract.Contracts - 0, // 5: artistContract.GetContractInfoByContractUidRespond.Data:type_name -> artistContract.Contracts - 1, // 6: artistContract.ArtistContract.CreateContract:input_type -> artistContract.CreateContractRequest - 3, // 7: artistContract.ArtistContract.ContractListMgmt:input_type -> artistContract.ContractListMgmtRequest - 5, // 8: artistContract.ArtistContract.ContractHistoryByLockMgmt:input_type -> artistContract.ContractHistoryByLockMgmtRequest - 7, // 9: artistContract.ArtistContract.ContractList:input_type -> artistContract.ContractListRequest - 9, // 10: artistContract.ArtistContract.SignContract:input_type -> artistContract.SignContractRequest - 11, // 11: artistContract.ArtistContract.FinishContract:input_type -> artistContract.FinishContractRequest - 13, // 12: artistContract.ArtistContract.ContractTxList:input_type -> artistContract.ContractTxListRequest - 15, // 13: artistContract.ArtistContract.GetContractInfoByContractUid:input_type -> artistContract.GetContractInfoByContractUidRequest - 2, // 14: artistContract.ArtistContract.CreateContract:output_type -> artistContract.CreateContractRespond - 4, // 15: artistContract.ArtistContract.ContractListMgmt:output_type -> artistContract.ContractListMgmtRespond - 6, // 16: artistContract.ArtistContract.ContractHistoryByLockMgmt:output_type -> artistContract.ContractHistoryByLockMgmtRespond - 8, // 17: artistContract.ArtistContract.ContractList:output_type -> artistContract.ContractListRespond - 10, // 18: artistContract.ArtistContract.SignContract:output_type -> artistContract.SignContractRespond - 12, // 19: artistContract.ArtistContract.FinishContract:output_type -> artistContract.FinishContractRespond - 14, // 20: artistContract.ArtistContract.ContractTxList:output_type -> artistContract.ContractTxListRespond - 16, // 21: artistContract.ArtistContract.GetContractInfoByContractUid:output_type -> artistContract.GetContractInfoByContractUidRespond - 14, // [14:22] is the sub-list for method output_type - 6, // [6:14] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 0, // 1: artistContract.ContractListRespond.Data:type_name -> artistContract.Contracts + 0, // 2: artistContract.FinishContractRespond.Contract:type_name -> artistContract.Contracts + 0, // 3: artistContract.ContractTxListRespond.Data:type_name -> artistContract.Contracts + 0, // 4: artistContract.GetContractInfoByContractUidRespond.Data:type_name -> artistContract.Contracts + 1, // 5: artistContract.ArtistContract.CreateContract:input_type -> artistContract.CreateContractRequest + 3, // 6: artistContract.ArtistContract.ContractListMgmt:input_type -> artistContract.ContractListMgmtRequest + 5, // 7: artistContract.ArtistContract.ContractList:input_type -> artistContract.ContractListRequest + 7, // 8: artistContract.ArtistContract.SignContract:input_type -> artistContract.SignContractRequest + 9, // 9: artistContract.ArtistContract.FinishContract:input_type -> artistContract.FinishContractRequest + 11, // 10: artistContract.ArtistContract.ContractTxList:input_type -> artistContract.ContractTxListRequest + 13, // 11: artistContract.ArtistContract.GetContractInfoByContractUid:input_type -> artistContract.GetContractInfoByContractUidRequest + 2, // 12: artistContract.ArtistContract.CreateContract:output_type -> artistContract.CreateContractRespond + 4, // 13: artistContract.ArtistContract.ContractListMgmt:output_type -> artistContract.ContractListMgmtRespond + 6, // 14: artistContract.ArtistContract.ContractList:output_type -> artistContract.ContractListRespond + 8, // 15: artistContract.ArtistContract.SignContract:output_type -> artistContract.SignContractRespond + 10, // 16: artistContract.ArtistContract.FinishContract:output_type -> artistContract.FinishContractRespond + 12, // 17: artistContract.ArtistContract.ContractTxList:output_type -> artistContract.ContractTxListRespond + 14, // 18: artistContract.ArtistContract.GetContractInfoByContractUid:output_type -> artistContract.GetContractInfoByContractUidRespond + 12, // [12:19] is the sub-list for method output_type + 5, // [5:12] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name } func init() { file_contract_proto_init() } @@ -1904,30 +1760,6 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContractHistoryByLockMgmtRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_contract_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContractHistoryByLockMgmtRespond); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_contract_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractListRequest); i { case 0: return &v.state @@ -1939,7 +1771,7 @@ func file_contract_proto_init() { return nil } } - file_contract_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_contract_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractListRespond); i { case 0: return &v.state @@ -1951,7 +1783,7 @@ func file_contract_proto_init() { return nil } } - file_contract_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_contract_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SignContractRequest); i { case 0: return &v.state @@ -1963,7 +1795,7 @@ func file_contract_proto_init() { return nil } } - file_contract_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_contract_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SignContractRespond); i { case 0: return &v.state @@ -1975,7 +1807,7 @@ func file_contract_proto_init() { return nil } } - file_contract_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_contract_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinishContractRequest); i { case 0: return &v.state @@ -1987,7 +1819,7 @@ func file_contract_proto_init() { return nil } } - file_contract_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_contract_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinishContractRespond); i { case 0: return &v.state @@ -1999,7 +1831,7 @@ func file_contract_proto_init() { return nil } } - file_contract_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_contract_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractTxListRequest); i { case 0: return &v.state @@ -2011,7 +1843,7 @@ func file_contract_proto_init() { return nil } } - file_contract_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_contract_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractTxListRespond); i { case 0: return &v.state @@ -2023,7 +1855,7 @@ func file_contract_proto_init() { return nil } } - file_contract_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_contract_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetContractInfoByContractUidRequest); i { case 0: return &v.state @@ -2035,7 +1867,7 @@ func file_contract_proto_init() { return nil } } - file_contract_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_contract_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetContractInfoByContractUidRespond); i { case 0: return &v.state @@ -2047,7 +1879,7 @@ func file_contract_proto_init() { return nil } } - file_contract_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_contract_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetContractRequest); i { case 0: return &v.state @@ -2059,7 +1891,7 @@ func file_contract_proto_init() { return nil } } - file_contract_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_contract_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateContractRequest); i { case 0: return &v.state @@ -2071,7 +1903,7 @@ func file_contract_proto_init() { return nil } } - file_contract_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_contract_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateContractRespond); i { case 0: return &v.state @@ -2083,7 +1915,7 @@ func file_contract_proto_init() { return nil } } - file_contract_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_contract_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateContractTxRequest); i { case 0: return &v.state @@ -2095,7 +1927,7 @@ func file_contract_proto_init() { return nil } } - file_contract_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_contract_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateContractTxRespond); i { case 0: return &v.state @@ -2114,7 +1946,7 @@ func file_contract_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_contract_proto_rawDesc, NumEnums: 0, - NumMessages: 22, + NumMessages: 20, NumExtensions: 0, NumServices: 1, }, diff --git a/pb/contract/contract.proto b/pb/contract/contract.proto index de565c5..bf0f0de 100644 --- a/pb/contract/contract.proto +++ b/pb/contract/contract.proto @@ -5,7 +5,6 @@ option go_package = "./;artistContract"; service ArtistContract { rpc CreateContract (CreateContractRequest) returns (CreateContractRespond) {} rpc ContractListMgmt (ContractListMgmtRequest) returns (ContractListMgmtRespond) {} - rpc ContractHistoryByLockMgmt (ContractHistoryByLockMgmtRequest) returns (ContractHistoryByLockMgmtRespond) {} rpc ContractList (ContractListRequest) returns (ContractListRespond) {} rpc SignContract (SignContractRequest) returns (SignContractRespond) {} rpc FinishContract (FinishContractRequest) returns (FinishContractRespond) {} @@ -49,8 +48,9 @@ message CreateContractRespond{ message ContractListMgmtRequest{ string ArtistUid = 1 [json_name = "artist_uid"]; - int32 Page = 2 [json_name = "page"]; - int32 Num = 3 [json_name = "num"]; + int32 Status = 2 [json_name = "status"]; + int32 Page = 3 [json_name = "page"]; + int32 Num = 4 [json_name = "num"]; } message ContractListMgmtRespond{ @@ -58,19 +58,6 @@ message ContractListMgmtRespond{ string Msg = 2 [json_name = "msg"]; } -message ContractHistoryByLockMgmtRequest{ - string ArtistUid = 1 [json_name = "artist_uid"]; - int32 Status = 2 [json_name = "status"]; - int32 Page = 3 [json_name = "page"]; - int32 Num = 4 [json_name = "num"]; -} - -message ContractHistoryByLockMgmtRespond{ - repeated Contracts Data = 1 [json_name = "data"]; - string Msg = 2 [json_name = "msg"]; -} - - message ContractListRequest { string ArtistUid = 1 [json_name = "artist_uid"]; int32 PageSize = 2 [json_name="pageSize"]; diff --git a/pb/contract/contract.validator.pb.go b/pb/contract/contract.validator.pb.go index a9d77ce..0fa8cde 100644 --- a/pb/contract/contract.validator.pb.go +++ b/pb/contract/contract.validator.pb.go @@ -37,19 +37,6 @@ func (this *ContractListMgmtRespond) Validate() error { } return nil } -func (this *ContractHistoryByLockMgmtRequest) Validate() error { - return nil -} -func (this *ContractHistoryByLockMgmtRespond) Validate() error { - for _, item := range this.Data { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("Data", err) - } - } - } - return nil -} func (this *ContractListRequest) Validate() error { return nil } diff --git a/pb/contract/contract_triple.pb.go b/pb/contract/contract_triple.pb.go index 4af891f..95a2e87 100644 --- a/pb/contract/contract_triple.pb.go +++ b/pb/contract/contract_triple.pb.go @@ -30,7 +30,6 @@ const _ = grpc_go.SupportPackageIsVersion7 type ArtistContractClient interface { CreateContract(ctx context.Context, in *CreateContractRequest, opts ...grpc_go.CallOption) (*CreateContractRespond, common.ErrorWithAttachment) ContractListMgmt(ctx context.Context, in *ContractListMgmtRequest, opts ...grpc_go.CallOption) (*ContractListMgmtRespond, common.ErrorWithAttachment) - ContractHistoryByLockMgmt(ctx context.Context, in *ContractHistoryByLockMgmtRequest, opts ...grpc_go.CallOption) (*ContractHistoryByLockMgmtRespond, common.ErrorWithAttachment) ContractList(ctx context.Context, in *ContractListRequest, opts ...grpc_go.CallOption) (*ContractListRespond, common.ErrorWithAttachment) SignContract(ctx context.Context, in *SignContractRequest, opts ...grpc_go.CallOption) (*SignContractRespond, common.ErrorWithAttachment) FinishContract(ctx context.Context, in *FinishContractRequest, opts ...grpc_go.CallOption) (*FinishContractRespond, common.ErrorWithAttachment) @@ -45,7 +44,6 @@ type artistContractClient struct { type ArtistContractClientImpl struct { CreateContract func(ctx context.Context, in *CreateContractRequest) (*CreateContractRespond, error) ContractListMgmt func(ctx context.Context, in *ContractListMgmtRequest) (*ContractListMgmtRespond, error) - ContractHistoryByLockMgmt func(ctx context.Context, in *ContractHistoryByLockMgmtRequest) (*ContractHistoryByLockMgmtRespond, error) ContractList func(ctx context.Context, in *ContractListRequest) (*ContractListRespond, error) SignContract func(ctx context.Context, in *SignContractRequest) (*SignContractRespond, error) FinishContract func(ctx context.Context, in *FinishContractRequest) (*FinishContractRespond, error) @@ -77,12 +75,6 @@ func (c *artistContractClient) ContractListMgmt(ctx context.Context, in *Contrac return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ContractListMgmt", in, out) } -func (c *artistContractClient) ContractHistoryByLockMgmt(ctx context.Context, in *ContractHistoryByLockMgmtRequest, opts ...grpc_go.CallOption) (*ContractHistoryByLockMgmtRespond, common.ErrorWithAttachment) { - out := new(ContractHistoryByLockMgmtRespond) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ContractHistoryByLockMgmt", in, out) -} - func (c *artistContractClient) ContractList(ctx context.Context, in *ContractListRequest, opts ...grpc_go.CallOption) (*ContractListRespond, common.ErrorWithAttachment) { out := new(ContractListRespond) interfaceKey := ctx.Value(constant.InterfaceKey).(string) @@ -119,7 +111,6 @@ func (c *artistContractClient) GetContractInfoByContractUid(ctx context.Context, type ArtistContractServer interface { CreateContract(context.Context, *CreateContractRequest) (*CreateContractRespond, error) ContractListMgmt(context.Context, *ContractListMgmtRequest) (*ContractListMgmtRespond, error) - ContractHistoryByLockMgmt(context.Context, *ContractHistoryByLockMgmtRequest) (*ContractHistoryByLockMgmtRespond, error) ContractList(context.Context, *ContractListRequest) (*ContractListRespond, error) SignContract(context.Context, *SignContractRequest) (*SignContractRespond, error) FinishContract(context.Context, *FinishContractRequest) (*FinishContractRespond, error) @@ -139,9 +130,6 @@ func (UnimplementedArtistContractServer) CreateContract(context.Context, *Create func (UnimplementedArtistContractServer) ContractListMgmt(context.Context, *ContractListMgmtRequest) (*ContractListMgmtRespond, error) { return nil, status.Errorf(codes.Unimplemented, "method ContractListMgmt not implemented") } -func (UnimplementedArtistContractServer) ContractHistoryByLockMgmt(context.Context, *ContractHistoryByLockMgmtRequest) (*ContractHistoryByLockMgmtRespond, error) { - return nil, status.Errorf(codes.Unimplemented, "method ContractHistoryByLockMgmt not implemented") -} func (UnimplementedArtistContractServer) ContractList(context.Context, *ContractListRequest) (*ContractListRespond, error) { return nil, status.Errorf(codes.Unimplemented, "method ContractList not implemented") } @@ -243,35 +231,6 @@ func _ArtistContract_ContractListMgmt_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } -func _ArtistContract_ContractHistoryByLockMgmt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(ContractHistoryByLockMgmtRequest) - 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("ContractHistoryByLockMgmt", 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 _ArtistContract_ContractList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(ContractListRequest) if err := dec(in); err != nil { @@ -432,10 +391,6 @@ var ArtistContract_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "ContractListMgmt", Handler: _ArtistContract_ContractListMgmt_Handler, }, - { - MethodName: "ContractHistoryByLockMgmt", - Handler: _ArtistContract_ContractHistoryByLockMgmt_Handler, - }, { MethodName: "ContractList", Handler: _ArtistContract_ContractList_Handler, From 5ba05220d375457dbfa23642d17b36d2bdef4d9e Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Wed, 29 Mar 2023 11:03:55 +0800 Subject: [PATCH 12/52] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=94=BB=E5=AE=B6?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E4=BF=A1=E6=81=AF=E5=AD=97=E6=AE=B5=E9=95=BF?= =?UTF-8?q?=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/model/artshow_artist_supplement.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/model/artshow_artist_supplement.go b/cmd/model/artshow_artist_supplement.go index 0de74df..c510c87 100644 --- a/cmd/model/artshow_artist_supplement.go +++ b/cmd/model/artshow_artist_supplement.go @@ -19,7 +19,7 @@ type ArtshowArtistSupplement struct { AuditMark2 string `json:"auditMark2" gorm:"column:audit_mark2;comment:审核备注2"` ArtistName string `json:"artistName" gorm:"column:artist_name;comment:"` - ArtistProfile string `json:"artistProfile" gorm:"column:artist_profile;comment:个人简介"` + ArtistProfile string `json:"artistProfile" gorm:"column:artist_profile;type:text;comment:个人简介"` CountryArtLevel int64 `json:"countryArtLevel" gorm:"column:country_art_level;default:1;comment:国家美术师级别: 1=无 2=1级 3=2级"` ArtistCertPic string `json:"artistCertPic" gorm:"column:artist_cert_pic;comment:国家美术师证书"` BankNum string `json:"bank_num" gorm:"column:bank_num;comment:开户行"` From fc8b822a53db31fbdb67ad178999fd58d3e90603 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Wed, 29 Mar 2023 22:37:23 +0800 Subject: [PATCH 13/52] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=BB=E5=AE=B6?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=BB=9F=E8=AE=A1=E6=8E=A5=E5=8F=A3=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=88=86=E9=A1=B5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index 78bdc4a..640d5b9 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -253,7 +253,7 @@ func (a ArtistInfoArtworkLogic) ArtworkStatic(request *artistInfoArtwork.ArtistA PageSize: int64(request.PageSize), Total: total, } - viewDatas, err := dao.PassedArtworkStatic(request, artistUids) + viewDatas, err := dao.PassedArtworkStatic(&artistInfoArtwork.ArtistArtworkStaticRequest{Page: 1, PageSize: -1}, artistUids) if err != nil { return nil, err } From 0af56855e0e4e611d5967a4b81365d9facf3c937 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Wed, 29 Mar 2023 23:02:27 +0800 Subject: [PATCH 14/52] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=8F=96=E5=80=BC=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistinfo_artwork.go | 14 +++++++++----- cmd/internal/logic/artistinfo_artwork.go | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/cmd/internal/dao/artistinfo_artwork.go b/cmd/internal/dao/artistinfo_artwork.go index dcaeee4..a35db91 100644 --- a/cmd/internal/dao/artistinfo_artwork.go +++ b/cmd/internal/dao/artistinfo_artwork.go @@ -294,17 +294,21 @@ func CountArtworkTotalWhichAuditPassed(artistUid string) (rulerPassedTotal int64 // CountAllArtworkTotal 单个统计画家所有的画作数量和平尺数 func CountAllArtworkTotal(artistUid string) (artworkTotal int64, artworkRulerTotal int64) { + //查询画家宝中的画作总数 + var artworkUids []string + db.DB.Model(model.ArtworkLockRecord{}).Where("artist_uid = ?", artistUid).Pluck("artwork_uid", &artworkUids) + artworkTotal = int64(len(artworkUids)) //查询此画家的所有画作 - artworkList, err := service.ArtworkQueryImpl.ArtworkList(context.Background(), &artwork_query.ArtworkListRequest{ - Page: 1, - PageSize: -1, - ArtistUid: artistUid, + artworkList, err := service.ArtworkQueryImpl.ArtworkPreviewList(context.Background(), &artwork_query.ArtworkPreviewListRequest{ + Page: 1, + PageSize: -1, + ArtistUid: artistUid, + ArtworkUids: artworkUids, }) if err != nil { fmt.Println("画作列表查询失败", err.Error()) return 0, 0 } - artworkTotal = int64(artworkList.Count) for _, v := range artworkList.Data { artworkRulerTotal += int64(v.Ruler) } diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index 78bdc4a..748fd81 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -269,7 +269,7 @@ func (a ArtistInfoArtworkLogic) ArtworkStatic(request *artistInfoArtwork.ArtistA //统计画家素有画作的总数和总平尺数 artworkTotal, rulerTotal = dao.CountAllArtworkTotal(v.ArtistUid) //统计审核通过的画作总数和平尺总数 - passedArtworkTotal, passedRulerTotal = dao.CountArtworkTotalWhichAuditPassed(v.ArtistUid) + passedRulerTotal, passedArtworkTotal = dao.CountArtworkTotalWhichAuditPassed(v.ArtistUid) //补充画家信息 for _, artistData := range artistList.Data { if artistData.Uid == v.ArtistUid { From 01b8c6c6e232570808800ea093a7b6e6a4f0d5d9 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Wed, 29 Mar 2023 23:05:50 +0800 Subject: [PATCH 15/52] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=8F=96=E5=80=BC=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index 748fd81..78bdc4a 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -269,7 +269,7 @@ func (a ArtistInfoArtworkLogic) ArtworkStatic(request *artistInfoArtwork.ArtistA //统计画家素有画作的总数和总平尺数 artworkTotal, rulerTotal = dao.CountAllArtworkTotal(v.ArtistUid) //统计审核通过的画作总数和平尺总数 - passedRulerTotal, passedArtworkTotal = dao.CountArtworkTotalWhichAuditPassed(v.ArtistUid) + passedArtworkTotal, passedRulerTotal = dao.CountArtworkTotalWhichAuditPassed(v.ArtistUid) //补充画家信息 for _, artistData := range artistList.Data { if artistData.Uid == v.ArtistUid { From 496e1927653b76a614e8282360fe3382308efe9c Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Wed, 29 Mar 2023 23:07:28 +0800 Subject: [PATCH 16/52] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E4=BC=A0=E5=8F=82=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index 78bdc4a..640d5b9 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -253,7 +253,7 @@ func (a ArtistInfoArtworkLogic) ArtworkStatic(request *artistInfoArtwork.ArtistA PageSize: int64(request.PageSize), Total: total, } - viewDatas, err := dao.PassedArtworkStatic(request, artistUids) + viewDatas, err := dao.PassedArtworkStatic(&artistInfoArtwork.ArtistArtworkStaticRequest{Page: 1, PageSize: -1}, artistUids) if err != nil { return nil, err } From 094a1d78b6b7f50f5ba009b8a64e403e52ff1373 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Wed, 29 Mar 2023 23:16:39 +0800 Subject: [PATCH 17/52] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=8F=96=E5=80=BC=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index 640d5b9..9db2bf1 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -269,7 +269,7 @@ func (a ArtistInfoArtworkLogic) ArtworkStatic(request *artistInfoArtwork.ArtistA //统计画家素有画作的总数和总平尺数 artworkTotal, rulerTotal = dao.CountAllArtworkTotal(v.ArtistUid) //统计审核通过的画作总数和平尺总数 - passedArtworkTotal, passedRulerTotal = dao.CountArtworkTotalWhichAuditPassed(v.ArtistUid) + passedRulerTotal, passedArtworkTotal = dao.CountArtworkTotalWhichAuditPassed(v.ArtistUid) //补充画家信息 for _, artistData := range artistList.Data { if artistData.Uid == v.ArtistUid { From 8f8a8208b90976855c61f44a45e2673a00375d7c Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Wed, 29 Mar 2023 23:39:04 +0800 Subject: [PATCH 18/52] =?UTF-8?q?=E6=9B=B4=E6=96=B0pb=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistinfo_artwork.go | 13 +- pb/artistInfoArtwork/artistinfoArtwork.pb.go | 515 ++++++++++-------- .../artistinfoArtwork.pb.validate.go | 10 + pb/artistinfoArtwork.proto | 5 + 4 files changed, 308 insertions(+), 235 deletions(-) diff --git a/cmd/internal/dao/artistinfo_artwork.go b/cmd/internal/dao/artistinfo_artwork.go index a35db91..16a25bf 100644 --- a/cmd/internal/dao/artistinfo_artwork.go +++ b/cmd/internal/dao/artistinfo_artwork.go @@ -121,6 +121,10 @@ func GetArtworkLockRecords(req *artistInfoArtwork.GetArtworkLockRecordsRequest) datas = []model.ArtworkLockRecord{} tx = db.DB.Model(model.ArtworkLockRecord{}).Order("lock_time desc") ) + if req.Page == 0 || req.PageSize == 0 { + req.Page = 1 + req.PageSize = -1 + } resp = &artistInfoArtwork.ArtworkLockList{} if req.ArtistUid != "" { tx = tx.Where("artist_uid = ?", req.ArtistUid) @@ -152,7 +156,7 @@ func GetArtworkLockRecords(req *artistInfoArtwork.GetArtworkLockRecordsRequest) if len(req.ArtworkUids) > 0 { tx = tx.Where("artwork_uid in ?", req.ArtworkUids) } - err = tx.Find(&datas).Error + err = tx.Count(&resp.Total).Scopes(db.Pagination(req.Page, req.PageSize)).Find(&datas).Error for _, v := range datas { resp.Data = append(resp.Data, &artistInfoArtwork.ArtistLockInfo{ ArtistUid: v.ArtistUid, @@ -171,6 +175,13 @@ func GetArtworkLockRecords(req *artistInfoArtwork.GetArtworkLockRecordsRequest) DeletedAt: int64(v.DeletedAt), }) } + + resp.Page = req.Page + if req.PageSize == -1 { + resp.PageSize = int64(len(datas)) + } else { + resp.PageSize = req.PageSize + } return } func HasBeenLocked(artistUid string) bool { diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.go index 4d395bb..7ffc800 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.go @@ -367,6 +367,8 @@ type GetArtworkLockRecordsRequest struct { BaseAuditStatus int64 `protobuf:"varint,3,opt,name=baseAuditStatus,proto3" json:"baseAuditStatus,omitempty"` //基本信息审批状态 可选 SupplementAuditStatus int64 `protobuf:"varint,4,opt,name=supplementAuditStatus,proto3" json:"supplementAuditStatus,omitempty"` //基本信息审批状态 可选 ArtworkUids []string `protobuf:"bytes,5,rep,name=artworkUids,proto3" json:"artworkUids,omitempty"` //画作uid列表 + Page int64 `protobuf:"varint,6,opt,name=page,proto3" json:"page,omitempty"` + PageSize int64 `protobuf:"varint,7,opt,name=pageSize,proto3" json:"pageSize,omitempty"` } func (x *GetArtworkLockRecordsRequest) Reset() { @@ -436,6 +438,20 @@ func (x *GetArtworkLockRecordsRequest) GetArtworkUids() []string { return nil } +func (x *GetArtworkLockRecordsRequest) GetPage() int64 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetArtworkLockRecordsRequest) GetPageSize() int64 { + if x != nil { + return x.PageSize + } + return 0 +} + type ArtistLockInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -612,7 +628,10 @@ type ArtworkLockList struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data []*ArtistLockInfo `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` //画作uid列表 + Data []*ArtistLockInfo `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` //画作uid列表 + Page int64 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` + PageSize int64 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + Total int64 `protobuf:"varint,4,opt,name=total,proto3" json:"total,omitempty"` } func (x *ArtworkLockList) Reset() { @@ -654,6 +673,27 @@ func (x *ArtworkLockList) GetData() []*ArtistLockInfo { return nil } +func (x *ArtworkLockList) GetPage() int64 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *ArtworkLockList) GetPageSize() int64 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ArtworkLockList) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + type ArtworkUidList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1611,7 +1651,7 @@ var file_pb_artistinfoArtwork_proto_rawDesc = []byte{ 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, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, - 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x86, 0x02, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, + 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb6, 0x02, 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, @@ -1628,6 +1668,9 @@ var file_pb_artistinfoArtwork_proto_rawDesc = []byte{ 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xec, 0x04, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, @@ -1667,241 +1710,245 @@ var file_pb_artistinfoArtwork_proto_rawDesc = []byte{ 0x2e, 0x0a, 0x12, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, - 0x41, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x32, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, - 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, - 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x55, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, - 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x22, - 0xf2, 0x05, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, - 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, - 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x0a, - 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x87, 0x01, 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, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x32, 0x0a, 0x0e, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3e, 0x0a, + 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x61, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, + 0x1c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x47, + 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, + 0xba, 0xe9, 0xc0, 0x03, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x22, 0xf2, 0x05, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, + 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, + 0x6c, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, + 0x05, 0x68, 0x64, 0x50, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x64, + 0x50, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, + 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, + 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x24, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, + 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x12, 0x34, 0x0a, + 0x15, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x73, 0x75, + 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x32, 0x0a, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, + 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x32, 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, - 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, 0x22, 0xba, 0x01, 0x0a, 0x1a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, - 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, - 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, - 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xad, - 0x03, 0x0a, 0x1d, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x10, 0x0a, 0x03, 0x49, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x49, - 0x64, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x4c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x28, 0x0a, 0x0f, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x4c, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, - 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x65, - 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x65, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, - 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, - 0x72, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x50, 0x61, - 0x73, 0x73, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2e, - 0x0a, 0x12, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x50, 0x61, 0x73, 0x73, - 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xa2, - 0x01, 0x0a, 0x1b, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 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, 0x22, 0xba, 0x01, 0x0a, 0x1a, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x12, + 0x22, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x47, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xad, 0x03, 0x0a, 0x1d, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x2a, 0xc9, 0x01, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x6f, 0x6e, 0x10, - 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x6f, 0x77, 0x4c, - 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x02, 0x12, 0x17, - 0x0a, 0x13, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x6e, 0x64, 0x4c, - 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x6f, 0x77, 0x41, 0x75, - 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x66, 0x42, 0x61, 0x73, 0x65, 0x10, 0x04, 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, 0x05, - 0x12, 0x14, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x6c, 0x6c, 0x41, 0x75, 0x64, - 0x69, 0x74, 0x50, 0x61, 0x73, 0x73, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x07, 0x32, - 0x84, 0x09, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x66, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5e, 0x0a, - 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x60, 0x0a, - 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, - 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, - 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, - 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, - 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, - 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, - 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 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, 0x12, 0x68, 0x0a, 0x13, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x63, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x64, 0x78, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x4c, + 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x4c, 0x6f, 0x63, + 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, + 0x26, 0x0a, 0x0e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4c, + 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4c, 0x61, 0x74, 0x65, 0x73, + 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x50, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x50, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x67, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, 0x61, 0x67, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x75, 0x6c, + 0x65, 0x72, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x52, + 0x75, 0x6c, 0x65, 0x72, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x50, 0x61, 0x73, + 0x73, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x10, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x72, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x12, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xa2, 0x01, 0x0a, 0x1b, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x01, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x74, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x2a, 0xc9, 0x01, 0x0a, 0x10, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x07, 0x0a, 0x03, 0x4e, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x77, 0x50, + 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x01, 0x12, + 0x14, 0x0a, 0x10, 0x4e, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, + 0x61, 0x76, 0x65, 0x41, 0x6e, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x03, 0x12, 0x16, + 0x0a, 0x12, 0x4e, 0x6f, 0x77, 0x41, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x66, + 0x42, 0x61, 0x73, 0x65, 0x10, 0x04, 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, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x55, 0x6e, + 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x06, 0x12, 0x17, 0x0a, + 0x13, 0x41, 0x6c, 0x6c, 0x41, 0x75, 0x64, 0x69, 0x74, 0x50, 0x61, 0x73, 0x73, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x07, 0x32, 0x84, 0x09, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x66, 0x0a, 0x17, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, + 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, + 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, + 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x28, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, + 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, + 0x5d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, + 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, + 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x6c, + 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, + 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 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, 0x12, 0x68, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x16, 0x5a, + 0x14, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go b/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go index 31347e7..7feb535 100644 --- a/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go +++ b/pb/artistInfoArtwork/artistinfoArtwork.pb.validate.go @@ -591,6 +591,10 @@ func (m *GetArtworkLockRecordsRequest) validate(all bool) error { // no validation rules for SupplementAuditStatus + // no validation rules for Page + + // no validation rules for PageSize + if len(errors) > 0 { return GetArtworkLockRecordsRequestMultiError(errors) } @@ -860,6 +864,12 @@ func (m *ArtworkLockList) validate(all bool) error { } + // no validation rules for Page + + // no validation rules for PageSize + + // no validation rules for Total + if len(errors) > 0 { return ArtworkLockListMultiError(errors) } diff --git a/pb/artistinfoArtwork.proto b/pb/artistinfoArtwork.proto index 34297d6..93e2084 100644 --- a/pb/artistinfoArtwork.proto +++ b/pb/artistinfoArtwork.proto @@ -57,6 +57,8 @@ message GetArtworkLockRecordsRequest{ int64 baseAuditStatus =3; //基本信息审批状态 可选 int64 supplementAuditStatus =4; //基本信息审批状态 可选 repeated string artworkUids=5; //画作uid列表 + int64 page=6; + int64 pageSize=7; } message ArtistLockInfo{ @@ -86,6 +88,9 @@ message ArtistLockInfo{ message ArtworkLockList{ repeated ArtistLockInfo data =1; //画作uid列表 + int64 page =2; + int64 pageSize =3; + int64 total=4; } message ArtworkUidList{ From 8823cf4e9c89d9326d39ceee790682fcdc41d363 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Thu, 30 Mar 2023 11:06:01 +0800 Subject: [PATCH 19/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E7=9A=84=E6=9F=A5=E8=AF=A2=E8=A1=A8=E4=B8=BA?= =?UTF-8?q?invite?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistInfo_user.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/internal/dao/artistInfo_user.go b/cmd/internal/dao/artistInfo_user.go index 6af2715..9e8ae6c 100644 --- a/cmd/internal/dao/artistInfo_user.go +++ b/cmd/internal/dao/artistInfo_user.go @@ -966,7 +966,7 @@ func GetInvitedUserList(in *artistInfoUser.GetInvitedUserListRequest) (res *arti Page: &artistInfoUser.UserCommonPageInfo{}, } var inviteRelationIds []int64 - db.DB.Model(model.UserInvited{}).Where("BINARY invite_code = ?", in.InviterCode).Pluck("invited_user_id", &inviteRelationIds) + db.DB.Model(model.Invite{}).Where("BINARY invite_code = ?", in.InviterCode).Pluck("user_id", &inviteRelationIds) var invitedList []model.User orm := db.DB.Model(model.User{}).Preload("RealNameInfo"). Joins("LEFT JOIN real_name rn ON rn.id = sys_user.real_name_id"). From b322fbb8f2287588c34b8d3bd54374bcac1613f4 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Thu, 30 Mar 2023 11:14:21 +0800 Subject: [PATCH 20/52] =?UTF-8?q?=20=E4=BF=AE=E6=94=B9=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E7=9A=84=E4=B8=BB=E8=A1=A8=E4=B8=BAinvite?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistInfo_user.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/internal/dao/artistInfo_user.go b/cmd/internal/dao/artistInfo_user.go index 9e8ae6c..5f305ce 100644 --- a/cmd/internal/dao/artistInfo_user.go +++ b/cmd/internal/dao/artistInfo_user.go @@ -1134,7 +1134,7 @@ func GetInviteStaticList(in *artistInfoUser.GetInviteStaticListRequest) (res *ar }} orm := db.DB. Select("ui.invite_code,max(rn.name) real_name, max(su.tel_num) tel_num,max(su.mgmt_artist_uid) artist_uid,count(ui.invited_code) invited_count "). - Table(model.UserInvited{}.TableName() + " AS ui"). + Table(model.Invite{}.TableName() + " AS ui"). Joins(fmt.Sprintf("LEFT JOIN %v su ON BINARY su.invited_code =BINARY ui.invite_code", model.User{}.TableName())). Joins((fmt.Sprintf("LEFT JOIN %v rn ON rn.id = su.real_name_id", model.RealName{}.TableName()))). Where("su.deleted_at=0"). From 76bd87638127a1e29b97c8092cba0406027e6596 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Thu, 30 Mar 2023 11:22:31 +0800 Subject: [PATCH 21/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2=E7=9A=84=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistInfo_user.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/internal/dao/artistInfo_user.go b/cmd/internal/dao/artistInfo_user.go index 5f305ce..a8d2a71 100644 --- a/cmd/internal/dao/artistInfo_user.go +++ b/cmd/internal/dao/artistInfo_user.go @@ -966,7 +966,7 @@ func GetInvitedUserList(in *artistInfoUser.GetInvitedUserListRequest) (res *arti Page: &artistInfoUser.UserCommonPageInfo{}, } var inviteRelationIds []int64 - db.DB.Model(model.Invite{}).Where("BINARY invite_code = ?", in.InviterCode).Pluck("user_id", &inviteRelationIds) + db.DB.Model(model.Invite{}).Where("BINARY invite_code = ?", in.InviterCode).Pluck("invited_id", &inviteRelationIds) var invitedList []model.User orm := db.DB.Model(model.User{}).Preload("RealNameInfo"). Joins("LEFT JOIN real_name rn ON rn.id = sys_user.real_name_id"). From 17a1dd464833d5236afb62e4a3f27487ffcfecef Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Thu, 30 Mar 2023 14:30:25 +0800 Subject: [PATCH 22/52] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E8=BA=AB=E4=BB=BD=E8=AF=81=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_user.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/internal/controller/artistInfo_user.go b/cmd/internal/controller/artistInfo_user.go index 91dd69d..cdb9c69 100644 --- a/cmd/internal/controller/artistInfo_user.go +++ b/cmd/internal/controller/artistInfo_user.go @@ -9,6 +9,7 @@ import ( "github.com/fonchain/fonchain-artistinfo/pb/artistInfoUser" db "github.com/fonchain/fonchain-artistinfo/pkg/db" "gorm.io/gorm" + "gorm.io/gorm/clause" "github.com/fonchain/fonchain-artistinfo/cmd/internal/logic" ) @@ -82,7 +83,7 @@ func (a *ArtistInfoUserProvider) UpdateIdCard(ctx context.Context, in *artistInf if in.Birthday != "" { thisUser.RealNameInfo.Birthday = in.Birthday } - err = db.DB.Session(&gorm.Session{FullSaveAssociations: true}).Save(&thisUser).Error + err = db.DB.Session(&gorm.Session{FullSaveAssociations: true}).Clauses(clause.OnConflict{UpdateAll: true}).Save(&thisUser).Error return } From c3aff4f68ec007286cf58f8049f4c612312e6e2d Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Thu, 30 Mar 2023 14:38:11 +0800 Subject: [PATCH 23/52] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E8=AF=81=E4=BB=B6=E4=BF=A1=E6=81=AF=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_user.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/internal/controller/artistInfo_user.go b/cmd/internal/controller/artistInfo_user.go index cdb9c69..05db8b6 100644 --- a/cmd/internal/controller/artistInfo_user.go +++ b/cmd/internal/controller/artistInfo_user.go @@ -55,7 +55,8 @@ func (a *ArtistInfoUserProvider) RegisterUser(ctx context.Context, req *artistIn func (a *ArtistInfoUserProvider) UpdateIdCard(ctx context.Context, in *artistInfoUser.UpdateIdCardRequest) (rep *artistInfoUser.CommonNoParams, err error) { var thisUser model.User - db.DB.Where("mgmt_acc_id = ?", in.MgmtAccId).Preload("RealNameInfo").Find(&thisUser) + db.DB.Unscoped().Where("mgmt_acc_id = ?", in.MgmtAccId).Preload("RealNameInfo").Find(&thisUser) + thisUser.DeletedAt = 0 if thisUser.RealNameInfo == nil { thisUser.RealNameInfo = &model.RealName{} } From 69a4b2cefee4968432b1291128805dd1c9d1f6ad Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Thu, 30 Mar 2023 14:52:22 +0800 Subject: [PATCH 24/52] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=94=9F=E6=88=90?= =?UTF-8?q?=E7=94=BB=E5=B1=95=E8=A7=86=E9=A2=91=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistinfo_artshow_video.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cmd/internal/dao/artistinfo_artshow_video.go b/cmd/internal/dao/artistinfo_artshow_video.go index d2bcad1..12c9167 100644 --- a/cmd/internal/dao/artistinfo_artshow_video.go +++ b/cmd/internal/dao/artistinfo_artshow_video.go @@ -23,6 +23,11 @@ func (a artistinfoArtshowVideo) BatchCreateData(datas []model.ArtshowVideoRecord //return db.DB.Create(&datas).Error tx := db.DB.Begin() for _, v := range datas { + var exist model.ArtshowVideoRecord + db.DB.Where("artist_uid = ? AND lock_time =?", v.ArtistUid, v.LockTime).Find(&exist) + if exist.ID != 0 { + continue + } err := a.CreateData(&v, tx) if err != nil { return err From 5c231b338b2e09332893c8a3b1d868bd80fab614 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Thu, 30 Mar 2023 15:46:26 +0800 Subject: [PATCH 25/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=94=AF=E4=B8=80?= =?UTF-8?q?=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/model/user.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/model/user.go b/cmd/model/user.go index 90373b8..5c1b183 100644 --- a/cmd/model/user.go +++ b/cmd/model/user.go @@ -3,10 +3,10 @@ package model // User 用户模型 type User struct { Model - MgmtAccId int64 `gorm:"column:mgmt_acc_id;not null;uniqueIndex:mgmt_acc_mgmt_artist_tel_uid_tel_num;comment:账号id"` + MgmtAccId int64 `gorm:"column:mgmt_acc_id;not null;comment:账号id"` //;uniqueIndex:mgmt_acc_mgmt_artist_tel_uid_tel_num MgmtArtistId int64 `gorm:"column:mgmt_artist_id;not null;comment:艺术家id"` - MgmtArtistUid string `gorm:"column:mgmt_artist_uid;type:varchar(256);uniqueIndex:mgmt_acc_mgmt_artist_uid_tel_num;comment:艺术家uid"` - TelNum string `gorm:"column:tel_num;type:varchar(20);uniqueIndex:mgmt_acc_mgmt_artist_uid_tel_num;not null;电话号码"` + MgmtArtistUid string `gorm:"column:mgmt_artist_uid;type:varchar(256);comment:艺术家uid"` //;uniqueIndex:mgmt_acc_mgmt_artist_uid_tel_num + TelNum string `gorm:"column:tel_num;type:varchar(20);not null;电话号码"` //;uniqueIndex:mgmt_acc_mgmt_artist_uid_tel_num InviteCode string `gorm:"column:invited_code;type:varchar(16);default:'';comment:个人邀请码"` InvitedBy *Invite `gorm:"foreignKey:InvitedId"` //邀请者的相关信息 Account string `gorm:"column:account;varchar(191);comment:账号"` From 60495e4471d59a02ffb61d8e918516e07a19e316 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 09:27:49 +0800 Subject: [PATCH 26/52] =?UTF-8?q?=E9=82=80=E8=AF=B7=E5=85=B3=E7=B3=BB?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7id?= =?UTF-8?q?=E5=85=B3=E8=81=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_user.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmd/internal/controller/artistInfo_user.go b/cmd/internal/controller/artistInfo_user.go index 05db8b6..95a1325 100644 --- a/cmd/internal/controller/artistInfo_user.go +++ b/cmd/internal/controller/artistInfo_user.go @@ -169,8 +169,8 @@ func (a *ArtistInfoUserProvider) GetUserMsg(ctx context.Context, req *artistInfo // 绑定邀请人和受邀请人的账号,并加入到次数统计 func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, in *artistInfoUser.BindInviteInvitedAccountRequest) (res *artistInfoUser.BindInviteInvitedAccountRespond, err error) { // 查询受邀请人是否存在 + var thisUser model.User if in.InvitedUserId == 0 { - var thisUser model.User if err = db.DB.Where("id = ? AND invite_code = ?", in.InvitedUserId, in.InviteCode).First(&thisUser).Error; err != nil { if err == gorm.ErrRecordNotFound { return nil, errors.New("受邀请人不存在") @@ -186,6 +186,7 @@ func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, i } if data.ID == 0 { data = model.Invite{ + UserId: int32(thisUser.ID), InvitedId: in.InvitedUserId, InvitedCode: in.InvitedCode, InviteCode: in.InviteCode, @@ -202,6 +203,7 @@ func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, i } if countData.ID == 0 { countData = model.UserInvited{ + UserId: int32(thisUser.ID), InvitedUserId: in.InvitedUserId, //受邀请人的画家宝用户id Count: 1, InvitedCode: in.InvitedCode, From 13f0e73fa09336fdee669b7c45d9e293812d012a Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 09:40:29 +0800 Subject: [PATCH 27/52] =?UTF-8?q?=E5=A6=82=E6=9E=9C=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E7=A0=81=E5=AD=98=E5=9C=A8=E5=88=99=E5=88=B7=E6=96=B0=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_user.go | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/cmd/internal/controller/artistInfo_user.go b/cmd/internal/controller/artistInfo_user.go index 95a1325..0994ae9 100644 --- a/cmd/internal/controller/artistInfo_user.go +++ b/cmd/internal/controller/artistInfo_user.go @@ -184,16 +184,13 @@ func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, i if err = db.DB.Where("invited_id = ?", in.InvitedUserId).Find(&data).Error; err != nil { return nil, err } - if data.ID == 0 { - data = model.Invite{ - UserId: int32(thisUser.ID), - InvitedId: in.InvitedUserId, - InvitedCode: in.InvitedCode, - InviteCode: in.InviteCode, - } - if err = db.DB.Create(&data).Error; err != nil { - return nil, err - } + data.UserId = int32(thisUser.ID) + data.InvitedId = in.InvitedUserId + data.InvitedCode = in.InvitedCode + data.InviteCode = in.InviteCode + //如果数据存更新刷新时间 + if err = db.DB.Save(&data).Error; err != nil { + return nil, err } // 添加到次数统计 From 7dabf560b9d9ba77d28171945677724f6c172bca Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 10:07:39 +0800 Subject: [PATCH 28/52] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B0=83=E8=AF=95?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_user.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/internal/controller/artistInfo_user.go b/cmd/internal/controller/artistInfo_user.go index 0994ae9..6d575e2 100644 --- a/cmd/internal/controller/artistInfo_user.go +++ b/cmd/internal/controller/artistInfo_user.go @@ -189,7 +189,7 @@ func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, i data.InvitedCode = in.InvitedCode data.InviteCode = in.InviteCode //如果数据存更新刷新时间 - if err = db.DB.Save(&data).Error; err != nil { + if err = db.DB.Debug().Save(&data).Error; err != nil { return nil, err } From b4105ab312e691a2d6be9c9e101c8be79170f932 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 11:18:56 +0800 Subject: [PATCH 29/52] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E7=A0=81=E7=BB=91=E5=AE=9A=E7=9A=84=E5=88=A4=E6=96=AD=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_user.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/internal/controller/artistInfo_user.go b/cmd/internal/controller/artistInfo_user.go index 6d575e2..18fd6fb 100644 --- a/cmd/internal/controller/artistInfo_user.go +++ b/cmd/internal/controller/artistInfo_user.go @@ -168,12 +168,12 @@ func (a *ArtistInfoUserProvider) GetUserMsg(ctx context.Context, req *artistInfo // 绑定邀请人和受邀请人的账号,并加入到次数统计 func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, in *artistInfoUser.BindInviteInvitedAccountRequest) (res *artistInfoUser.BindInviteInvitedAccountRespond, err error) { - // 查询受邀请人是否存在 + // 查询邀请人是否存在 var thisUser model.User if in.InvitedUserId == 0 { - if err = db.DB.Where("id = ? AND invite_code = ?", in.InvitedUserId, in.InviteCode).First(&thisUser).Error; err != nil { + if err = db.DB.Where("invited_code = ?", in.InviteCode).First(&thisUser).Error; err != nil { if err == gorm.ErrRecordNotFound { - return nil, errors.New("受邀请人不存在") + return nil, errors.New("邀请人不存在") } else { return nil, err } From fe0989ac14832cb7a46a596dbb833c203a66ff3f Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 11:31:03 +0800 Subject: [PATCH 30/52] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_user.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/internal/controller/artistInfo_user.go b/cmd/internal/controller/artistInfo_user.go index 18fd6fb..9ba1f07 100644 --- a/cmd/internal/controller/artistInfo_user.go +++ b/cmd/internal/controller/artistInfo_user.go @@ -181,7 +181,7 @@ func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, i } var data model.Invite // 受邀请者只能绑定一个邀请人 - if err = db.DB.Where("invited_id = ?", in.InvitedUserId).Find(&data).Error; err != nil { + if err = db.DB.Where("invite_code = ? AND invited_code = ?", in.InviteCode, in.InvitedCode).Find(&data).Error; err != nil { return nil, err } data.UserId = int32(thisUser.ID) From 91bcc4843d427cf9a682ca251c31d4766f0b75a5 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 11:35:03 +0800 Subject: [PATCH 31/52] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B0=83=E8=AF=95?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_user.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/internal/controller/artistInfo_user.go b/cmd/internal/controller/artistInfo_user.go index 9ba1f07..a030285 100644 --- a/cmd/internal/controller/artistInfo_user.go +++ b/cmd/internal/controller/artistInfo_user.go @@ -179,6 +179,7 @@ func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, i } } } + fmt.Println("邀请人userId:", thisUser.ID) var data model.Invite // 受邀请者只能绑定一个邀请人 if err = db.DB.Where("invite_code = ? AND invited_code = ?", in.InviteCode, in.InvitedCode).Find(&data).Error; err != nil { From f83b160745e1932bd22333d9274395ec0eb8c7cb Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 11:37:34 +0800 Subject: [PATCH 32/52] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B0=83=E8=AF=95?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_user.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/internal/controller/artistInfo_user.go b/cmd/internal/controller/artistInfo_user.go index a030285..ea2909c 100644 --- a/cmd/internal/controller/artistInfo_user.go +++ b/cmd/internal/controller/artistInfo_user.go @@ -171,7 +171,7 @@ func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, i // 查询邀请人是否存在 var thisUser model.User if in.InvitedUserId == 0 { - if err = db.DB.Where("invited_code = ?", in.InviteCode).First(&thisUser).Error; err != nil { + if err = db.DB.Debug().Where("invited_code = ?", in.InviteCode).First(&thisUser).Error; err != nil { if err == gorm.ErrRecordNotFound { return nil, errors.New("邀请人不存在") } else { @@ -182,7 +182,7 @@ func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, i fmt.Println("邀请人userId:", thisUser.ID) var data model.Invite // 受邀请者只能绑定一个邀请人 - if err = db.DB.Where("invite_code = ? AND invited_code = ?", in.InviteCode, in.InvitedCode).Find(&data).Error; err != nil { + if err = db.DB.Debug().Where("invite_code = ? AND invited_code = ?", in.InviteCode, in.InvitedCode).Find(&data).Error; err != nil { return nil, err } data.UserId = int32(thisUser.ID) From 9315e1501182905ba5f36362947429ff46620944 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 11:42:49 +0800 Subject: [PATCH 33/52] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E4=B8=8D=E5=88=B0=E9=82=80=E8=AF=B7=E4=BA=BAid=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_user.go | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/cmd/internal/controller/artistInfo_user.go b/cmd/internal/controller/artistInfo_user.go index ea2909c..d67f3e3 100644 --- a/cmd/internal/controller/artistInfo_user.go +++ b/cmd/internal/controller/artistInfo_user.go @@ -168,24 +168,34 @@ func (a *ArtistInfoUserProvider) GetUserMsg(ctx context.Context, req *artistInfo // 绑定邀请人和受邀请人的账号,并加入到次数统计 func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, in *artistInfoUser.BindInviteInvitedAccountRequest) (res *artistInfoUser.BindInviteInvitedAccountRespond, err error) { - // 查询邀请人是否存在 - var thisUser model.User + // 查询被邀请人是否存在 + var invitedUser model.User if in.InvitedUserId == 0 { - if err = db.DB.Debug().Where("invited_code = ?", in.InviteCode).First(&thisUser).Error; err != nil { + if err = db.DB.Debug().Where("invited_code = ?", in.InviteCode).First(&invitedUser).Error; err != nil { if err == gorm.ErrRecordNotFound { - return nil, errors.New("邀请人不存在") + return nil, errors.New("被邀请人不存在") } else { return nil, err } } } - fmt.Println("邀请人userId:", thisUser.ID) + // 查询邀请人是否存在 + var inviteUser model.User + if err = db.DB.Debug().Where("invited_code = ?", in.InviteCode).First(&inviteUser).Error; err != nil { + if err == gorm.ErrRecordNotFound { + return nil, errors.New("邀请人不存在") + } else { + return nil, err + } + } + fmt.Println("邀请人userId:", inviteUser.ID) + fmt.Println("被邀请人userId:", invitedUser.ID) var data model.Invite // 受邀请者只能绑定一个邀请人 if err = db.DB.Debug().Where("invite_code = ? AND invited_code = ?", in.InviteCode, in.InvitedCode).Find(&data).Error; err != nil { return nil, err } - data.UserId = int32(thisUser.ID) + data.UserId = int32(inviteUser.ID) data.InvitedId = in.InvitedUserId data.InvitedCode = in.InvitedCode data.InviteCode = in.InviteCode From 143fde30e06720417527da4217f95910c9ea32c3 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 11:45:06 +0800 Subject: [PATCH 34/52] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E5=85=B3=E7=B3=BB=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_user.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/internal/controller/artistInfo_user.go b/cmd/internal/controller/artistInfo_user.go index d67f3e3..f859308 100644 --- a/cmd/internal/controller/artistInfo_user.go +++ b/cmd/internal/controller/artistInfo_user.go @@ -171,7 +171,7 @@ func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, i // 查询被邀请人是否存在 var invitedUser model.User if in.InvitedUserId == 0 { - if err = db.DB.Debug().Where("invited_code = ?", in.InviteCode).First(&invitedUser).Error; err != nil { + if err = db.DB.Debug().Where("invited_code = ? OR id = ?", in.InviteCode, in.InvitedUserId).First(&invitedUser).Error; err != nil { if err == gorm.ErrRecordNotFound { return nil, errors.New("被邀请人不存在") } else { @@ -196,9 +196,9 @@ func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, i return nil, err } data.UserId = int32(inviteUser.ID) - data.InvitedId = in.InvitedUserId - data.InvitedCode = in.InvitedCode - data.InviteCode = in.InviteCode + data.InvitedId = int32(invitedUser.ID) + data.InvitedCode = invitedUser.InviteCode + data.InviteCode = inviteUser.InviteCode //如果数据存更新刷新时间 if err = db.DB.Debug().Save(&data).Error; err != nil { return nil, err @@ -211,7 +211,7 @@ func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, i } if countData.ID == 0 { countData = model.UserInvited{ - UserId: int32(thisUser.ID), + UserId: int32(inviteUser.ID), InvitedUserId: in.InvitedUserId, //受邀请人的画家宝用户id Count: 1, InvitedCode: in.InvitedCode, From c3cdd52daadf2a31552382f1cd07ced850fe6c93 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 13:52:47 +0800 Subject: [PATCH 35/52] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=97=E9=82=80?= =?UTF-8?q?=E8=AF=B7=E4=BA=BA=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_user.go | 2 +- pkg/db/init.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/internal/controller/artistInfo_user.go b/cmd/internal/controller/artistInfo_user.go index f859308..85012f2 100644 --- a/cmd/internal/controller/artistInfo_user.go +++ b/cmd/internal/controller/artistInfo_user.go @@ -171,7 +171,7 @@ func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, i // 查询被邀请人是否存在 var invitedUser model.User if in.InvitedUserId == 0 { - if err = db.DB.Debug().Where("invited_code = ? OR id = ?", in.InviteCode, in.InvitedUserId).First(&invitedUser).Error; err != nil { + if err = db.DB.Debug().Where("invited_code = ? OR id = ?", in.InvitedCode, in.InvitedUserId).First(&invitedUser).Error; err != nil { if err == gorm.ErrRecordNotFound { return nil, errors.New("被邀请人不存在") } else { diff --git a/pkg/db/init.go b/pkg/db/init.go index 1e4dac8..fed4664 100644 --- a/pkg/db/init.go +++ b/pkg/db/init.go @@ -39,7 +39,7 @@ func Init(confPath string) { LoadMysqlData(file) //MySQL数据库 - path := strings.Join([]string{DbUser, ":", DbPassWord, "@tcp(", DbHost, ":", DbPort, ")/", DbLogName, "?charset=utf8&parseTime=true"}, "") + path := strings.Join([]string{DbUser, ":", DbPassWord, "@tcp(", DbHost, ":", DbPort, ")/", DbLogName, "?charset=utf8&parseTime=true&loc=Asia/Shanghai"}, "") //连接数据库 Database(path) //迁移表 如果需要就打开使用 From 943bce15cdd28af6fbc83bc0415d5b140ece9837 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 14:05:02 +0800 Subject: [PATCH 36/52] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E6=97=B6=E5=8C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/db/init.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/db/init.go b/pkg/db/init.go index fed4664..8e4da18 100644 --- a/pkg/db/init.go +++ b/pkg/db/init.go @@ -39,7 +39,7 @@ func Init(confPath string) { LoadMysqlData(file) //MySQL数据库 - path := strings.Join([]string{DbUser, ":", DbPassWord, "@tcp(", DbHost, ":", DbPort, ")/", DbLogName, "?charset=utf8&parseTime=true&loc=Asia/Shanghai"}, "") + path := strings.Join([]string{DbUser, ":", DbPassWord, "@tcp(", DbHost, ":", DbPort, ")/", DbLogName, "?charset=utf8&parseTime=true&loc=Asia%2FShanghai"}, "") //连接数据库 Database(path) //迁移表 如果需要就打开使用 From 917b61de02c4e119132ce2b741cebd9ddab56e0b Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 14:08:44 +0800 Subject: [PATCH 37/52] =?UTF-8?q?=E4=B8=BA=E6=95=B0=E6=8D=AE=E5=BA=93dsn?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=B6=E5=8C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/artistInfo_user.go | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/cmd/internal/controller/artistInfo_user.go b/cmd/internal/controller/artistInfo_user.go index 85012f2..c99669d 100644 --- a/cmd/internal/controller/artistInfo_user.go +++ b/cmd/internal/controller/artistInfo_user.go @@ -170,13 +170,11 @@ func (a *ArtistInfoUserProvider) GetUserMsg(ctx context.Context, req *artistInfo func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, in *artistInfoUser.BindInviteInvitedAccountRequest) (res *artistInfoUser.BindInviteInvitedAccountRespond, err error) { // 查询被邀请人是否存在 var invitedUser model.User - if in.InvitedUserId == 0 { - if err = db.DB.Debug().Where("invited_code = ? OR id = ?", in.InvitedCode, in.InvitedUserId).First(&invitedUser).Error; err != nil { - if err == gorm.ErrRecordNotFound { - return nil, errors.New("被邀请人不存在") - } else { - return nil, err - } + if err = db.DB.Debug().Where("invited_code = ? OR id = ?", in.InvitedCode, in.InvitedUserId).First(&invitedUser).Error; err != nil { + if err == gorm.ErrRecordNotFound { + return nil, errors.New("被邀请人不存在") + } else { + return nil, err } } // 查询邀请人是否存在 From 207cbc097fbd8b0e21c3af43f6748d0d8a4b0b84 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 15:21:09 +0800 Subject: [PATCH 38/52] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E4=BC=9A=E7=BB=9F=E8=AE=A1=E5=B7=B2=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=95=B0=E6=8D=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/artistinfo_artshowArtistSupplement.go | 1 + cmd/model/view_user.go | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/cmd/internal/logic/artistinfo_artshowArtistSupplement.go b/cmd/internal/logic/artistinfo_artshowArtistSupplement.go index 8a3d676..3734faa 100644 --- a/cmd/internal/logic/artistinfo_artshowArtistSupplement.go +++ b/cmd/internal/logic/artistinfo_artshowArtistSupplement.go @@ -9,6 +9,7 @@ package logic import ( "errors" "fmt" + "github.com/fonchain/fonchain-artistinfo/cmd/internal/dao" "github.com/fonchain/fonchain-artistinfo/cmd/model" "github.com/fonchain/fonchain-artistinfo/pb/artistInfoUser" diff --git a/cmd/model/view_user.go b/cmd/model/view_user.go index 647f75e..5f632d0 100644 --- a/cmd/model/view_user.go +++ b/cmd/model/view_user.go @@ -86,12 +86,12 @@ SELECT FROM sys_user su LEFT JOIN real_name rn ON rn.id = su.real_name_id -- 邀请者信息 -LEFT JOIN invite ON invite.invited_id = su.id -LEFT JOIN sys_user inviter ON inviter.invited_code = invite.invite_code -LEFT JOIN real_name inviter_rn ON inviter_rn.id = inviter.real_name_id +LEFT JOIN invite ON invite.invited_id = su.id AND invite.deleted_at =0 +LEFT JOIN sys_user inviter ON BINARY inviter.invited_code = BINARY invite.invite_code AND inviter.deleted_at =0 +LEFT JOIN real_name inviter_rn ON inviter_rn.id = inviter.real_name_id AND inviter.deleted_at =0 LEFT JOIN artshow_artist_supplement aas ON aas.artist_uid = su.mgmt_artist_uid AND aas.lock_time = ( - select MAX(lock_time) from artshow_artist_supplement WHERE artist_uid = su.mgmt_artist_uid - ) + select MAX(lock_time) from artshow_artist_supplement WHERE artist_uid = su.mgmt_artist_uid and deleted_at = 0 + ) and aas.deleted_at = 0 WHERE su.deleted_at = 0 ` From f061ba64653b338fcb28a2c082d82493a948436a Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 15:31:41 +0800 Subject: [PATCH 39/52] =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=A7=86=E5=9B=BE?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AD=97=E6=AE=B5=E5=B9=B6=E6=9B=B4=E6=96=B0?= =?UTF-8?q?pb=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistInfo_user.go | 5 +- cmd/model/view_user.go | 4 +- pb/artistInfoUser/artistinfoUser.pb.go | 463 +++++++++++++------------ pb/artistinfoUser.proto | 1 + 4 files changed, 244 insertions(+), 229 deletions(-) diff --git a/cmd/internal/logic/artistInfo_user.go b/cmd/internal/logic/artistInfo_user.go index 689414c..1fddb22 100644 --- a/cmd/internal/logic/artistInfo_user.go +++ b/cmd/internal/logic/artistInfo_user.go @@ -139,8 +139,9 @@ func (a *ArtistInfoUser) FindUsersUserView(req *artistInfoUser.FindUsersRequest) CertificateImg: v.CertificateImg, LatestLockTime: v.LatestLockTime, WxAccount: v.WxAccount, - //BankName: v.BankName, - //BankNum: v.BankNum, + BankName: v.BankName, + BankNum: v.BankNum, + ArtistProfile: v.ArtistProfile, //PenName: "", //StageName: "", }) diff --git a/cmd/model/view_user.go b/cmd/model/view_user.go index 5f632d0..8b3edad 100644 --- a/cmd/model/view_user.go +++ b/cmd/model/view_user.go @@ -43,6 +43,7 @@ type UserView struct { BankName string `json:"bankName" gorm:"column:bank_name;comment:"` BankNum string `json:"bankNum" gorm:"column:bank_num;comment:"` WxAccount string `json:"wxAccount" gorm:"column:wx_account;comment:企业微信账号"` + ArtistProfile string `json:"artistProfile" gorm:"artist_profile"` //画家基本信息 } func (u UserView) TableName() string { @@ -81,7 +82,8 @@ SELECT su.certificate_img, su.wx_account, aas.bank_name, - aas.bank_num + aas.bank_num, + aas.artist_profile FROM sys_user su LEFT JOIN real_name rn ON rn.id = su.real_name_id diff --git a/pb/artistInfoUser/artistinfoUser.pb.go b/pb/artistInfoUser/artistinfoUser.pb.go index 8dfb403..9dce20a 100644 --- a/pb/artistInfoUser/artistinfoUser.pb.go +++ b/pb/artistInfoUser/artistinfoUser.pb.go @@ -4108,6 +4108,7 @@ type UserView struct { BankNum string `protobuf:"bytes,28,opt,name=bankNum,proto3" json:"bankNum,omitempty"` LatestLockTime string `protobuf:"bytes,31,opt,name=latestLockTime,proto3" json:"latestLockTime,omitempty"` WxAccount string `protobuf:"bytes,32,opt,name=wxAccount,proto3" json:"wxAccount,omitempty"` + ArtistProfile string `protobuf:"bytes,33,opt,name=artistProfile,proto3" json:"artistProfile,omitempty"` } func (x *UserView) Reset() { @@ -4366,6 +4367,13 @@ func (x *UserView) GetWxAccount() string { return "" } +func (x *UserView) GetArtistProfile() string { + if x != nil { + return x.ArtistProfile + } + return "" +} + type FindUsersUserViewResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5552,7 +5560,7 @@ var file_pb_artistinfoUser_proto_rawDesc = []byte{ 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x67, 0x6d, 0x74, 0x41, 0x63, 0x63, 0x49, - 0x64, 0x22, 0xb6, 0x07, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x16, + 0x64, 0x22, 0xdc, 0x07, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, @@ -5611,232 +5619,235 @@ var file_pb_artistinfoUser_proto_rawDesc = []byte{ 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x78, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x77, 0x78, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x79, 0x0a, 0x19, 0x46, 0x69, - 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xab, 0x03, 0x0a, 0x0b, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, - 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, - 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x12, - 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, - 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, - 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x22, 0x7d, 0x0a, 0x1a, 0x47, 0x65, 0x74, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0x6d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, - 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x66, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x22, - 0xc7, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x69, - 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x69, 0x64, 0x78, 0x12, 0x1a, 0x0a, - 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, - 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, - 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x69, 0x63, 0x55, 0x72, - 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, - 0x69, 0x63, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x69, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1b, 0x47, 0x65, - 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x32, 0xf4, 0x10, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0c, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4d, 0x0a, - 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x1f, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x07, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, - 0x00, 0x12, 0x4f, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, - 0x12, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, - 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, - 0x12, 0x58, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0c, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, - 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x55, - 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, - 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, - 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, - 0x6b, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x55, 0x0a, - 0x10, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x64, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0c, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, - 0x00, 0x12, 0x76, 0x0a, 0x18, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0c, 0x42, 0x69, 0x6e, - 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x08, 0x46, 0x69, - 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x09, 0x46, - 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1c, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x1a, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, - 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x50, 0x72, 0x65, - 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x53, - 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, - 0x61, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, - 0x64, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, - 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, - 0x61, 0x74, 0x61, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x09, 0x77, 0x78, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x22, 0x79, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, + 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, + 0x77, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x12, - 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x13, 0x5a, - 0x11, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, - 0x65, 0x72, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, + 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, + 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, + 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, + 0x64, 0x22, 0xab, 0x03, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x63, 0x63, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x61, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x73, 0x65, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x67, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, + 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, + 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, 0x43, 0x61, 0x72, + 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x22, + 0x7d, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0x6d, + 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x66, 0x0a, + 0x1a, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4b, + 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4b, 0x65, + 0x79, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, + 0x69, 0x64, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x50, 0x69, 0x63, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x69, 0x63, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x8a, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, + 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x32, 0xf4, 0x10, 0x0a, + 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x52, 0x0a, 0x0c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x64, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x43, + 0x61, 0x72, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x22, 0x00, 0x12, 0x43, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, + 0x12, 0x52, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x64, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, + 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x10, 0x41, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x08, 0x55, + 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x64, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x64, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0c, 0x55, 0x6e, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4c, + 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1d, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x09, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x18, 0x42, 0x69, 0x6e, 0x64, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, + 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, + 0x4f, 0x0a, 0x0c, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, + 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, + 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, + 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x3f, 0x0a, 0x08, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0x00, 0x12, 0x4a, 0x0a, 0x09, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1c, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, + 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, + 0x65, 0x77, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, + 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x0e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, + 0x54, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, + 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, + 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x12, 0x47, + 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, + 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x65, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( diff --git a/pb/artistinfoUser.proto b/pb/artistinfoUser.proto index ff04bf8..f6a6d3d 100644 --- a/pb/artistinfoUser.proto +++ b/pb/artistinfoUser.proto @@ -512,6 +512,7 @@ message UserView{ string bankNum=28; string latestLockTime=31; string wxAccount=32; + string artistProfile =33; } message FindUsersUserViewResponse{ repeated UserView data=1; From e570eee9b512149e5fa526883a2868d0ff696d80 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 16:36:34 +0800 Subject: [PATCH 40/52] =?UTF-8?q?=E9=97=AE=E9=A2=98=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 49 +++++++++++++----------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index 9db2bf1..a5fc21c 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -136,29 +136,32 @@ 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), - BaseAuditStatus: v.BaseAuditStatus, - BaseAuditMark: v.BaseAuditMark, - BaseAuditMark2: v.BaseAuditMark2, - SupplementAuditStatus: v.SupplementAuditStatus, - SupplementAuditMark: v.SupplementAuditMark, - SupplementAuditMark2: v.SupplementAuditMark2, - AuditFlowIndex: v.AuditFlowIndex, - CreatedAt: v.CreatedAt, - UpdatedAt: v.UpdatedAt, - DeletedAt: v.DeletedAt, - }) + if artwork.ArtworkUid == v.ArtworkUid { + 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), + BaseAuditStatus: v.BaseAuditStatus, + BaseAuditMark: v.BaseAuditMark, + BaseAuditMark2: v.BaseAuditMark2, + SupplementAuditStatus: v.SupplementAuditStatus, + SupplementAuditMark: v.SupplementAuditMark, + SupplementAuditMark2: v.SupplementAuditMark2, + AuditFlowIndex: v.AuditFlowIndex, + CreatedAt: v.CreatedAt, + UpdatedAt: v.UpdatedAt, + DeletedAt: v.DeletedAt, + }) + + } } } fmt.Println("previewListRes count", len(previewListRes.Data)) From 24919d61c892c38ac73c400e142d8048edbe358f Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 16:45:33 +0800 Subject: [PATCH 41/52] =?UTF-8?q?=E9=97=AE=E9=A2=98=E8=B0=83=E8=AF=952?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 73 ++++++++++++++++-------- 1 file changed, 49 insertions(+), 24 deletions(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index a5fc21c..f23a839 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -132,37 +132,62 @@ func (a ArtistInfoArtworkLogic) GetArtworkLockHistoryGroup(request *artistInfoAr if newGroup { res.GroupList = append(res.GroupList, &artistInfoArtwork.ArtworkLockRecord{ LockGroup: v.LockTime, - DataList: []*artistInfoArtwork.ArtworkPreviewInfo{}, + DataList: make([]*artistInfoArtwork.ArtworkPreviewInfo, 0), }) } + var thisArtwork = &artistInfoArtwork.ArtworkPreviewInfo{ + LockStatus: int32(v.Status), + BaseAuditStatus: v.BaseAuditStatus, + BaseAuditMark: v.BaseAuditMark, + BaseAuditMark2: v.BaseAuditMark2, + SupplementAuditStatus: v.SupplementAuditStatus, + SupplementAuditMark: v.SupplementAuditMark, + SupplementAuditMark2: v.SupplementAuditMark2, + AuditFlowIndex: v.AuditFlowIndex, + CreatedAt: v.CreatedAt, + UpdatedAt: v.UpdatedAt, + DeletedAt: v.DeletedAt, + } for _, artwork := range previewListRes.Data { if artwork.ArtworkUid == v.ArtworkUid { - 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), - BaseAuditStatus: v.BaseAuditStatus, - BaseAuditMark: v.BaseAuditMark, - BaseAuditMark2: v.BaseAuditMark2, - SupplementAuditStatus: v.SupplementAuditStatus, - SupplementAuditMark: v.SupplementAuditMark, - SupplementAuditMark2: v.SupplementAuditMark2, - AuditFlowIndex: v.AuditFlowIndex, - CreatedAt: v.CreatedAt, - UpdatedAt: v.UpdatedAt, - DeletedAt: v.DeletedAt, - }) + thisArtwork.ArtistUuid = artwork.ArtistUuid + thisArtwork.ArtworkName = artwork.ArtworkName + thisArtwork.Length = artwork.Length + thisArtwork.Width = artwork.Width + thisArtwork.Ruler = artwork.Ruler + thisArtwork.CreatedAddress = strings.Split(artwork.CreatedAddress, ",") + thisArtwork.ArtistPhoto = artwork.ArtistPhoto + thisArtwork.HdPic = artwork.HdPic + thisArtwork.ArtworkUid = artwork.ArtworkUid + thisArtwork.CreatedDate = artwork.CreateDate + + // 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), + // BaseAuditStatus: v.BaseAuditStatus, + // BaseAuditMark: v.BaseAuditMark, + // BaseAuditMark2: v.BaseAuditMark2, + // SupplementAuditStatus: v.SupplementAuditStatus, + // SupplementAuditMark: v.SupplementAuditMark, + // SupplementAuditMark2: v.SupplementAuditMark2, + // AuditFlowIndex: v.AuditFlowIndex, + // CreatedAt: v.CreatedAt, + // UpdatedAt: v.UpdatedAt, + // DeletedAt: v.DeletedAt, + // }) } } + res.GroupList[groupIndex].DataList = append(res.GroupList[groupIndex].DataList, artwork) } fmt.Println("previewListRes count", len(previewListRes.Data)) return From 874e8d31dc8bb363f666e5739df0f6d474a9329b Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 16:46:22 +0800 Subject: [PATCH 42/52] =?UTF-8?q?=E9=97=AE=E9=A2=98=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index f23a839..e183fbd 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -187,7 +187,7 @@ func (a ArtistInfoArtworkLogic) GetArtworkLockHistoryGroup(request *artistInfoAr } } - res.GroupList[groupIndex].DataList = append(res.GroupList[groupIndex].DataList, artwork) + res.GroupList[groupIndex].DataList = append(res.GroupList[groupIndex].DataList, thisArtwork) } fmt.Println("previewListRes count", len(previewListRes.Data)) return From d00ddd30ee7186b44627206192f26919732f1661 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 17:00:16 +0800 Subject: [PATCH 43/52] =?UTF-8?q?=E9=97=AE=E9=A2=98=E8=B0=83=E8=AF=953?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index e183fbd..11b7e8c 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -110,9 +110,10 @@ func (a ArtistInfoArtworkLogic) GetArtworkLockHistoryGroup(request *artistInfoAr fmt.Println("artworkUidList", artworkUidList) //查询画作预览列表 previewListRes, err := service.ArtworkQueryImpl.ArtworkPreviewList(context.Background(), &artwork_query.ArtworkPreviewListRequest{ - Page: 1, - PageSize: -1, - ArtworkUids: artworkUidList, + Page: 1, + PageSize: -1, + // ArtworkUids: artworkUidList, + ArtistUid: request.ArtistUid, }) if err != nil { return nil, err From 6e677c42d45f3de5cdb528fe43d9a6017a3927bc Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 17:04:32 +0800 Subject: [PATCH 44/52] =?UTF-8?q?=E9=97=AE=E9=A2=98=E8=B0=83=E8=AF=954?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index 11b7e8c..9abd22d 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -127,8 +127,6 @@ func (a ArtistInfoArtworkLogic) GetArtworkLockHistoryGroup(request *artistInfoAr thisLockTime = v.LockTime newGroup = true groupIndex++ - } else { - continue } if newGroup { res.GroupList = append(res.GroupList, &artistInfoArtwork.ArtworkLockRecord{ From 6c34f893566dcf769b1cf8cff4f4a7ef21fef369 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Fri, 31 Mar 2023 17:35:27 +0800 Subject: [PATCH 45/52] debug5 --- cmd/internal/logic/artistinfo_artwork.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index 9abd22d..efc0969 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -135,6 +135,8 @@ func (a ArtistInfoArtworkLogic) GetArtworkLockHistoryGroup(request *artistInfoAr }) } var thisArtwork = &artistInfoArtwork.ArtworkPreviewInfo{ + ArtistUuid: v.ArtistUid, + ArtworkUid: v.ArtworkUid, LockStatus: int32(v.Status), BaseAuditStatus: v.BaseAuditStatus, BaseAuditMark: v.BaseAuditMark, @@ -149,7 +151,6 @@ func (a ArtistInfoArtworkLogic) GetArtworkLockHistoryGroup(request *artistInfoAr } for _, artwork := range previewListRes.Data { if artwork.ArtworkUid == v.ArtworkUid { - thisArtwork.ArtistUuid = artwork.ArtistUuid thisArtwork.ArtworkName = artwork.ArtworkName thisArtwork.Length = artwork.Length thisArtwork.Width = artwork.Width From 1eba4ba5bee3900ee078b637638944b0aa1da92a Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Sat, 1 Apr 2023 09:35:47 +0800 Subject: [PATCH 46/52] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9F=BA=E6=9C=AC?= =?UTF-8?q?=E7=94=BB=E4=BD=9C=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95=E7=9A=84?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 59 +++++++++++++----------- 1 file changed, 33 insertions(+), 26 deletions(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index efc0969..a5d7a94 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -134,6 +134,7 @@ func (a ArtistInfoArtworkLogic) GetArtworkLockHistoryGroup(request *artistInfoAr DataList: make([]*artistInfoArtwork.ArtworkPreviewInfo, 0), }) } + //// 方案1: 画作在画作系统被删除了,继续展示,只是数据只有artowrkUid,其它的都没了,查询详情会报错not found var thisArtwork = &artistInfoArtwork.ArtworkPreviewInfo{ ArtistUuid: v.ArtistUid, ArtworkUid: v.ArtworkUid, @@ -160,35 +161,41 @@ func (a ArtistInfoArtworkLogic) GetArtworkLockHistoryGroup(request *artistInfoAr thisArtwork.HdPic = artwork.HdPic thisArtwork.ArtworkUid = artwork.ArtworkUid thisArtwork.CreatedDate = artwork.CreateDate - - // 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), - // BaseAuditStatus: v.BaseAuditStatus, - // BaseAuditMark: v.BaseAuditMark, - // BaseAuditMark2: v.BaseAuditMark2, - // SupplementAuditStatus: v.SupplementAuditStatus, - // SupplementAuditMark: v.SupplementAuditMark, - // SupplementAuditMark2: v.SupplementAuditMark2, - // AuditFlowIndex: v.AuditFlowIndex, - // CreatedAt: v.CreatedAt, - // UpdatedAt: v.UpdatedAt, - // DeletedAt: v.DeletedAt, - // }) - + break } } res.GroupList[groupIndex].DataList = append(res.GroupList[groupIndex].DataList, thisArtwork) - } + + //// 方案2:画作如果被画作系统删除,则不展示被删除的内容 + // for _, artwork := range previewListRes.Data { + // if artwork.ArtworkUid == v.ArtworkUid { + // res.GroupList[groupIndex].DataList = append(res.GroupList[groupIndex].DataList, &artistInfoArtwork.ArtworkPreviewInfo{ + // ArtworkName: artwork.ArtworkName, + // Length: artwork.Length, + // Width: artwork.Width, + // Ruler: artwork.Ruler, + // CreatedAddress: strings.Split(artwork.CreatedAddress, ","), + // ArtistPhoto: artwork.ArtistPhoto, + // HdPic: artwork.HdPic, + // CreatedDate: artwork.CreateDate, + // LockStatus: int32(v.Status), + // ArtistUuid: v.ArtistUid, + // ArtworkUid: v.ArtworkUid, + // BaseAuditStatus: v.BaseAuditStatus, + // BaseAuditMark: v.BaseAuditMark, + // BaseAuditMark2: v.BaseAuditMark2, + // SupplementAuditStatus: v.SupplementAuditStatus, + // SupplementAuditMark: v.SupplementAuditMark, + // SupplementAuditMark2: v.SupplementAuditMark2, + // AuditFlowIndex: v.AuditFlowIndex, + // CreatedAt: v.CreatedAt, + // UpdatedAt: v.UpdatedAt, + // DeletedAt: v.DeletedAt, + // }) + // break + // } + // } + // } fmt.Println("previewListRes count", len(previewListRes.Data)) return } From b2844379fb1b88edc79d3e55307d90d16b2d1748 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Sat, 1 Apr 2023 09:37:35 +0800 Subject: [PATCH 47/52] =?UTF-8?q?=E9=92=88=E5=AF=B9=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E7=94=BB=E4=BD=9C=E8=81=94=E5=8A=A8=E5=88=A0=E9=99=A4=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E6=8F=90=E4=BE=9B=E5=A4=87=E7=94=A8?= =?UTF-8?q?=E6=96=B9=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 59 +++++++++++++----------- 1 file changed, 33 insertions(+), 26 deletions(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index efc0969..a5d7a94 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -134,6 +134,7 @@ func (a ArtistInfoArtworkLogic) GetArtworkLockHistoryGroup(request *artistInfoAr DataList: make([]*artistInfoArtwork.ArtworkPreviewInfo, 0), }) } + //// 方案1: 画作在画作系统被删除了,继续展示,只是数据只有artowrkUid,其它的都没了,查询详情会报错not found var thisArtwork = &artistInfoArtwork.ArtworkPreviewInfo{ ArtistUuid: v.ArtistUid, ArtworkUid: v.ArtworkUid, @@ -160,35 +161,41 @@ func (a ArtistInfoArtworkLogic) GetArtworkLockHistoryGroup(request *artistInfoAr thisArtwork.HdPic = artwork.HdPic thisArtwork.ArtworkUid = artwork.ArtworkUid thisArtwork.CreatedDate = artwork.CreateDate - - // 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), - // BaseAuditStatus: v.BaseAuditStatus, - // BaseAuditMark: v.BaseAuditMark, - // BaseAuditMark2: v.BaseAuditMark2, - // SupplementAuditStatus: v.SupplementAuditStatus, - // SupplementAuditMark: v.SupplementAuditMark, - // SupplementAuditMark2: v.SupplementAuditMark2, - // AuditFlowIndex: v.AuditFlowIndex, - // CreatedAt: v.CreatedAt, - // UpdatedAt: v.UpdatedAt, - // DeletedAt: v.DeletedAt, - // }) - + break } } res.GroupList[groupIndex].DataList = append(res.GroupList[groupIndex].DataList, thisArtwork) - } + + //// 方案2:画作如果被画作系统删除,则不展示被删除的内容 + // for _, artwork := range previewListRes.Data { + // if artwork.ArtworkUid == v.ArtworkUid { + // res.GroupList[groupIndex].DataList = append(res.GroupList[groupIndex].DataList, &artistInfoArtwork.ArtworkPreviewInfo{ + // ArtworkName: artwork.ArtworkName, + // Length: artwork.Length, + // Width: artwork.Width, + // Ruler: artwork.Ruler, + // CreatedAddress: strings.Split(artwork.CreatedAddress, ","), + // ArtistPhoto: artwork.ArtistPhoto, + // HdPic: artwork.HdPic, + // CreatedDate: artwork.CreateDate, + // LockStatus: int32(v.Status), + // ArtistUuid: v.ArtistUid, + // ArtworkUid: v.ArtworkUid, + // BaseAuditStatus: v.BaseAuditStatus, + // BaseAuditMark: v.BaseAuditMark, + // BaseAuditMark2: v.BaseAuditMark2, + // SupplementAuditStatus: v.SupplementAuditStatus, + // SupplementAuditMark: v.SupplementAuditMark, + // SupplementAuditMark2: v.SupplementAuditMark2, + // AuditFlowIndex: v.AuditFlowIndex, + // CreatedAt: v.CreatedAt, + // UpdatedAt: v.UpdatedAt, + // DeletedAt: v.DeletedAt, + // }) + // break + // } + // } + // } fmt.Println("previewListRes count", len(previewListRes.Data)) return } From eb42ceec3f5120b2552e5e03e0d95f42bbb24741 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Sat, 1 Apr 2023 09:54:08 +0800 Subject: [PATCH 48/52] =?UTF-8?q?=E9=82=80=E8=AF=B7=E5=85=B3=E7=B3=BB?= =?UTF-8?q?=E8=A1=A8=E5=A2=9E=E5=8A=A0=E5=8E=BB=E9=87=8D=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/model/invite.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/model/invite.go b/cmd/model/invite.go index 85d5dd2..c350b3b 100644 --- a/cmd/model/invite.go +++ b/cmd/model/invite.go @@ -6,8 +6,8 @@ type Invite struct { UserId int32 `gorm:"column:user_id;comment:邀请人账号id"` UserInfo *User `gorm:"foreignKey:id;reference:UserId"` InvitedId int32 `gorm:"column:invited_id;default:0;comment:受邀请画家宝用户id"` - InviteCode string `gorm:"column:invite_code;type:varchar(191);comment:邀请人的邀请码"` - InvitedCode string `gorm:"column:invited_code;type:varchar(191);comment:受邀请人的邀请码"` + InviteCode string `gorm:"column:invite_code;type:varchar(191);uniqueIndex:invitecode_invitedcode;comment:邀请人的邀请码"` + InvitedCode string `gorm:"column:invited_code;type:varchar(191);uniqueIndex:invitecode_invitedcode;comment:受邀请人的邀请码"` } func (i Invite) TableName() string { From 2bbf591dbb621148eea0cab5888b111c54b00c6d Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Sat, 1 Apr 2023 10:00:03 +0800 Subject: [PATCH 49/52] =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 60 ++++++++++++------------ 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index a5d7a94..b53ec60 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -167,36 +167,36 @@ func (a ArtistInfoArtworkLogic) GetArtworkLockHistoryGroup(request *artistInfoAr res.GroupList[groupIndex].DataList = append(res.GroupList[groupIndex].DataList, thisArtwork) //// 方案2:画作如果被画作系统删除,则不展示被删除的内容 - // for _, artwork := range previewListRes.Data { - // if artwork.ArtworkUid == v.ArtworkUid { - // res.GroupList[groupIndex].DataList = append(res.GroupList[groupIndex].DataList, &artistInfoArtwork.ArtworkPreviewInfo{ - // ArtworkName: artwork.ArtworkName, - // Length: artwork.Length, - // Width: artwork.Width, - // Ruler: artwork.Ruler, - // CreatedAddress: strings.Split(artwork.CreatedAddress, ","), - // ArtistPhoto: artwork.ArtistPhoto, - // HdPic: artwork.HdPic, - // CreatedDate: artwork.CreateDate, - // LockStatus: int32(v.Status), - // ArtistUuid: v.ArtistUid, - // ArtworkUid: v.ArtworkUid, - // BaseAuditStatus: v.BaseAuditStatus, - // BaseAuditMark: v.BaseAuditMark, - // BaseAuditMark2: v.BaseAuditMark2, - // SupplementAuditStatus: v.SupplementAuditStatus, - // SupplementAuditMark: v.SupplementAuditMark, - // SupplementAuditMark2: v.SupplementAuditMark2, - // AuditFlowIndex: v.AuditFlowIndex, - // CreatedAt: v.CreatedAt, - // UpdatedAt: v.UpdatedAt, - // DeletedAt: v.DeletedAt, - // }) - // break - // } - // } - // } - fmt.Println("previewListRes count", len(previewListRes.Data)) + // for _, artwork := range previewListRes.Data { + // if artwork.ArtworkUid == v.ArtworkUid { + // res.GroupList[groupIndex].DataList = append(res.GroupList[groupIndex].DataList, &artistInfoArtwork.ArtworkPreviewInfo{ + // ArtworkName: artwork.ArtworkName, + // Length: artwork.Length, + // Width: artwork.Width, + // Ruler: artwork.Ruler, + // CreatedAddress: strings.Split(artwork.CreatedAddress, ","), + // ArtistPhoto: artwork.ArtistPhoto, + // HdPic: artwork.HdPic, + // CreatedDate: artwork.CreateDate, + // LockStatus: int32(v.Status), + // ArtistUuid: v.ArtistUid, + // ArtworkUid: v.ArtworkUid, + // BaseAuditStatus: v.BaseAuditStatus, + // BaseAuditMark: v.BaseAuditMark, + // BaseAuditMark2: v.BaseAuditMark2, + // SupplementAuditStatus: v.SupplementAuditStatus, + // SupplementAuditMark: v.SupplementAuditMark, + // SupplementAuditMark2: v.SupplementAuditMark2, + // AuditFlowIndex: v.AuditFlowIndex, + // CreatedAt: v.CreatedAt, + // UpdatedAt: v.UpdatedAt, + // DeletedAt: v.DeletedAt, + // }) + // break + // } + // } + // } + } return } From 178420944764ae4a61d3f6f3f46e2ddd63ea25d7 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Sat, 1 Apr 2023 10:03:15 +0800 Subject: [PATCH 50/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E7=94=BB=E4=BD=9C=E6=9F=A5=E8=AF=A2=E7=9A=84=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 111 +++++++++++------------ 1 file changed, 55 insertions(+), 56 deletions(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index b53ec60..61d660a 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -135,67 +135,66 @@ func (a ArtistInfoArtworkLogic) GetArtworkLockHistoryGroup(request *artistInfoAr }) } //// 方案1: 画作在画作系统被删除了,继续展示,只是数据只有artowrkUid,其它的都没了,查询详情会报错not found - var thisArtwork = &artistInfoArtwork.ArtworkPreviewInfo{ - ArtistUuid: v.ArtistUid, - ArtworkUid: v.ArtworkUid, - LockStatus: int32(v.Status), - BaseAuditStatus: v.BaseAuditStatus, - BaseAuditMark: v.BaseAuditMark, - BaseAuditMark2: v.BaseAuditMark2, - SupplementAuditStatus: v.SupplementAuditStatus, - SupplementAuditMark: v.SupplementAuditMark, - SupplementAuditMark2: v.SupplementAuditMark2, - AuditFlowIndex: v.AuditFlowIndex, - CreatedAt: v.CreatedAt, - UpdatedAt: v.UpdatedAt, - DeletedAt: v.DeletedAt, - } + // var thisArtwork = &artistInfoArtwork.ArtworkPreviewInfo{ + // ArtistUuid: v.ArtistUid, + // ArtworkUid: v.ArtworkUid, + // LockStatus: int32(v.Status), + // BaseAuditStatus: v.BaseAuditStatus, + // BaseAuditMark: v.BaseAuditMark, + // BaseAuditMark2: v.BaseAuditMark2, + // SupplementAuditStatus: v.SupplementAuditStatus, + // SupplementAuditMark: v.SupplementAuditMark, + // SupplementAuditMark2: v.SupplementAuditMark2, + // AuditFlowIndex: v.AuditFlowIndex, + // CreatedAt: v.CreatedAt, + // UpdatedAt: v.UpdatedAt, + // DeletedAt: v.DeletedAt, + // } + // for _, artwork := range previewListRes.Data { + // if artwork.ArtworkUid == v.ArtworkUid { + // thisArtwork.ArtworkName = artwork.ArtworkName + // thisArtwork.Length = artwork.Length + // thisArtwork.Width = artwork.Width + // thisArtwork.Ruler = artwork.Ruler + // thisArtwork.CreatedAddress = strings.Split(artwork.CreatedAddress, ",") + // thisArtwork.ArtistPhoto = artwork.ArtistPhoto + // thisArtwork.HdPic = artwork.HdPic + // thisArtwork.ArtworkUid = artwork.ArtworkUid + // thisArtwork.CreatedDate = artwork.CreateDate + // break + // } + // } + // res.GroupList[groupIndex].DataList = append(res.GroupList[groupIndex].DataList, thisArtwork) + + //// 方案2:画作如果被画作系统删除,则不展示被删除的内容 for _, artwork := range previewListRes.Data { if artwork.ArtworkUid == v.ArtworkUid { - thisArtwork.ArtworkName = artwork.ArtworkName - thisArtwork.Length = artwork.Length - thisArtwork.Width = artwork.Width - thisArtwork.Ruler = artwork.Ruler - thisArtwork.CreatedAddress = strings.Split(artwork.CreatedAddress, ",") - thisArtwork.ArtistPhoto = artwork.ArtistPhoto - thisArtwork.HdPic = artwork.HdPic - thisArtwork.ArtworkUid = artwork.ArtworkUid - thisArtwork.CreatedDate = artwork.CreateDate + res.GroupList[groupIndex].DataList = append(res.GroupList[groupIndex].DataList, &artistInfoArtwork.ArtworkPreviewInfo{ + ArtworkName: artwork.ArtworkName, + Length: artwork.Length, + Width: artwork.Width, + Ruler: artwork.Ruler, + CreatedAddress: strings.Split(artwork.CreatedAddress, ","), + ArtistPhoto: artwork.ArtistPhoto, + HdPic: artwork.HdPic, + CreatedDate: artwork.CreateDate, + LockStatus: int32(v.Status), + ArtistUuid: v.ArtistUid, + ArtworkUid: v.ArtworkUid, + BaseAuditStatus: v.BaseAuditStatus, + BaseAuditMark: v.BaseAuditMark, + BaseAuditMark2: v.BaseAuditMark2, + SupplementAuditStatus: v.SupplementAuditStatus, + SupplementAuditMark: v.SupplementAuditMark, + SupplementAuditMark2: v.SupplementAuditMark2, + AuditFlowIndex: v.AuditFlowIndex, + CreatedAt: v.CreatedAt, + UpdatedAt: v.UpdatedAt, + DeletedAt: v.DeletedAt, + }) break } } - res.GroupList[groupIndex].DataList = append(res.GroupList[groupIndex].DataList, thisArtwork) - - //// 方案2:画作如果被画作系统删除,则不展示被删除的内容 - // for _, artwork := range previewListRes.Data { - // if artwork.ArtworkUid == v.ArtworkUid { - // res.GroupList[groupIndex].DataList = append(res.GroupList[groupIndex].DataList, &artistInfoArtwork.ArtworkPreviewInfo{ - // ArtworkName: artwork.ArtworkName, - // Length: artwork.Length, - // Width: artwork.Width, - // Ruler: artwork.Ruler, - // CreatedAddress: strings.Split(artwork.CreatedAddress, ","), - // ArtistPhoto: artwork.ArtistPhoto, - // HdPic: artwork.HdPic, - // CreatedDate: artwork.CreateDate, - // LockStatus: int32(v.Status), - // ArtistUuid: v.ArtistUid, - // ArtworkUid: v.ArtworkUid, - // BaseAuditStatus: v.BaseAuditStatus, - // BaseAuditMark: v.BaseAuditMark, - // BaseAuditMark2: v.BaseAuditMark2, - // SupplementAuditStatus: v.SupplementAuditStatus, - // SupplementAuditMark: v.SupplementAuditMark, - // SupplementAuditMark2: v.SupplementAuditMark2, - // AuditFlowIndex: v.AuditFlowIndex, - // CreatedAt: v.CreatedAt, - // UpdatedAt: v.UpdatedAt, - // DeletedAt: v.DeletedAt, - // }) - // break - // } - // } - // } } return } From e6ee6424c097906d748c528493eef30ca264bd5c Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Mon, 3 Apr 2023 09:45:50 +0800 Subject: [PATCH 51/52] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=A1=A8=E5=AD=97?= =?UTF-8?q?=E6=AE=B5remark?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/model/user.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/model/user.go b/cmd/model/user.go index 5c1b183..a4c91d2 100644 --- a/cmd/model/user.go +++ b/cmd/model/user.go @@ -34,7 +34,8 @@ type User struct { Htmltype string `gorm:"html_type" json:"htmltype"` Envtype string `gorm:"env_type" json:"envtype"` - OldMgmtId int64 `gorm:"column:old_mgmt_id;comment:老管理系统用户id;"` + OldMgmtId int64 `gorm:"column:old_mgmt_id;comment:老管理系统用户id;"` + Remark string `gorm:"column:remark;comment:备注;"` //IsFdd int64 `gorm:"column:is_fdd;not null;comment:"` //Account string `gorm:"type:varchar(256) not null"` //Name string `gorm:"type:varchar(20) not null"` From 747212fd29dde10aec87b327be8df1ca9ba32b92 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Mon, 3 Apr 2023 13:46:20 +0800 Subject: [PATCH 52/52] =?UTF-8?q?=E5=90=88=E5=90=8C=E8=A1=A8=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/model/contract.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/model/contract.go b/cmd/model/contract.go index c39d1e9..42c7f6c 100644 --- a/cmd/model/contract.go +++ b/cmd/model/contract.go @@ -29,4 +29,5 @@ type Contract struct { CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` DeletedAt soft_delete.DeletedAt + OldMgmtDataId int32 `gorm:"column:old_mgmt_data_id"` //老画家宝中的id }