From 0d373d7936ad65150ee55e0b3cdc39df6ea3f161 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Tue, 31 Jan 2023 17:14:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DockerBuildProd.bat | 8 + DockerBuildTest.bat | 8 + Dockerfile | 19 +- Dockerfile1 | 32 + DockerfileProd | 33 + cmd/controller/art_show.go | 29 + cmd/dao/art_show.go | 69 +- cmd/main.go | 2 +- cmd/model/art_show.go | 1 + cmd/service/art_show.go | 18 +- cmd/service/show_price.go | 11 + conf/conf.ini | 28 +- go.mod | 4 +- go.sum | 5 - pb/artShow/artshow.pb.go | 1155 ++++++++++++++++++---------- pb/artShow/artshow.validator.pb.go | 13 + pb/artShow/artshow_triple.pb.go | 90 +++ pb/artshow.proto | 37 +- pb/grpc/artshow_grpc.pb.go | 646 ---------------- pkg/m/msg.go | 2 +- pkg/serializer/art_show.go | 1 + pkg/serializer/artwork_price.go | 24 + pkg/serializer/calc_price.go | 57 +- runtime/log/artshow_server.log | 3 + 24 files changed, 1181 insertions(+), 1114 deletions(-) create mode 100644 DockerBuildProd.bat create mode 100644 DockerBuildTest.bat create mode 100644 Dockerfile1 create mode 100644 DockerfileProd delete mode 100644 pb/grpc/artshow_grpc.pb.go create mode 100644 runtime/log/artshow_server.log diff --git a/DockerBuildProd.bat b/DockerBuildProd.bat new file mode 100644 index 0000000..9567990 --- /dev/null +++ b/DockerBuildProd.bat @@ -0,0 +1,8 @@ +go env -w GOOS=linux +go build -ldflags "-s -w" -o ./build/artShowServerProd ./cmd/app.go +docker rmi artshow-server-prod +docker rmi 192.168.12.3:9015/artshow-server +docker build . -f .\DockerfileProd -t artshow-server-prod +docker tag artshow-server-prod 192.168.12.3:9015/artshow-server +docker push 192.168.12.3:9015/artshow-server +pause \ No newline at end of file diff --git a/DockerBuildTest.bat b/DockerBuildTest.bat new file mode 100644 index 0000000..a714d41 --- /dev/null +++ b/DockerBuildTest.bat @@ -0,0 +1,8 @@ +go env -w GOOS=linux +go build -ldflags "-s -w" -o ./build/artShowServerTest ./cmd/app.go +docker rmi artshow-server-test +docker rmi 121.229.45.214:9006/artshow-server +docker build . -f .\Dockerfile -t artshow-server-test +docker tag artshow-server-test 121.229.45.214:9006/artshow-server +docker push 121.229.45.214:9006/artshow-server +pause \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 5b1d7ef..9dc6df4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,28 +1,29 @@ FROM golang:alpine AS builder LABEL stage=gobuilder -#ENV DUBBO_GO_CONFIG_PATH ./conf/dubbogo.yaml -#ENV MODE_ENV test +ENV DUBBO_GO_CONFIG_PATH ./conf/dubbogo.yaml ENV CGO_ENABLED 0 +ENV GOOS linux ENV GOPROXY https://goproxy.cn,direct #RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories #RUN apk update --no-cache && apk add --no-cache tzdata WORKDIR /build -COPY ./utils ../utils -ADD ./fonchain-artshow/go.mod . -ADD ./fonchain-artshow/go.sum . -RUN go mod download -COPY ./fonchain-artshow . +#COPY ./utils ../utils +#ADD ./fonchain-artshow/go.mod . +#ADD ./fonchain-artshow/go.sum . +#RUN go mod download +#COPY ./fonchain-artshow . -RUN go build -ldflags "-s -w" -o /app/artshowServer ./cmd/app.go +#RUN go build -ldflags "-s -w" -o /app/artshowServer ./cmd/app.go +COPY ./build/artShowServerTest /app/artshowServer FROM alpine RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories RUN apk update --no-cache RUN apk add --no-cache ca-certificates RUN apk add --no-cache tzdata -COPY ./fonchain-artshow/conf /app/conf +COPY ./conf /app/conf ENV TZ Asia/Shanghai #ENV MODE_ENV test diff --git a/Dockerfile1 b/Dockerfile1 new file mode 100644 index 0000000..c218163 --- /dev/null +++ b/Dockerfile1 @@ -0,0 +1,32 @@ +FROM golang:alpine AS builder + +LABEL stage=gobuilder +#ENV DUBBO_GO_CONFIG_PATH ./conf/dubbogo.yaml +#ENV MODE_ENV test +ENV CGO_ENABLED 0 +ENV GOPROXY https://goproxy.cn,direct +#RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories +#RUN apk update --no-cache && apk add --no-cache tzdata + +WORKDIR /build +#COPY ./utils ../utils +#ADD ./fonchain-artshow/go.mod . +#ADD ./fonchain-artshow/go.sum . +#RUN go mod download +#COPY ./fonchain-artshow . + +RUN go build -ldflags "-s -w" -o /app/artshowServer ./cmd/app.go + +FROM alpine +RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories +RUN apk update --no-cache +RUN apk add --no-cache ca-certificates +RUN apk add --no-cache tzdata +COPY ./fonchain-artshow/conf /app/conf + +ENV TZ Asia/Shanghai +#ENV MODE_ENV test +WORKDIR /app +COPY --from=builder /app/artshowServer . +#EXPOSE 9022 +CMD ["/app/artshowServer"] diff --git a/DockerfileProd b/DockerfileProd new file mode 100644 index 0000000..65c1c87 --- /dev/null +++ b/DockerfileProd @@ -0,0 +1,33 @@ +FROM golang:alpine AS builder + +LABEL stage=gobuilder +ENV DUBBO_GO_CONFIG_PATH ./conf/dubbogo.yaml +ENV CGO_ENABLED 0 +ENV GOOS linux +ENV GOPROXY https://goproxy.cn,direct +#RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories +#RUN apk update --no-cache && apk add --no-cache tzdata + +WORKDIR /build +#COPY ./utils ../utils +#ADD ./fonchain-artshow/go.mod . +#ADD ./fonchain-artshow/go.sum . +#RUN go mod download +#COPY ./fonchain-artshow . + +#RUN go build -ldflags "-s -w" -o /app/artshowServer ./cmd/app.go +COPY ./build/artShowServerProd /app/artshowServer + +FROM alpine +RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories +RUN apk update --no-cache +RUN apk add --no-cache ca-certificates +RUN apk add --no-cache tzdata +COPY ./conf /app/conf + +ENV TZ Asia/Shanghai +#ENV MODE_ENV test +WORKDIR /app +COPY --from=builder /app/artshowServer . +#EXPOSE 9022 +CMD ["/app/artshowServer"] diff --git a/cmd/controller/art_show.go b/cmd/controller/art_show.go index 8895e82..14b1678 100644 --- a/cmd/controller/art_show.go +++ b/cmd/controller/art_show.go @@ -96,6 +96,23 @@ func (p *ArtShowProvider) ShowList(ctx context.Context, req *artShow.ShowListReq return } +func (p *ArtShowProvider) ShowListWithRel(ctx context.Context, req *artShow.ShowListReq) (res *artShow.ShowListRes, err error) { + if req.Page == 0 { + req.Page = 1 + } + if req.PageSize == 0 { + req.Page = 10 + } + res = new(artShow.ShowListRes) + err, res = service.ArtShowListWithRel(req) + if err != nil { + res.Msg = err.Error() + err = errors.New(m.ERROR_QUERY) + return + } + return +} + func (p *ArtShowProvider) ShowArtworkInfo(ctx context.Context, req *artShow.ShowDetailReq) (res *artShow.ShowArtworkDetailRes, err error) { err, res = service.ShowArtworkInfo(req) if err != nil { @@ -107,6 +124,7 @@ func (p *ArtShowProvider) ShowArtworkInfo(ctx context.Context, req *artShow.Show } func (p *ArtShowProvider) ShowDetail(ctx context.Context, req *artShow.ShowDetailReq) (res *artShow.ShowDetailRes, err error) { + res = new(artShow.ShowDetailRes) err, res = service.ShowDetail(req) if err != nil { res.Msg = err.Error() @@ -179,3 +197,14 @@ func (p *ArtShowProvider) ShowListForArtwork(ctx context.Context, req *artShow.S } return } + +func (p *ArtShowProvider) ArtworkPriceList(ctx context.Context, req *artShow.ShowDetailReq) (res *artShow.ArtworkPriceListRes, err error) { + res = new(artShow.ArtworkPriceListRes) + err, res.Data = service.ArtworkPriceList(req) + if err != nil { + res.Msg = err.Error() + err = errors.New(m.ERROR_QUERY) + return + } + return +} diff --git a/cmd/dao/art_show.go b/cmd/dao/art_show.go index 660f13a..1fcd3ea 100644 --- a/cmd/dao/art_show.go +++ b/cmd/dao/art_show.go @@ -1,7 +1,6 @@ package dao import ( - "fmt" "fonchain-artshow/cmd/model" "fonchain-artshow/pb/artShow" "fonchain-artshow/pkg/db" @@ -38,31 +37,84 @@ func UpdateArtShow(tx *gorm.DB, artShow *model.ArtShow) (err error) { return } -func ArtShowList(in *artShow.ShowListReq) (err error, total int64, out []*model.ArtShowRes) { +func ArtShowListWithRel(in *artShow.ShowListReq) (err error, total int64, out []*model.ArtShowRes) { queryDB := db.DbArtShow.Table("art_show as a ").Distinct("a.id"). - Select("a.show_uid, a.show_seq, a.show_name, a.artist_name, a.artist_uid, a.artwork_num, a.ruler, a.price, a.create_time, a.is_show, c.address ,c.show_time"). + Select("a.show_uid, a.show_seq, a.show_name, a.artist_name, a.artist_uid, a.artwork_num, a.ruler, a.price, a.reward ,a.create_time, a.is_show, c.address ,c.show_time"). Joins("left join artwork_price as b on a.show_uid = b.show_uid"). Joins("left join show_rel as c on a.show_uid = c.show_uid ") - - if in.Name != "" { - queryDB.Where(" a.artist_name like ? or a.show_name like ? or b.artwork_name like ? ", "%"+in.Name+"%", "%"+in.Name+"%", "%"+in.Name+"%") + countDB := db.DbArtShow.Table("art_show as a ").Distinct("a.id"). + Select("a.show_uid, a.show_seq, a.show_name, a.artist_name, a.artist_uid, a.artwork_num, a.ruler, a.price, a.reward , a.create_time, a.is_show, c.address ,c.show_time"). + Joins("left join artwork_price as b on a.show_uid = b.show_uid"). + Joins("left join show_rel as c on a.show_uid = c.show_uid ") + if in.ArtistName != "" { + queryDB.Where(" a.artist_name like ? ", "%"+in.ArtistName+"%") + countDB.Where(" a.artist_name like ? ", "%"+in.ArtistName+"%") + } + if in.ShowName != "" { + queryDB.Where(" a.show_name like ? ", "%"+in.ShowName+"%") + countDB.Where(" a.show_name like ? ", "%"+in.ShowName+"%") + } + if in.ShowSeq != "" { + queryDB.Where(" a.show_seq like ? ", "%"+in.ShowSeq+"%") + countDB.Where(" a.show_seq like ? ", "%"+in.ShowSeq+"%") } if in.IsShow != 0 { queryDB.Where(" a.is_show = ?", in.IsShow) + countDB.Where(" a.is_show = ?", in.IsShow) + } + if in.StartTime != "" && in.EndTime != "" { + queryDB.Where("convert(a.create_time, date) between ? and ?", in.StartTime, in.EndTime) + countDB.Where("convert(a.create_time, date) between ? and ?", in.StartTime, in.EndTime) + } + if in.EndPrice != 0 { + queryDB.Where(" a.price between ? and ?", in.StartPrice, in.EndPrice) + countDB.Where(" a.price between ? and ?", in.StartPrice, in.EndPrice) + } + if in.EndReward != 0 { + queryDB.Where(" a.reward between ? and ?", in.StartReward, in.EndReward) + countDB.Where(" a.reward between ? and ?", in.StartReward, in.EndReward) + } + + //selectDb := queryDB + //countDb := queryDB + + out = make([]*model.ArtShowRes, 0) + err = queryDB.Where("a.deleted_at is null and c.deleted_at is null").Offset(int((in.Page - 1) * in.PageSize)). + Limit(int(in.PageSize)).Find(&out).Error + if err != nil { + zap.L().Error("ArtShowList Find err", zap.Error(err)) + return + } + + err = countDB.Where("a.deleted_at is null").Group("a.id").Count(&total).Error + if err != nil { + zap.L().Error("ArtShowList Count err", zap.Error(err)) + return + } + + return +} + +func ArtShowList(in *artShow.ShowListReq) (err error, total int64, out []*model.ArtShowRes) { + queryDB := db.DbArtShow.Model(&model.ArtShow{}). + Select("show_uid, show_seq, show_name, artist_name, artist_uid, artwork_num, ruler, price, create_time, is_show") + + if in.IsShow != 0 { + queryDB.Where(" is_show = ?", in.IsShow) } if in.StartTime != "" && in.EndTime != "" { queryDB.Where("convert(a.create_time, date) between ? and ?", in.StartTime, in.EndTime) } out = make([]*model.ArtShowRes, 0) - err = queryDB.Where("a.deleted_at is null").Offset(int((in.Page - 1) * in.PageSize)). + err = queryDB.Offset(int((in.Page - 1) * in.PageSize)). Limit(int(in.PageSize)).Find(&out).Error if err != nil { zap.L().Error("ArtShowList Find err", zap.Error(err)) return } - err = queryDB.Where("a.deleted_at is null").Group("a.id").Count(&total).Error + err = queryDB.Count(&total).Error if err != nil { zap.L().Error("ArtShowList Count err", zap.Error(err)) return @@ -113,7 +165,6 @@ func QueryArtShow(show_uid string) (err error, out *model.ArtShowRes) { zap.L().Error("ArtShow Find err", zap.Error(err)) return } - fmt.Printf("%+v\n", out) return } diff --git a/cmd/main.go b/cmd/main.go index 3fbd214..5b08534 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -2,12 +2,12 @@ package main import ( "fmt" + "fonchain-artshow/cmd/controller" grpc2 "fonchain-artshow/pb/grpc" "net" "google.golang.org/grpc" - "fonchain-artshow/cmd/controller" "fonchain-artshow/pkg/db" "fonchain-artshow/pkg/logger" "fonchain-artshow/pkg/m" diff --git a/cmd/model/art_show.go b/cmd/model/art_show.go index 6f2d5de..6cf3bc1 100644 --- a/cmd/model/art_show.go +++ b/cmd/model/art_show.go @@ -27,6 +27,7 @@ type ArtShowRes struct { ArtworkNum int32 `json:"artwork_num" gorm:"artwork_num"` // 画作数量 Ruler int32 `json:"ruler" gorm:"ruler"` // 画作总平尺 Price int64 `json:"price" gorm:"price"` // 画展包价格 + Reward int64 `json:"reward" gorm:"reward"` // 润格 CreateTime string `json:"create_time" gorm:"create_time"` // 创建时间 IsShow int8 `json:"is_show" gorm:"is_show"` // 是否出展 1,内部(default) 2,可展 3,已展 diff --git a/cmd/service/art_show.go b/cmd/service/art_show.go index 2e77327..b9d5fc5 100644 --- a/cmd/service/art_show.go +++ b/cmd/service/art_show.go @@ -136,7 +136,7 @@ func DelArtShow(in *artShow.DelShowReq) (err error) { return } -// 画展包列表 +// 画展包列表 不携带 画展地址 画展时间 func ArtShowList(in *artShow.ShowListReq) (err error, out *artShow.ShowListRes) { out = new(artShow.ShowListRes) artShows := make([]*model.ArtShowRes, 0) @@ -152,6 +152,22 @@ func ArtShowList(in *artShow.ShowListReq) (err error, out *artShow.ShowListRes) return } +// 画展包列表 携带 画展地址 画展时间 +func ArtShowListWithRel(in *artShow.ShowListReq) (err error, out *artShow.ShowListRes) { + out = new(artShow.ShowListRes) + artShows := make([]*model.ArtShowRes, 0) + err, out.Total, artShows = dao.ArtShowListWithRel(in) + if err != nil { + return + } + err, out.TotalArtistNum, out.TotalPackageNum, _, _, _ = dao.ShowStatistical(m.ARTSHOW_PASS) + if err != nil { + return + } + out.Data = serializer.BuildArtShowListRes(artShows) + return +} + // 画展包关联画作信息 func ShowArtworkInfo(in *artShow.ShowDetailReq) (err error, out *artShow.ShowArtworkDetailRes) { out = new(artShow.ShowArtworkDetailRes) diff --git a/cmd/service/show_price.go b/cmd/service/show_price.go index 65b5879..2b59d20 100644 --- a/cmd/service/show_price.go +++ b/cmd/service/show_price.go @@ -2,6 +2,7 @@ package service import ( "fonchain-artshow/cmd/dao" + "fonchain-artshow/cmd/model" "fonchain-artshow/pb/artShow" "fonchain-artshow/pkg/serializer" ) @@ -14,3 +15,13 @@ func ArtworkPriceInfo(in *artShow.ArtworkPriceReq) (err error, artworkPriceRes * artworkPriceRes = serializer.BuildArtworkPriceRes(artworkPrice) return } + +func ArtworkPriceList(in *artShow.ShowDetailReq) (err error, artworkPriceList []*artShow.ArtworkPriceDetail) { + list := make([]*model.ArtworkPrice, 0) + artworkPriceList = make([]*artShow.ArtworkPriceDetail, 0) + err, list = dao.ArtworkPriceList(in.ShowUID) + if len(list) > 0 { + artworkPriceList = serializer.BuildShowArtworkListRpc(list) + } + return +} diff --git a/conf/conf.ini b/conf/conf.ini index cd47b1a..27d31bd 100644 --- a/conf/conf.ini +++ b/conf/conf.ini @@ -3,13 +3,13 @@ mode = dev #正式prod #测试dev ;本地测试 -[mysql] -Db = mysql -DbHost = 127.0.0.1 -DbPort = 3306 -DbUser = root -DbPassWord = 123456 -DbName = art_show +;[mysql] +;Db = mysql +;DbHost = 127.0.0.1 +;DbPort = 3306 +;DbUser = root +;DbPassWord = 123456 +;DbName = art_show ;正式服 ;[mysql] @@ -30,13 +30,13 @@ DbName = art_show ;DbName = art_show ;214 -;[mysql] -;Db = mysql -;DbHost = 172.16.100.99 #214 -;DbPort = 9007 -;DbUser = artuser -;DbPassWord = "C250PflXIWv2SQm8" -;DbName = art_show +[mysql] +Db = mysql +DbHost = 172.16.100.99 #214 +DbPort = 9007 +DbUser = artuser +DbPassWord = "C250PflXIWv2SQm8" +DbName = art_show ;[mysql] ;Db = mysql diff --git a/go.mod b/go.mod index feba760..edf1978 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,6 @@ replace github.com/fonchain_enterprise/utils/aes => ../utils/aes require ( dubbo.apache.org/dubbo-go/v3 v3.0.2 - github.com/360EntSecGroup-Skylar/excelize v1.4.1 github.com/dubbogo/grpc-go v1.42.10 github.com/dubbogo/triple v1.1.8 github.com/fonchain_enterprise/utils/aes v0.0.0-00010101000000-000000000000 @@ -15,6 +14,7 @@ require ( github.com/lestrrat/go-file-rotatelogs v0.0.0-20180223000712-d3151e2a480f github.com/mwitkow/go-proto-validators v0.3.2 github.com/natefinch/lumberjack v2.0.0+incompatible + github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b github.com/spf13/cast v1.3.0 go.uber.org/zap v1.21.0 google.golang.org/grpc v1.47.0 @@ -97,7 +97,6 @@ require ( github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/mschoch/smat v0.2.0 // indirect github.com/nacos-group/nacos-sdk-go v1.1.1 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect @@ -112,7 +111,6 @@ require ( github.com/prometheus/procfs v0.7.3 // indirect github.com/prometheus/statsd_exporter v0.21.0 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect - github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b // indirect github.com/shirou/gopsutil v3.20.11+incompatible // indirect github.com/shirou/gopsutil/v3 v3.21.6 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect diff --git a/go.sum b/go.sum index a1f6290..c6cb223 100644 --- a/go.sum +++ b/go.sum @@ -37,8 +37,6 @@ contrib.go.opencensus.io/exporter/prometheus v0.4.1/go.mod h1:t9wvfitlUjGXG2IXAZ dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dubbo.apache.org/dubbo-go/v3 v3.0.2 h1:+WuMFN6RSjXHT41QS1Xi5tFfaPuczIVoeQuKq7pISYI= dubbo.apache.org/dubbo-go/v3 v3.0.2/go.mod h1:bODgByAf72kzG/5YIfZIODXx81pY3gaAdIQ8B4mN/Yk= -github.com/360EntSecGroup-Skylar/excelize v1.4.1 h1:l55mJb6rkkaUzOpSsgEeKYtS6/0gHwBYyfo5Jcjv/Ks= -github.com/360EntSecGroup-Skylar/excelize v1.4.1/go.mod h1:vnax29X2usfl7HHkBrX5EvSCJcmH3dT9luvxzu8iGAE= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= @@ -569,8 +567,6 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= -github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/mschoch/smat v0.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM= github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw= @@ -744,7 +740,6 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.2.3-0.20181224173747-660f15d67dbb/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= diff --git a/pb/artShow/artshow.pb.go b/pb/artShow/artshow.pb.go index 036fce9..a5a1f1b 100644 --- a/pb/artShow/artshow.pb.go +++ b/pb/artShow/artshow.pb.go @@ -565,12 +565,18 @@ type ShowListReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page int32 `protobuf:"varint,1,opt,name=Page,json=page,proto3" json:"Page"` - PageSize int32 `protobuf:"varint,2,opt,name=PageSize,json=page_size,proto3" json:"PageSize"` - StartTime string `protobuf:"bytes,3,opt,name=StartTime,json=start_time,proto3" json:"StartTime"` - EndTime string `protobuf:"bytes,4,opt,name=EndTime,json=end_time,proto3" json:"EndTime"` - Name string `protobuf:"bytes,5,opt,name=Name,json=name,proto3" json:"Name"` - IsShow int32 `protobuf:"varint,6,opt,name=IsShow,json=is_show,proto3" json:"IsShow"` + Page int32 `protobuf:"varint,1,opt,name=Page,json=page,proto3" json:"Page"` + PageSize int32 `protobuf:"varint,2,opt,name=PageSize,json=page_size,proto3" json:"PageSize"` + StartTime string `protobuf:"bytes,3,opt,name=StartTime,json=start_time,proto3" json:"StartTime"` + EndTime string `protobuf:"bytes,4,opt,name=EndTime,json=end_time,proto3" json:"EndTime"` + ShowSeq string `protobuf:"bytes,5,opt,name=ShowSeq,json=show_seq,proto3" json:"ShowSeq"` + ShowName string `protobuf:"bytes,6,opt,name=ShowName,json=show_name,proto3" json:"ShowName"` + ArtistName string `protobuf:"bytes,7,opt,name=ArtistName,json=artist_name,proto3" json:"ArtistName"` + StartPrice int64 `protobuf:"varint,8,opt,name=StartPrice,json=start_price,proto3" json:"StartPrice"` + EndPrice int64 `protobuf:"varint,9,opt,name=EndPrice,json=end_price,proto3" json:"EndPrice"` + StartReward int64 `protobuf:"varint,10,opt,name=StartReward,json=start_reward,proto3" json:"StartReward"` + EndReward int64 `protobuf:"varint,11,opt,name=EndReward,json=end_reward,proto3" json:"EndReward"` + IsShow int32 `protobuf:"varint,12,opt,name=IsShow,json=is_show,proto3" json:"IsShow"` } func (x *ShowListReq) Reset() { @@ -633,13 +639,55 @@ func (x *ShowListReq) GetEndTime() string { return "" } -func (x *ShowListReq) GetName() string { +func (x *ShowListReq) GetShowSeq() string { + if x != nil { + return x.ShowSeq + } + return "" +} + +func (x *ShowListReq) GetShowName() string { + if x != nil { + return x.ShowName + } + return "" +} + +func (x *ShowListReq) GetArtistName() string { if x != nil { - return x.Name + return x.ArtistName } return "" } +func (x *ShowListReq) GetStartPrice() int64 { + if x != nil { + return x.StartPrice + } + return 0 +} + +func (x *ShowListReq) GetEndPrice() int64 { + if x != nil { + return x.EndPrice + } + return 0 +} + +func (x *ShowListReq) GetStartReward() int64 { + if x != nil { + return x.StartReward + } + return 0 +} + +func (x *ShowListReq) GetEndReward() int64 { + if x != nil { + return x.EndReward + } + return 0 +} + func (x *ShowListReq) GetIsShow() int32 { if x != nil { return x.IsShow @@ -1012,6 +1060,213 @@ func (x *ArtworkDetail) GetSmallPic() string { return "" } +// 画作详情 +type ArtworkPriceDetail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtworkPriceUID string `protobuf:"bytes,1,opt,name=ArtworkPriceUID,json=artwork_price_uid,proto3" json:"ArtworkPriceUID"` + ShowUID string `protobuf:"bytes,2,opt,name=ShowUID,json=show_uid,proto3" json:"ShowUID"` + ArtworkUID string `protobuf:"bytes,3,opt,name=ArtworkUID,json=artwork_uid,proto3" json:"ArtworkUID"` + ArtworkName string `protobuf:"bytes,4,opt,name=ArtworkName,json=artwork_name,proto3" json:"ArtworkName"` + ArtistName string `protobuf:"bytes,5,opt,name=ArtistName,json=artist_name,proto3" json:"ArtistName"` + Length int32 `protobuf:"varint,6,opt,name=Length,json=length,proto3" json:"Length"` + Width int32 `protobuf:"varint,7,opt,name=Width,json=width,proto3" json:"Width"` + Ruler int32 `protobuf:"varint,8,opt,name=Ruler,json=ruler,proto3" json:"Ruler"` + SmallPic string `protobuf:"bytes,9,opt,name=SmallPic,json=small_pic,proto3" json:"SmallPic"` + Price int64 `protobuf:"varint,10,opt,name=Price,json=price,proto3" json:"Price"` + RulerPrice int64 `protobuf:"varint,11,opt,name=RulerPrice,json=ruler_price,proto3" json:"RulerPrice"` + ArtworkPrice int64 `protobuf:"varint,12,opt,name=ArtworkPrice,json=artwork_price,proto3" json:"ArtworkPrice"` + MarketPrice int64 `protobuf:"varint,13,opt,name=MarketPrice,json=market_price,proto3" json:"MarketPrice"` + CopyrightPrice int64 `protobuf:"varint,14,opt,name=CopyrightPrice,json=copyright_price,proto3" json:"CopyrightPrice"` +} + +func (x *ArtworkPriceDetail) Reset() { + *x = ArtworkPriceDetail{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artshow_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtworkPriceDetail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtworkPriceDetail) ProtoMessage() {} + +func (x *ArtworkPriceDetail) ProtoReflect() protoreflect.Message { + mi := &file_pb_artshow_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArtworkPriceDetail.ProtoReflect.Descriptor instead. +func (*ArtworkPriceDetail) Descriptor() ([]byte, []int) { + return file_pb_artshow_proto_rawDescGZIP(), []int{13} +} + +func (x *ArtworkPriceDetail) GetArtworkPriceUID() string { + if x != nil { + return x.ArtworkPriceUID + } + return "" +} + +func (x *ArtworkPriceDetail) GetShowUID() string { + if x != nil { + return x.ShowUID + } + return "" +} + +func (x *ArtworkPriceDetail) GetArtworkUID() string { + if x != nil { + return x.ArtworkUID + } + return "" +} + +func (x *ArtworkPriceDetail) GetArtworkName() string { + if x != nil { + return x.ArtworkName + } + return "" +} + +func (x *ArtworkPriceDetail) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *ArtworkPriceDetail) GetLength() int32 { + if x != nil { + return x.Length + } + return 0 +} + +func (x *ArtworkPriceDetail) GetWidth() int32 { + if x != nil { + return x.Width + } + return 0 +} + +func (x *ArtworkPriceDetail) GetRuler() int32 { + if x != nil { + return x.Ruler + } + return 0 +} + +func (x *ArtworkPriceDetail) GetSmallPic() string { + if x != nil { + return x.SmallPic + } + return "" +} + +func (x *ArtworkPriceDetail) GetPrice() int64 { + if x != nil { + return x.Price + } + return 0 +} + +func (x *ArtworkPriceDetail) GetRulerPrice() int64 { + if x != nil { + return x.RulerPrice + } + return 0 +} + +func (x *ArtworkPriceDetail) GetArtworkPrice() int64 { + if x != nil { + return x.ArtworkPrice + } + return 0 +} + +func (x *ArtworkPriceDetail) GetMarketPrice() int64 { + if x != nil { + return x.MarketPrice + } + return 0 +} + +func (x *ArtworkPriceDetail) GetCopyrightPrice() int64 { + if x != nil { + return x.CopyrightPrice + } + return 0 +} + +type ArtworkPriceListRes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*ArtworkPriceDetail `protobuf:"bytes,1,rep,name=Data,json=data,proto3" json:"Data"` + Msg string `protobuf:"bytes,2,opt,name=Msg,json=msg,proto3" json:"Msg"` +} + +func (x *ArtworkPriceListRes) Reset() { + *x = ArtworkPriceListRes{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artshow_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtworkPriceListRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtworkPriceListRes) ProtoMessage() {} + +func (x *ArtworkPriceListRes) ProtoReflect() protoreflect.Message { + mi := &file_pb_artshow_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArtworkPriceListRes.ProtoReflect.Descriptor instead. +func (*ArtworkPriceListRes) Descriptor() ([]byte, []int) { + return file_pb_artshow_proto_rawDescGZIP(), []int{14} +} + +func (x *ArtworkPriceListRes) GetData() []*ArtworkPriceDetail { + if x != nil { + return x.Data + } + return nil +} + +func (x *ArtworkPriceListRes) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + // 画展包 删除的画作信息 type DelArtworkDetail struct { state protoimpl.MessageState @@ -1025,7 +1280,7 @@ type DelArtworkDetail struct { func (x *DelArtworkDetail) Reset() { *x = DelArtworkDetail{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[13] + mi := &file_pb_artshow_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1038,7 +1293,7 @@ func (x *DelArtworkDetail) String() string { func (*DelArtworkDetail) ProtoMessage() {} func (x *DelArtworkDetail) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[13] + mi := &file_pb_artshow_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1051,7 +1306,7 @@ func (x *DelArtworkDetail) ProtoReflect() protoreflect.Message { // Deprecated: Use DelArtworkDetail.ProtoReflect.Descriptor instead. func (*DelArtworkDetail) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{13} + return file_pb_artshow_proto_rawDescGZIP(), []int{15} } func (x *DelArtworkDetail) GetArtworkPriceUID() string { @@ -1080,7 +1335,7 @@ type ShowStatisticalInfoReq struct { func (x *ShowStatisticalInfoReq) Reset() { *x = ShowStatisticalInfoReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[14] + mi := &file_pb_artshow_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1093,7 +1348,7 @@ func (x *ShowStatisticalInfoReq) String() string { func (*ShowStatisticalInfoReq) ProtoMessage() {} func (x *ShowStatisticalInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[14] + mi := &file_pb_artshow_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1106,7 +1361,7 @@ func (x *ShowStatisticalInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowStatisticalInfoReq.ProtoReflect.Descriptor instead. func (*ShowStatisticalInfoReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{14} + return file_pb_artshow_proto_rawDescGZIP(), []int{16} } func (x *ShowStatisticalInfoReq) GetIsShow() int32 { @@ -1128,7 +1383,7 @@ type ShowStatisticalInfoRes struct { func (x *ShowStatisticalInfoRes) Reset() { *x = ShowStatisticalInfoRes{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[15] + mi := &file_pb_artshow_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1141,7 +1396,7 @@ func (x *ShowStatisticalInfoRes) String() string { func (*ShowStatisticalInfoRes) ProtoMessage() {} func (x *ShowStatisticalInfoRes) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[15] + mi := &file_pb_artshow_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1154,7 +1409,7 @@ func (x *ShowStatisticalInfoRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowStatisticalInfoRes.ProtoReflect.Descriptor instead. func (*ShowStatisticalInfoRes) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{15} + return file_pb_artshow_proto_rawDescGZIP(), []int{17} } func (x *ShowStatisticalInfoRes) GetData() *ShowStatisticalInfoRes_Num { @@ -1182,7 +1437,7 @@ type ArtworkPriceReq struct { func (x *ArtworkPriceReq) Reset() { *x = ArtworkPriceReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[16] + mi := &file_pb_artshow_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1195,7 +1450,7 @@ func (x *ArtworkPriceReq) String() string { func (*ArtworkPriceReq) ProtoMessage() {} func (x *ArtworkPriceReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[16] + mi := &file_pb_artshow_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1208,7 +1463,7 @@ func (x *ArtworkPriceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkPriceReq.ProtoReflect.Descriptor instead. func (*ArtworkPriceReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{16} + return file_pb_artshow_proto_rawDescGZIP(), []int{18} } func (x *ArtworkPriceReq) GetArtworkUID() string { @@ -1230,7 +1485,7 @@ type ArtworkPriceRes struct { func (x *ArtworkPriceRes) Reset() { *x = ArtworkPriceRes{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[17] + mi := &file_pb_artshow_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1243,7 +1498,7 @@ func (x *ArtworkPriceRes) String() string { func (*ArtworkPriceRes) ProtoMessage() {} func (x *ArtworkPriceRes) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[17] + mi := &file_pb_artshow_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1256,7 +1511,7 @@ func (x *ArtworkPriceRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkPriceRes.ProtoReflect.Descriptor instead. func (*ArtworkPriceRes) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{17} + return file_pb_artshow_proto_rawDescGZIP(), []int{19} } func (x *ArtworkPriceRes) GetData() *ArtworkPriceRes_PriceInfo { @@ -1289,7 +1544,7 @@ type ShowRel struct { func (x *ShowRel) Reset() { *x = ShowRel{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[18] + mi := &file_pb_artshow_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1302,7 +1557,7 @@ func (x *ShowRel) String() string { func (*ShowRel) ProtoMessage() {} func (x *ShowRel) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[18] + mi := &file_pb_artshow_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1315,7 +1570,7 @@ func (x *ShowRel) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowRel.ProtoReflect.Descriptor instead. func (*ShowRel) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{18} + return file_pb_artshow_proto_rawDescGZIP(), []int{20} } func (x *ShowRel) GetShowRelUID() string { @@ -1372,7 +1627,7 @@ type DelShowRel struct { func (x *DelShowRel) Reset() { *x = DelShowRel{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[19] + mi := &file_pb_artshow_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1385,7 +1640,7 @@ func (x *DelShowRel) String() string { func (*DelShowRel) ProtoMessage() {} func (x *DelShowRel) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[19] + mi := &file_pb_artshow_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1398,7 +1653,7 @@ func (x *DelShowRel) ProtoReflect() protoreflect.Message { // Deprecated: Use DelShowRel.ProtoReflect.Descriptor instead. func (*DelShowRel) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{19} + return file_pb_artshow_proto_rawDescGZIP(), []int{21} } func (x *DelShowRel) GetShowRelUID() string { @@ -1434,7 +1689,7 @@ type SaveApplyReq struct { func (x *SaveApplyReq) Reset() { *x = SaveApplyReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[20] + mi := &file_pb_artshow_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1447,7 +1702,7 @@ func (x *SaveApplyReq) String() string { func (*SaveApplyReq) ProtoMessage() {} func (x *SaveApplyReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[20] + mi := &file_pb_artshow_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1460,7 +1715,7 @@ func (x *SaveApplyReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SaveApplyReq.ProtoReflect.Descriptor instead. func (*SaveApplyReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{20} + return file_pb_artshow_proto_rawDescGZIP(), []int{22} } func (x *SaveApplyReq) GetApplicant() string { @@ -1538,7 +1793,7 @@ type SaveApplyRes struct { func (x *SaveApplyRes) Reset() { *x = SaveApplyRes{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[21] + mi := &file_pb_artshow_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1551,7 +1806,7 @@ func (x *SaveApplyRes) String() string { func (*SaveApplyRes) ProtoMessage() {} func (x *SaveApplyRes) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[21] + mi := &file_pb_artshow_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1564,7 +1819,7 @@ func (x *SaveApplyRes) ProtoReflect() protoreflect.Message { // Deprecated: Use SaveApplyRes.ProtoReflect.Descriptor instead. func (*SaveApplyRes) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{21} + return file_pb_artshow_proto_rawDescGZIP(), []int{23} } func (x *SaveApplyRes) GetMsg() string { @@ -1594,7 +1849,7 @@ type ApplyListReq struct { func (x *ApplyListReq) Reset() { *x = ApplyListReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[22] + mi := &file_pb_artshow_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1607,7 +1862,7 @@ func (x *ApplyListReq) String() string { func (*ApplyListReq) ProtoMessage() {} func (x *ApplyListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[22] + mi := &file_pb_artshow_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1620,7 +1875,7 @@ func (x *ApplyListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyListReq.ProtoReflect.Descriptor instead. func (*ApplyListReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{22} + return file_pb_artshow_proto_rawDescGZIP(), []int{24} } func (x *ApplyListReq) GetPage() int32 { @@ -1657,7 +1912,7 @@ type ApplyListRes struct { func (x *ApplyListRes) Reset() { *x = ApplyListRes{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[23] + mi := &file_pb_artshow_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1670,7 +1925,7 @@ func (x *ApplyListRes) String() string { func (*ApplyListRes) ProtoMessage() {} func (x *ApplyListRes) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[23] + mi := &file_pb_artshow_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1683,7 +1938,7 @@ func (x *ApplyListRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyListRes.ProtoReflect.Descriptor instead. func (*ApplyListRes) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{23} + return file_pb_artshow_proto_rawDescGZIP(), []int{25} } func (x *ApplyListRes) GetTotal() int64 { @@ -1718,7 +1973,7 @@ type ApplyShowReq struct { func (x *ApplyShowReq) Reset() { *x = ApplyShowReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[24] + mi := &file_pb_artshow_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1731,7 +1986,7 @@ func (x *ApplyShowReq) String() string { func (*ApplyShowReq) ProtoMessage() {} func (x *ApplyShowReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[24] + mi := &file_pb_artshow_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1744,7 +1999,7 @@ func (x *ApplyShowReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyShowReq.ProtoReflect.Descriptor instead. func (*ApplyShowReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{24} + return file_pb_artshow_proto_rawDescGZIP(), []int{26} } func (x *ApplyShowReq) GetApplyUID() string { @@ -1767,7 +2022,7 @@ type ApplyShowRes struct { func (x *ApplyShowRes) Reset() { *x = ApplyShowRes{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[25] + mi := &file_pb_artshow_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1780,7 +2035,7 @@ func (x *ApplyShowRes) String() string { func (*ApplyShowRes) ProtoMessage() {} func (x *ApplyShowRes) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[25] + mi := &file_pb_artshow_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1793,7 +2048,7 @@ func (x *ApplyShowRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyShowRes.ProtoReflect.Descriptor instead. func (*ApplyShowRes) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{25} + return file_pb_artshow_proto_rawDescGZIP(), []int{27} } func (x *ApplyShowRes) GetApply() *ApplyDetail { @@ -1835,7 +2090,7 @@ type ApplyDetail struct { func (x *ApplyDetail) Reset() { *x = ApplyDetail{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[26] + mi := &file_pb_artshow_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1848,7 +2103,7 @@ func (x *ApplyDetail) String() string { func (*ApplyDetail) ProtoMessage() {} func (x *ApplyDetail) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[26] + mi := &file_pb_artshow_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1861,7 +2116,7 @@ func (x *ApplyDetail) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyDetail.ProtoReflect.Descriptor instead. func (*ApplyDetail) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{26} + return file_pb_artshow_proto_rawDescGZIP(), []int{28} } func (x *ApplyDetail) GetApplyUID() string { @@ -1931,7 +2186,7 @@ type ShowRelListReq struct { func (x *ShowRelListReq) Reset() { *x = ShowRelListReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[27] + mi := &file_pb_artshow_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1944,7 +2199,7 @@ func (x *ShowRelListReq) String() string { func (*ShowRelListReq) ProtoMessage() {} func (x *ShowRelListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[27] + mi := &file_pb_artshow_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1957,7 +2212,7 @@ func (x *ShowRelListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowRelListReq.ProtoReflect.Descriptor instead. func (*ShowRelListReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{27} + return file_pb_artshow_proto_rawDescGZIP(), []int{29} } func (x *ShowRelListReq) GetApplyUID() string { @@ -1979,7 +2234,7 @@ type ShowRelListRes struct { func (x *ShowRelListRes) Reset() { *x = ShowRelListRes{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[28] + mi := &file_pb_artshow_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1992,7 +2247,7 @@ func (x *ShowRelListRes) String() string { func (*ShowRelListRes) ProtoMessage() {} func (x *ShowRelListRes) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[28] + mi := &file_pb_artshow_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2005,7 +2260,7 @@ func (x *ShowRelListRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowRelListRes.ProtoReflect.Descriptor instead. func (*ShowRelListRes) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{28} + return file_pb_artshow_proto_rawDescGZIP(), []int{30} } func (x *ShowRelListRes) GetMsg() string { @@ -2035,7 +2290,7 @@ type UpdateApplyStatusReq struct { func (x *UpdateApplyStatusReq) Reset() { *x = UpdateApplyStatusReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[29] + mi := &file_pb_artshow_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2048,7 +2303,7 @@ func (x *UpdateApplyStatusReq) String() string { func (*UpdateApplyStatusReq) ProtoMessage() {} func (x *UpdateApplyStatusReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[29] + mi := &file_pb_artshow_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2061,7 +2316,7 @@ func (x *UpdateApplyStatusReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateApplyStatusReq.ProtoReflect.Descriptor instead. func (*UpdateApplyStatusReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{29} + return file_pb_artshow_proto_rawDescGZIP(), []int{31} } func (x *UpdateApplyStatusReq) GetStatus() int32 { @@ -2096,7 +2351,7 @@ type DelApplyReq struct { func (x *DelApplyReq) Reset() { *x = DelApplyReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[30] + mi := &file_pb_artshow_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2109,7 +2364,7 @@ func (x *DelApplyReq) String() string { func (*DelApplyReq) ProtoMessage() {} func (x *DelApplyReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[30] + mi := &file_pb_artshow_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2122,7 +2377,7 @@ func (x *DelApplyReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DelApplyReq.ProtoReflect.Descriptor instead. func (*DelApplyReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{30} + return file_pb_artshow_proto_rawDescGZIP(), []int{32} } func (x *DelApplyReq) GetApplyUID() []string { @@ -2147,7 +2402,7 @@ type ShowStatisticalInfoRes_Num struct { func (x *ShowStatisticalInfoRes_Num) Reset() { *x = ShowStatisticalInfoRes_Num{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[31] + mi := &file_pb_artshow_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2160,7 +2415,7 @@ func (x *ShowStatisticalInfoRes_Num) String() string { func (*ShowStatisticalInfoRes_Num) ProtoMessage() {} func (x *ShowStatisticalInfoRes_Num) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[31] + mi := &file_pb_artshow_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2173,7 +2428,7 @@ func (x *ShowStatisticalInfoRes_Num) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowStatisticalInfoRes_Num.ProtoReflect.Descriptor instead. func (*ShowStatisticalInfoRes_Num) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{15, 0} + return file_pb_artshow_proto_rawDescGZIP(), []int{17, 0} } func (x *ShowStatisticalInfoRes_Num) GetArtistNum() int64 { @@ -2226,7 +2481,7 @@ type ArtworkPriceRes_PriceInfo struct { func (x *ArtworkPriceRes_PriceInfo) Reset() { *x = ArtworkPriceRes_PriceInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[32] + mi := &file_pb_artshow_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2239,7 +2494,7 @@ func (x *ArtworkPriceRes_PriceInfo) String() string { func (*ArtworkPriceRes_PriceInfo) ProtoMessage() {} func (x *ArtworkPriceRes_PriceInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[32] + mi := &file_pb_artshow_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2252,7 +2507,7 @@ func (x *ArtworkPriceRes_PriceInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkPriceRes_PriceInfo.ProtoReflect.Descriptor instead. func (*ArtworkPriceRes_PriceInfo) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{17, 0} + return file_pb_artshow_proto_rawDescGZIP(), []int{19, 0} } func (x *ArtworkPriceRes_PriceInfo) GetPrice() int64 { @@ -2362,7 +2617,7 @@ var file_pb_artshow_proto_rawDesc = []byte{ 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0xa5, 0x01, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xea, 0x02, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x67, @@ -2370,262 +2625,317 @@ var file_pb_artshow_proto_rawDesc = []byte{ 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x73, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x22, 0x67, 0x0a, - 0x15, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 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, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x22, 0xb4, 0x01, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x0f, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x0e, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, - 0x75, 0x6d, 0x12, 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, - 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x68, 0x0a, - 0x15, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x10, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x27, - 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x41, - 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x27, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x53, 0x68, - 0x6f, 0x77, 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x75, 0x69, 0x64, - 0x22, 0x9c, 0x02, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x19, - 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, - 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, - 0x52, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, - 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x08, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x50, 0x69, 0x63, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x69, 0x63, 0x22, - 0x5f, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x12, - 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x75, 0x69, 0x64, - 0x22, 0x31, 0x0a, 0x16, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x06, 0x49, 0x73, - 0x53, 0x68, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x73, 0x5f, 0x73, - 0x68, 0x6f, 0x77, 0x22, 0x8c, 0x02, 0x0a, 0x16, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x12, 0x37, - 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x41, - 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x2e, 0x4e, 0x75, - 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x1a, 0xa6, 0x01, 0x0a, 0x03, 0x4e, 0x75, - 0x6d, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x75, 0x6d, - 0x12, 0x1f, 0x0a, 0x0a, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, - 0x6d, 0x12, 0x1b, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x20, - 0x0a, 0x0a, 0x4e, 0x6f, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6e, 0x75, 0x6d, - 0x12, 0x20, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x48, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x68, 0x69, 0x73, 0x5f, 0x6e, - 0x75, 0x6d, 0x22, 0x32, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x91, 0x02, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x04, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, - 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, + 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x08, 0x53, + 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x68, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x45, 0x6e, + 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x6e, + 0x64, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1d, 0x0a, 0x09, 0x45, 0x6e, + 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, + 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x17, 0x0a, 0x06, 0x49, 0x73, 0x53, + 0x68, 0x6f, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x73, 0x5f, 0x73, 0x68, + 0x6f, 0x77, 0x22, 0x67, 0x0a, 0x15, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, + 0x72, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x50, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 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, 0x1d, 0x0a, 0x09, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x22, 0xb4, 0x01, 0x0a, 0x0b, + 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x12, 0x2a, 0x0a, 0x0f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x28, 0x0a, + 0x0e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, + 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x22, 0x68, 0x0a, 0x15, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, + 0x72, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x27, 0x0a, 0x0a, + 0x44, 0x65, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, + 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, + 0x77, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x9c, 0x02, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x11, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, + 0x75, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1f, + 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x75, 0x69, 0x64, 0x12, + 0x21, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x57, + 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x08, 0x53, 0x6d, 0x61, 0x6c, 0x6c, + 0x50, 0x69, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6d, 0x61, 0x6c, 0x6c, + 0x5f, 0x70, 0x69, 0x63, 0x22, 0xc9, 0x03, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x0f, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x75, + 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, + 0x75, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, + 0x14, 0x0a, 0x05, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x08, 0x53, + 0x6d, 0x61, 0x6c, 0x6c, 0x50, 0x69, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1f, + 0x0a, 0x0a, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0b, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, + 0x23, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x43, 0x6f, 0x70, 0x79, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0f, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x22, 0x58, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 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, 0x5f, 0x0a, 0x10, 0x44, 0x65, + 0x6c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2a, + 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x31, 0x0a, 0x16, 0x53, + 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x73, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x22, 0x8c, + 0x02, 0x0a, 0x16, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, + 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x04, 0x44, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, + 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x2e, 0x4e, 0x75, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x1a, 0xb3, 0x01, 0x0a, 0x09, 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x52, 0x75, 0x6c, 0x65, - 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x72, 0x75, - 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0d, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x21, - 0x0a, 0x0b, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x63, 0x6f, 0x70, 0x79, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x07, 0x53, + 0x03, 0x6d, 0x73, 0x67, 0x1a, 0xa6, 0x01, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x09, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x1f, 0x0a, 0x0a, 0x50, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x1b, 0x0a, 0x08, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0a, 0x4e, 0x6f, 0x74, + 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, + 0x6f, 0x74, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0a, 0x53, + 0x68, 0x6f, 0x77, 0x48, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0c, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x68, 0x69, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x22, 0x32, 0x0a, + 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x75, 0x69, + 0x64, 0x22, 0x91, 0x02, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x2e, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x1a, + 0xb3, 0x01, 0x0a, 0x09, 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, + 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0e, + 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, + 0x6c, 0x12, 0x20, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x6c, 0x5f, + 0x75, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, 0x64, + 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x08, 0x53, + 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x68, 0x6f, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x49, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x77, - 0x5f, 0x72, 0x65, 0x6c, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x75, 0x69, 0x64, - 0x12, 0x14, 0x0a, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x1b, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x49, 0x0a, - 0x0a, 0x44, 0x65, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0a, 0x53, - 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x6c, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x19, 0x0a, - 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x9f, 0x02, 0x0a, 0x0c, 0x53, 0x61, 0x76, - 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, - 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x09, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x03, 0x52, 0x65, 0x6c, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, - 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x52, 0x03, 0x72, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, - 0x44, 0x65, 0x6c, 0x52, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x41, - 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x44, 0x65, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, - 0x6c, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x22, 0x3d, 0x0a, 0x0c, 0x53, 0x61, - 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x08, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x57, 0x0a, 0x0c, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 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, 0x16, 0x0a, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x60, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, - 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x22, 0x2b, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x68, 0x6f, - 0x77, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, - 0x64, 0x22, 0x75, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, - 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x05, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x27, 0x0a, - 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x41, 0x72, - 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xe9, 0x01, 0x0a, 0x0b, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x65, - 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x73, - 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, - 0x12, 0x21, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, - 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, - 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x2d, 0x0a, 0x0e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, - 0x75, 0x69, 0x64, 0x22, 0x48, 0x0a, 0x0e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x24, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, - 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x63, 0x0a, - 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, - 0x69, 0x64, 0x22, 0x2a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, + 0x5f, 0x72, 0x65, 0x6c, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, + 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, + 0x75, 0x69, 0x64, 0x22, 0x9f, 0x02, 0x0a, 0x0c, 0x53, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, + 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, + 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, + 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, + 0x61, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x03, 0x52, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, + 0x65, 0x6c, 0x52, 0x03, 0x72, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x52, 0x65, + 0x6c, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, + 0x77, 0x2e, 0x44, 0x65, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x52, 0x07, 0x64, 0x65, + 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x22, 0x3d, 0x0a, 0x0c, 0x53, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x52, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x5f, 0x75, 0x69, 0x64, 0x22, 0x57, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 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, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x60, 0x0a, + 0x0c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, + 0x2b, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x12, + 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x75, 0x0a, 0x0c, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x05, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x41, 0x72, + 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x05, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x27, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, + 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x73, 0x68, 0x6f, + 0x77, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x22, 0xe9, 0x01, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, 0x64, + 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x73, 0x65, 0x71, 0x12, 0x1c, 0x0a, + 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0b, 0x41, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, + 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, + 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x22, + 0x2d, 0x0a, 0x0e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x32, 0xb5, - 0x08, 0x0a, 0x07, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x3a, 0x0a, 0x0a, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, - 0x6f, 0x77, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x14, - 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x53, 0x68, 0x6f, - 0x77, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x53, 0x68, 0x6f, 0x77, 0x12, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, - 0x61, 0x76, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x41, 0x72, 0x74, - 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, - 0x22, 0x00, 0x12, 0x34, 0x0a, 0x07, 0x44, 0x65, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x13, 0x2e, - 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x44, 0x65, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x52, - 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, - 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x41, 0x72, 0x74, - 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x22, 0x00, 0x12, 0x56, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, - 0x72, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1e, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, - 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, - 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0f, 0x53, 0x68, - 0x6f, 0x77, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, - 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, - 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, - 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x41, - 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x13, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, - 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1f, - 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x22, - 0x00, 0x12, 0x44, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x18, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x41, 0x72, - 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x15, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, - 0x2e, 0x53, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, - 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x15, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, - 0x53, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x41, - 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x12, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x44, 0x65, 0x6c, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, - 0x77, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x41, 0x0a, - 0x11, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x12, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, - 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, - 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x22, 0x00, - 0x12, 0x48, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x48, + 0x0a, 0x0e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x24, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, + 0x65, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x63, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, + 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, + 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, + 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x2a, 0x0a, + 0x0b, 0x44, 0x65, 0x6c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x08, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x32, 0xc2, 0x09, 0x0a, 0x07, 0x41, 0x72, + 0x74, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x3a, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, + 0x68, 0x6f, 0x77, 0x12, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x61, + 0x76, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, + 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x22, + 0x00, 0x12, 0x3a, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x12, + 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x53, 0x68, + 0x6f, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, + 0x53, 0x61, 0x76, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x34, 0x0a, + 0x07, 0x44, 0x65, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x13, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, + 0x6f, 0x77, 0x2e, 0x44, 0x65, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, + 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, + 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x3f, 0x0a, + 0x0f, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x6c, + 0x12, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, + 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x56, + 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1e, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, + 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, + 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0f, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x41, 0x72, 0x74, 0x53, + 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x71, 0x1a, 0x1d, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, + 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x12, 0x16, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, + 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, + 0x22, 0x00, 0x12, 0x59, 0x0a, 0x13, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x41, 0x72, 0x74, 0x53, + 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x41, 0x72, 0x74, + 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x44, 0x0a, + 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x2e, + 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, + 0x77, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x12, 0x15, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x61, 0x76, + 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x41, 0x72, 0x74, 0x53, + 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, + 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x12, 0x15, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x61, 0x76, 0x65, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, + 0x6f, 0x77, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x22, + 0x00, 0x12, 0x36, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x2e, + 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x44, 0x65, 0x6c, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x11, 0x53, 0x68, 0x6f, + 0x77, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x14, + 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, + 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x09, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, - 0x77, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, - 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x15, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, - 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, - 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x68, 0x6f, - 0x77, 0x52, 0x65, 0x73, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, 0x61, 0x72, 0x74, 0x53, - 0x68, 0x6f, 0x77, 0x3b, 0x61, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x73, 0x12, 0x1d, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x12, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x41, 0x72, 0x74, + 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x12, 0x15, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x41, 0x72, 0x74, 0x53, + 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, + 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, + 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x22, 0x00, 0x42, 0x13, + 0x5a, 0x11, 0x2e, 0x2f, 0x61, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x3b, 0x61, 0x72, 0x74, 0x53, + 0x68, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2640,7 +2950,7 @@ func file_pb_artshow_proto_rawDescGZIP() []byte { return file_pb_artshow_proto_rawDescData } -var file_pb_artshow_proto_msgTypes = make([]protoimpl.MessageInfo, 33) +var file_pb_artshow_proto_msgTypes = make([]protoimpl.MessageInfo, 35) var file_pb_artshow_proto_goTypes = []interface{}{ (*SaveShowReq)(nil), // 0: ArtShow.SaveShowReq (*SaveShowRes)(nil), // 1: ArtShow.SaveShowRes @@ -2655,79 +2965,86 @@ var file_pb_artshow_proto_goTypes = []interface{}{ (*ShowListForArtworkRes)(nil), // 10: ArtShow.ShowListForArtworkRes (*DelShowReq)(nil), // 11: ArtShow.DelShowReq (*ArtworkDetail)(nil), // 12: ArtShow.ArtworkDetail - (*DelArtworkDetail)(nil), // 13: ArtShow.DelArtworkDetail - (*ShowStatisticalInfoReq)(nil), // 14: ArtShow.ShowStatisticalInfoReq - (*ShowStatisticalInfoRes)(nil), // 15: ArtShow.ShowStatisticalInfoRes - (*ArtworkPriceReq)(nil), // 16: ArtShow.ArtworkPriceReq - (*ArtworkPriceRes)(nil), // 17: ArtShow.ArtworkPriceRes - (*ShowRel)(nil), // 18: ArtShow.ShowRel - (*DelShowRel)(nil), // 19: ArtShow.DelShowRel - (*SaveApplyReq)(nil), // 20: ArtShow.SaveApplyReq - (*SaveApplyRes)(nil), // 21: ArtShow.SaveApplyRes - (*ApplyListReq)(nil), // 22: ArtShow.ApplyListReq - (*ApplyListRes)(nil), // 23: ArtShow.ApplyListRes - (*ApplyShowReq)(nil), // 24: ArtShow.ApplyShowReq - (*ApplyShowRes)(nil), // 25: ArtShow.ApplyShowRes - (*ApplyDetail)(nil), // 26: ArtShow.ApplyDetail - (*ShowRelListReq)(nil), // 27: ArtShow.ShowRelListReq - (*ShowRelListRes)(nil), // 28: ArtShow.ShowRelListRes - (*UpdateApplyStatusReq)(nil), // 29: ArtShow.UpdateApplyStatusReq - (*DelApplyReq)(nil), // 30: ArtShow.DelApplyReq - (*ShowStatisticalInfoRes_Num)(nil), // 31: ArtShow.ShowStatisticalInfoRes.Num - (*ArtworkPriceRes_PriceInfo)(nil), // 32: ArtShow.ArtworkPriceRes.PriceInfo + (*ArtworkPriceDetail)(nil), // 13: ArtShow.ArtworkPriceDetail + (*ArtworkPriceListRes)(nil), // 14: ArtShow.ArtworkPriceListRes + (*DelArtworkDetail)(nil), // 15: ArtShow.DelArtworkDetail + (*ShowStatisticalInfoReq)(nil), // 16: ArtShow.ShowStatisticalInfoReq + (*ShowStatisticalInfoRes)(nil), // 17: ArtShow.ShowStatisticalInfoRes + (*ArtworkPriceReq)(nil), // 18: ArtShow.ArtworkPriceReq + (*ArtworkPriceRes)(nil), // 19: ArtShow.ArtworkPriceRes + (*ShowRel)(nil), // 20: ArtShow.ShowRel + (*DelShowRel)(nil), // 21: ArtShow.DelShowRel + (*SaveApplyReq)(nil), // 22: ArtShow.SaveApplyReq + (*SaveApplyRes)(nil), // 23: ArtShow.SaveApplyRes + (*ApplyListReq)(nil), // 24: ArtShow.ApplyListReq + (*ApplyListRes)(nil), // 25: ArtShow.ApplyListRes + (*ApplyShowReq)(nil), // 26: ArtShow.ApplyShowReq + (*ApplyShowRes)(nil), // 27: ArtShow.ApplyShowRes + (*ApplyDetail)(nil), // 28: ArtShow.ApplyDetail + (*ShowRelListReq)(nil), // 29: ArtShow.ShowRelListReq + (*ShowRelListRes)(nil), // 30: ArtShow.ShowRelListRes + (*UpdateApplyStatusReq)(nil), // 31: ArtShow.UpdateApplyStatusReq + (*DelApplyReq)(nil), // 32: ArtShow.DelApplyReq + (*ShowStatisticalInfoRes_Num)(nil), // 33: ArtShow.ShowStatisticalInfoRes.Num + (*ArtworkPriceRes_PriceInfo)(nil), // 34: ArtShow.ArtworkPriceRes.PriceInfo } var file_pb_artshow_proto_depIdxs = []int32{ 12, // 0: ArtShow.SaveShowReq.Artwork:type_name -> ArtShow.ArtworkDetail - 13, // 1: ArtShow.SaveShowReq.DelArtwork:type_name -> ArtShow.DelArtworkDetail + 15, // 1: ArtShow.SaveShowReq.DelArtwork:type_name -> ArtShow.DelArtworkDetail 4, // 2: ArtShow.ShowDetailRes.Data:type_name -> ArtShow.ShowDetail 12, // 3: ArtShow.ShowArtworkDetailRes.data:type_name -> ArtShow.ArtworkDetail 4, // 4: ArtShow.ShowListRes.Data:type_name -> ArtShow.ShowDetail 4, // 5: ArtShow.ShowListForArtworkRes.Data:type_name -> ArtShow.ShowDetail - 31, // 6: ArtShow.ShowStatisticalInfoRes.Data:type_name -> ArtShow.ShowStatisticalInfoRes.Num - 32, // 7: ArtShow.ArtworkPriceRes.Data:type_name -> ArtShow.ArtworkPriceRes.PriceInfo - 18, // 8: ArtShow.SaveApplyReq.Rel:type_name -> ArtShow.ShowRel - 19, // 9: ArtShow.SaveApplyReq.DelRel:type_name -> ArtShow.DelShowRel - 26, // 10: ArtShow.ApplyListRes.Data:type_name -> ArtShow.ApplyDetail - 26, // 11: ArtShow.ApplyShowRes.Apply:type_name -> ArtShow.ApplyDetail - 4, // 12: ArtShow.ApplyShowRes.Show:type_name -> ArtShow.ShowDetail - 18, // 13: ArtShow.ShowRelListRes.Data:type_name -> ArtShow.ShowRel - 0, // 14: ArtShow.ArtShow.CreateShow:input_type -> ArtShow.SaveShowReq - 0, // 15: ArtShow.ArtShow.UpdateShow:input_type -> ArtShow.SaveShowReq - 11, // 16: ArtShow.ArtShow.DelShow:input_type -> ArtShow.DelShowReq - 7, // 17: ArtShow.ArtShow.ShowList:input_type -> ArtShow.ShowListReq - 8, // 18: ArtShow.ArtShow.ShowListForArtwork:input_type -> ArtShow.ShowListForArtworkReq - 3, // 19: ArtShow.ArtShow.ShowArtworkInfo:input_type -> ArtShow.ShowDetailReq - 3, // 20: ArtShow.ArtShow.ShowDetail:input_type -> ArtShow.ShowDetailReq - 14, // 21: ArtShow.ArtShow.ShowStatisticalInfo:input_type -> ArtShow.ShowStatisticalInfoReq - 16, // 22: ArtShow.ArtShow.ArtworkPrice:input_type -> ArtShow.ArtworkPriceReq - 20, // 23: ArtShow.ArtShow.CreateApply:input_type -> ArtShow.SaveApplyReq - 20, // 24: ArtShow.ArtShow.UpdateApply:input_type -> ArtShow.SaveApplyReq - 30, // 25: ArtShow.ArtShow.DelApply:input_type -> ArtShow.DelApplyReq - 7, // 26: ArtShow.ArtShow.ShowListWithApply:input_type -> ArtShow.ShowListReq - 29, // 27: ArtShow.ArtShow.UpdateApplyStatus:input_type -> ArtShow.UpdateApplyStatusReq - 22, // 28: ArtShow.ArtShow.ApplyList:input_type -> ArtShow.ApplyListReq - 24, // 29: ArtShow.ArtShow.ApplyDetail:input_type -> ArtShow.ApplyShowReq - 1, // 30: ArtShow.ArtShow.CreateShow:output_type -> ArtShow.SaveShowRes - 1, // 31: ArtShow.ArtShow.UpdateShow:output_type -> ArtShow.SaveShowRes - 2, // 32: ArtShow.ArtShow.DelShow:output_type -> ArtShow.CommonRes - 9, // 33: ArtShow.ArtShow.ShowList:output_type -> ArtShow.ShowListRes - 10, // 34: ArtShow.ArtShow.ShowListForArtwork:output_type -> ArtShow.ShowListForArtworkRes - 6, // 35: ArtShow.ArtShow.ShowArtworkInfo:output_type -> ArtShow.ShowArtworkDetailRes - 5, // 36: ArtShow.ArtShow.ShowDetail:output_type -> ArtShow.ShowDetailRes - 15, // 37: ArtShow.ArtShow.ShowStatisticalInfo:output_type -> ArtShow.ShowStatisticalInfoRes - 17, // 38: ArtShow.ArtShow.ArtworkPrice:output_type -> ArtShow.ArtworkPriceRes - 21, // 39: ArtShow.ArtShow.CreateApply:output_type -> ArtShow.SaveApplyRes - 21, // 40: ArtShow.ArtShow.UpdateApply:output_type -> ArtShow.SaveApplyRes - 2, // 41: ArtShow.ArtShow.DelApply:output_type -> ArtShow.CommonRes - 9, // 42: ArtShow.ArtShow.ShowListWithApply:output_type -> ArtShow.ShowListRes - 2, // 43: ArtShow.ArtShow.UpdateApplyStatus:output_type -> ArtShow.CommonRes - 23, // 44: ArtShow.ArtShow.ApplyList:output_type -> ArtShow.ApplyListRes - 25, // 45: ArtShow.ArtShow.ApplyDetail:output_type -> ArtShow.ApplyShowRes - 30, // [30:46] is the sub-list for method output_type - 14, // [14:30] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 14, // [14:14] is the sub-list for extension extendee - 0, // [0:14] is the sub-list for field type_name + 13, // 6: ArtShow.ArtworkPriceListRes.Data:type_name -> ArtShow.ArtworkPriceDetail + 33, // 7: ArtShow.ShowStatisticalInfoRes.Data:type_name -> ArtShow.ShowStatisticalInfoRes.Num + 34, // 8: ArtShow.ArtworkPriceRes.Data:type_name -> ArtShow.ArtworkPriceRes.PriceInfo + 20, // 9: ArtShow.SaveApplyReq.Rel:type_name -> ArtShow.ShowRel + 21, // 10: ArtShow.SaveApplyReq.DelRel:type_name -> ArtShow.DelShowRel + 28, // 11: ArtShow.ApplyListRes.Data:type_name -> ArtShow.ApplyDetail + 28, // 12: ArtShow.ApplyShowRes.Apply:type_name -> ArtShow.ApplyDetail + 4, // 13: ArtShow.ApplyShowRes.Show:type_name -> ArtShow.ShowDetail + 20, // 14: ArtShow.ShowRelListRes.Data:type_name -> ArtShow.ShowRel + 0, // 15: ArtShow.ArtShow.CreateShow:input_type -> ArtShow.SaveShowReq + 0, // 16: ArtShow.ArtShow.UpdateShow:input_type -> ArtShow.SaveShowReq + 11, // 17: ArtShow.ArtShow.DelShow:input_type -> ArtShow.DelShowReq + 7, // 18: ArtShow.ArtShow.ShowList:input_type -> ArtShow.ShowListReq + 7, // 19: ArtShow.ArtShow.ShowListWithRel:input_type -> ArtShow.ShowListReq + 8, // 20: ArtShow.ArtShow.ShowListForArtwork:input_type -> ArtShow.ShowListForArtworkReq + 3, // 21: ArtShow.ArtShow.ShowArtworkInfo:input_type -> ArtShow.ShowDetailReq + 3, // 22: ArtShow.ArtShow.ShowDetail:input_type -> ArtShow.ShowDetailReq + 16, // 23: ArtShow.ArtShow.ShowStatisticalInfo:input_type -> ArtShow.ShowStatisticalInfoReq + 18, // 24: ArtShow.ArtShow.ArtworkPrice:input_type -> ArtShow.ArtworkPriceReq + 22, // 25: ArtShow.ArtShow.CreateApply:input_type -> ArtShow.SaveApplyReq + 22, // 26: ArtShow.ArtShow.UpdateApply:input_type -> ArtShow.SaveApplyReq + 32, // 27: ArtShow.ArtShow.DelApply:input_type -> ArtShow.DelApplyReq + 7, // 28: ArtShow.ArtShow.ShowListWithApply:input_type -> ArtShow.ShowListReq + 31, // 29: ArtShow.ArtShow.UpdateApplyStatus:input_type -> ArtShow.UpdateApplyStatusReq + 24, // 30: ArtShow.ArtShow.ApplyList:input_type -> ArtShow.ApplyListReq + 26, // 31: ArtShow.ArtShow.ApplyDetail:input_type -> ArtShow.ApplyShowReq + 3, // 32: ArtShow.ArtShow.ArtworkPriceList:input_type -> ArtShow.ShowDetailReq + 1, // 33: ArtShow.ArtShow.CreateShow:output_type -> ArtShow.SaveShowRes + 1, // 34: ArtShow.ArtShow.UpdateShow:output_type -> ArtShow.SaveShowRes + 2, // 35: ArtShow.ArtShow.DelShow:output_type -> ArtShow.CommonRes + 9, // 36: ArtShow.ArtShow.ShowList:output_type -> ArtShow.ShowListRes + 9, // 37: ArtShow.ArtShow.ShowListWithRel:output_type -> ArtShow.ShowListRes + 10, // 38: ArtShow.ArtShow.ShowListForArtwork:output_type -> ArtShow.ShowListForArtworkRes + 6, // 39: ArtShow.ArtShow.ShowArtworkInfo:output_type -> ArtShow.ShowArtworkDetailRes + 5, // 40: ArtShow.ArtShow.ShowDetail:output_type -> ArtShow.ShowDetailRes + 17, // 41: ArtShow.ArtShow.ShowStatisticalInfo:output_type -> ArtShow.ShowStatisticalInfoRes + 19, // 42: ArtShow.ArtShow.ArtworkPrice:output_type -> ArtShow.ArtworkPriceRes + 23, // 43: ArtShow.ArtShow.CreateApply:output_type -> ArtShow.SaveApplyRes + 23, // 44: ArtShow.ArtShow.UpdateApply:output_type -> ArtShow.SaveApplyRes + 2, // 45: ArtShow.ArtShow.DelApply:output_type -> ArtShow.CommonRes + 9, // 46: ArtShow.ArtShow.ShowListWithApply:output_type -> ArtShow.ShowListRes + 2, // 47: ArtShow.ArtShow.UpdateApplyStatus:output_type -> ArtShow.CommonRes + 25, // 48: ArtShow.ArtShow.ApplyList:output_type -> ArtShow.ApplyListRes + 27, // 49: ArtShow.ArtShow.ApplyDetail:output_type -> ArtShow.ApplyShowRes + 14, // 50: ArtShow.ArtShow.ArtworkPriceList:output_type -> ArtShow.ArtworkPriceListRes + 33, // [33:51] is the sub-list for method output_type + 15, // [15:33] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name } func init() { file_pb_artshow_proto_init() } @@ -2893,7 +3210,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelArtworkDetail); i { + switch v := v.(*ArtworkPriceDetail); i { case 0: return &v.state case 1: @@ -2905,7 +3222,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowStatisticalInfoReq); i { + switch v := v.(*ArtworkPriceListRes); i { case 0: return &v.state case 1: @@ -2917,7 +3234,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowStatisticalInfoRes); i { + switch v := v.(*DelArtworkDetail); i { case 0: return &v.state case 1: @@ -2929,7 +3246,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkPriceReq); i { + switch v := v.(*ShowStatisticalInfoReq); i { case 0: return &v.state case 1: @@ -2941,7 +3258,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkPriceRes); i { + switch v := v.(*ShowStatisticalInfoRes); i { case 0: return &v.state case 1: @@ -2953,7 +3270,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowRel); i { + switch v := v.(*ArtworkPriceReq); i { case 0: return &v.state case 1: @@ -2965,7 +3282,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelShowRel); i { + switch v := v.(*ArtworkPriceRes); i { case 0: return &v.state case 1: @@ -2977,7 +3294,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SaveApplyReq); i { + switch v := v.(*ShowRel); i { case 0: return &v.state case 1: @@ -2989,7 +3306,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SaveApplyRes); i { + switch v := v.(*DelShowRel); i { case 0: return &v.state case 1: @@ -3001,7 +3318,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApplyListReq); i { + switch v := v.(*SaveApplyReq); i { case 0: return &v.state case 1: @@ -3013,7 +3330,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApplyListRes); i { + switch v := v.(*SaveApplyRes); i { case 0: return &v.state case 1: @@ -3025,7 +3342,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApplyShowReq); i { + switch v := v.(*ApplyListReq); i { case 0: return &v.state case 1: @@ -3037,7 +3354,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApplyShowRes); i { + switch v := v.(*ApplyListRes); i { case 0: return &v.state case 1: @@ -3049,7 +3366,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApplyDetail); i { + switch v := v.(*ApplyShowReq); i { case 0: return &v.state case 1: @@ -3061,7 +3378,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowRelListReq); i { + switch v := v.(*ApplyShowRes); i { case 0: return &v.state case 1: @@ -3073,7 +3390,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowRelListRes); i { + switch v := v.(*ApplyDetail); i { case 0: return &v.state case 1: @@ -3085,7 +3402,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateApplyStatusReq); i { + switch v := v.(*ShowRelListReq); i { case 0: return &v.state case 1: @@ -3097,7 +3414,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelApplyReq); i { + switch v := v.(*ShowRelListRes); i { case 0: return &v.state case 1: @@ -3109,7 +3426,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowStatisticalInfoRes_Num); i { + switch v := v.(*UpdateApplyStatusReq); i { case 0: return &v.state case 1: @@ -3121,6 +3438,30 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelApplyReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artshow_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShowStatisticalInfoRes_Num); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artshow_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ArtworkPriceRes_PriceInfo); i { case 0: return &v.state @@ -3139,7 +3480,7 @@ func file_pb_artshow_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_artshow_proto_rawDesc, NumEnums: 0, - NumMessages: 33, + NumMessages: 35, NumExtensions: 0, NumServices: 1, }, diff --git a/pb/artShow/artshow.validator.pb.go b/pb/artShow/artshow.validator.pb.go index 08d82f3..c67fbaa 100644 --- a/pb/artShow/artshow.validator.pb.go +++ b/pb/artShow/artshow.validator.pb.go @@ -94,6 +94,19 @@ func (this *DelShowReq) Validate() error { func (this *ArtworkDetail) Validate() error { return nil } +func (this *ArtworkPriceDetail) Validate() error { + return nil +} +func (this *ArtworkPriceListRes) 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 *DelArtworkDetail) Validate() error { return nil } diff --git a/pb/artShow/artshow_triple.pb.go b/pb/artShow/artshow_triple.pb.go index 9d53a11..a48581f 100644 --- a/pb/artShow/artshow_triple.pb.go +++ b/pb/artShow/artshow_triple.pb.go @@ -32,6 +32,7 @@ type ArtShowClient interface { UpdateShow(ctx context.Context, in *SaveShowReq, opts ...grpc_go.CallOption) (*SaveShowRes, common.ErrorWithAttachment) DelShow(ctx context.Context, in *DelShowReq, opts ...grpc_go.CallOption) (*CommonRes, common.ErrorWithAttachment) ShowList(ctx context.Context, in *ShowListReq, opts ...grpc_go.CallOption) (*ShowListRes, common.ErrorWithAttachment) + ShowListWithRel(ctx context.Context, in *ShowListReq, opts ...grpc_go.CallOption) (*ShowListRes, common.ErrorWithAttachment) ShowListForArtwork(ctx context.Context, in *ShowListForArtworkReq, opts ...grpc_go.CallOption) (*ShowListForArtworkRes, common.ErrorWithAttachment) ShowArtworkInfo(ctx context.Context, in *ShowDetailReq, opts ...grpc_go.CallOption) (*ShowArtworkDetailRes, common.ErrorWithAttachment) ShowDetail(ctx context.Context, in *ShowDetailReq, opts ...grpc_go.CallOption) (*ShowDetailRes, common.ErrorWithAttachment) @@ -44,6 +45,7 @@ type ArtShowClient interface { UpdateApplyStatus(ctx context.Context, in *UpdateApplyStatusReq, opts ...grpc_go.CallOption) (*CommonRes, common.ErrorWithAttachment) ApplyList(ctx context.Context, in *ApplyListReq, opts ...grpc_go.CallOption) (*ApplyListRes, common.ErrorWithAttachment) ApplyDetail(ctx context.Context, in *ApplyShowReq, opts ...grpc_go.CallOption) (*ApplyShowRes, common.ErrorWithAttachment) + ArtworkPriceList(ctx context.Context, in *ShowDetailReq, opts ...grpc_go.CallOption) (*ArtworkPriceListRes, common.ErrorWithAttachment) } type artShowClient struct { @@ -55,6 +57,7 @@ type ArtShowClientImpl struct { UpdateShow func(ctx context.Context, in *SaveShowReq) (*SaveShowRes, error) DelShow func(ctx context.Context, in *DelShowReq) (*CommonRes, error) ShowList func(ctx context.Context, in *ShowListReq) (*ShowListRes, error) + ShowListWithRel func(ctx context.Context, in *ShowListReq) (*ShowListRes, error) ShowListForArtwork func(ctx context.Context, in *ShowListForArtworkReq) (*ShowListForArtworkRes, error) ShowArtworkInfo func(ctx context.Context, in *ShowDetailReq) (*ShowArtworkDetailRes, error) ShowDetail func(ctx context.Context, in *ShowDetailReq) (*ShowDetailRes, error) @@ -67,6 +70,7 @@ type ArtShowClientImpl struct { UpdateApplyStatus func(ctx context.Context, in *UpdateApplyStatusReq) (*CommonRes, error) ApplyList func(ctx context.Context, in *ApplyListReq) (*ApplyListRes, error) ApplyDetail func(ctx context.Context, in *ApplyShowReq) (*ApplyShowRes, error) + ArtworkPriceList func(ctx context.Context, in *ShowDetailReq) (*ArtworkPriceListRes, error) } func (c *ArtShowClientImpl) GetDubboStub(cc *triple.TripleConn) ArtShowClient { @@ -105,6 +109,12 @@ func (c *artShowClient) ShowList(ctx context.Context, in *ShowListReq, opts ...g return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ShowList", in, out) } +func (c *artShowClient) ShowListWithRel(ctx context.Context, in *ShowListReq, opts ...grpc_go.CallOption) (*ShowListRes, common.ErrorWithAttachment) { + out := new(ShowListRes) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ShowListWithRel", in, out) +} + func (c *artShowClient) ShowListForArtwork(ctx context.Context, in *ShowListForArtworkReq, opts ...grpc_go.CallOption) (*ShowListForArtworkRes, common.ErrorWithAttachment) { out := new(ShowListForArtworkRes) interfaceKey := ctx.Value(constant.InterfaceKey).(string) @@ -177,6 +187,12 @@ func (c *artShowClient) ApplyDetail(ctx context.Context, in *ApplyShowReq, opts return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ApplyDetail", in, out) } +func (c *artShowClient) ArtworkPriceList(ctx context.Context, in *ShowDetailReq, opts ...grpc_go.CallOption) (*ArtworkPriceListRes, common.ErrorWithAttachment) { + out := new(ArtworkPriceListRes) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ArtworkPriceList", in, out) +} + // ArtShowServer is the server API for ArtShow service. // All implementations must embed UnimplementedArtShowServer // for forward compatibility @@ -185,6 +201,7 @@ type ArtShowServer interface { UpdateShow(context.Context, *SaveShowReq) (*SaveShowRes, error) DelShow(context.Context, *DelShowReq) (*CommonRes, error) ShowList(context.Context, *ShowListReq) (*ShowListRes, error) + ShowListWithRel(context.Context, *ShowListReq) (*ShowListRes, error) ShowListForArtwork(context.Context, *ShowListForArtworkReq) (*ShowListForArtworkRes, error) ShowArtworkInfo(context.Context, *ShowDetailReq) (*ShowArtworkDetailRes, error) ShowDetail(context.Context, *ShowDetailReq) (*ShowDetailRes, error) @@ -197,6 +214,7 @@ type ArtShowServer interface { UpdateApplyStatus(context.Context, *UpdateApplyStatusReq) (*CommonRes, error) ApplyList(context.Context, *ApplyListReq) (*ApplyListRes, error) ApplyDetail(context.Context, *ApplyShowReq) (*ApplyShowRes, error) + ArtworkPriceList(context.Context, *ShowDetailReq) (*ArtworkPriceListRes, error) mustEmbedUnimplementedArtShowServer() } @@ -217,6 +235,9 @@ func (UnimplementedArtShowServer) DelShow(context.Context, *DelShowReq) (*Common func (UnimplementedArtShowServer) ShowList(context.Context, *ShowListReq) (*ShowListRes, error) { return nil, status.Errorf(codes.Unimplemented, "method ShowList not implemented") } +func (UnimplementedArtShowServer) ShowListWithRel(context.Context, *ShowListReq) (*ShowListRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ShowListWithRel not implemented") +} func (UnimplementedArtShowServer) ShowListForArtwork(context.Context, *ShowListForArtworkReq) (*ShowListForArtworkRes, error) { return nil, status.Errorf(codes.Unimplemented, "method ShowListForArtwork not implemented") } @@ -253,6 +274,9 @@ func (UnimplementedArtShowServer) ApplyList(context.Context, *ApplyListReq) (*Ap func (UnimplementedArtShowServer) ApplyDetail(context.Context, *ApplyShowReq) (*ApplyShowRes, error) { return nil, status.Errorf(codes.Unimplemented, "method ApplyDetail not implemented") } +func (UnimplementedArtShowServer) ArtworkPriceList(context.Context, *ShowDetailReq) (*ArtworkPriceListRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ArtworkPriceList not implemented") +} func (s *UnimplementedArtShowServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -397,6 +421,35 @@ func _ArtShow_ShowList_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } +func _ArtShow_ShowListWithRel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ShowListReq) + 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("ShowListWithRel", 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 _ArtShow_ShowListForArtwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(ShowListForArtworkReq) if err := dec(in); err != nil { @@ -745,6 +798,35 @@ func _ArtShow_ApplyDetail_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _ArtShow_ArtworkPriceList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ShowDetailReq) + 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("ArtworkPriceList", 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) +} + // ArtShow_ServiceDesc is the grpc_go.ServiceDesc for ArtShow service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -768,6 +850,10 @@ var ArtShow_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "ShowList", Handler: _ArtShow_ShowList_Handler, }, + { + MethodName: "ShowListWithRel", + Handler: _ArtShow_ShowListWithRel_Handler, + }, { MethodName: "ShowListForArtwork", Handler: _ArtShow_ShowListForArtwork_Handler, @@ -816,6 +902,10 @@ var ArtShow_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "ApplyDetail", Handler: _ArtShow_ApplyDetail_Handler, }, + { + MethodName: "ArtworkPriceList", + Handler: _ArtShow_ArtworkPriceList_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/artshow.proto", diff --git a/pb/artshow.proto b/pb/artshow.proto index b6de76f..abd4918 100644 --- a/pb/artshow.proto +++ b/pb/artshow.proto @@ -7,7 +7,8 @@ service ArtShow { rpc CreateShow (SaveShowReq) returns (SaveShowRes) {} // 画展包创建操作 rpc UpdateShow (SaveShowReq) returns (SaveShowRes) {} // 画展包更新操作 rpc DelShow (DelShowReq) returns (CommonRes) {} // 画展包删除操作 - rpc ShowList (ShowListReq) returns (ShowListRes) {} // 画展包列表展示 + rpc ShowList (ShowListReq) returns (ShowListRes) {} // 画展包列表展示 不携带 画展时间 画展地址 + rpc ShowListWithRel (ShowListReq) returns (ShowListRes) {} // 画展包列表展示 携带 画展时间 画展地址 rpc ShowListForArtwork (ShowListForArtworkReq) returns (ShowListForArtworkRes) {} // 画展包列表展示 画作使用 rpc ShowArtworkInfo (ShowDetailReq) returns (ShowArtworkDetailRes) {} // 画展包画作展示 rpc ShowDetail (ShowDetailReq) returns (ShowDetailRes) {} // 画展包展示 @@ -20,6 +21,7 @@ service ArtShow { rpc UpdateApplyStatus (UpdateApplyStatusReq) returns (CommonRes) {} // 更新画展包状态 rpc ApplyList (ApplyListReq) returns (ApplyListRes) {} // 画展包申请列表 rpc ApplyDetail (ApplyShowReq) returns (ApplyShowRes) {} // 画展包申请列表 + rpc ArtworkPriceList (ShowDetailReq) returns (ArtworkPriceListRes) {} // 画作详情列表 } // 创建 更新画展包 @@ -89,8 +91,14 @@ message ShowListReq { string StartTime = 3 [json_name = "start_time"]; string EndTime = 4 [json_name = "end_time"]; - string Name = 5 [json_name = "name"]; - int32 IsShow = 6 [json_name = "is_show"]; + string ShowSeq = 5 [json_name = "show_seq"]; + string ShowName = 6 [json_name = "show_name"]; + string ArtistName = 7 [json_name = "artist_name"]; + int64 StartPrice = 8 [json_name = "start_price"]; + int64 EndPrice = 9 [json_name = "end_price"]; + int64 StartReward = 10 [json_name = "start_reward"]; + int64 EndReward = 11 [json_name = "end_reward"]; + int32 IsShow = 12 [json_name = "is_show"]; } message ShowListForArtworkReq { @@ -134,6 +142,29 @@ message ArtworkDetail { string SmallPic = 9 [json_name = "small_pic"]; } +// 画作详情 +message ArtworkPriceDetail { + string ArtworkPriceUID = 1 [json_name = "artwork_price_uid"]; + string ShowUID =2 [json_name = "show_uid"]; + string ArtworkUID = 3 [json_name = "artwork_uid"]; + string ArtworkName = 4 [json_name = "artwork_name"]; + string ArtistName = 5 [json_name = "artist_name"]; + int32 Length = 6 [json_name = "length"]; + int32 Width = 7 [json_name = "width"]; + int32 Ruler = 8 [json_name = "ruler"]; + string SmallPic = 9 [json_name = "small_pic"]; + int64 Price = 10 [json_name = "price"]; + int64 RulerPrice = 11 [json_name = "ruler_price"]; + int64 ArtworkPrice = 12 [json_name = "artwork_price"]; + int64 MarketPrice = 13 [json_name = "market_price"]; + int64 CopyrightPrice = 14 [json_name = "copyright_price"]; +} + +message ArtworkPriceListRes { + repeated ArtworkPriceDetail Data = 1 [json_name = "data"]; + string Msg = 2 [json_name = "msg"]; +} + // 画展包 删除的画作信息 message DelArtworkDetail { string ArtworkPriceUID = 1 [json_name = "artwork_price_uid"]; diff --git a/pb/grpc/artshow_grpc.pb.go b/pb/grpc/artshow_grpc.pb.go deleted file mode 100644 index a668a0a..0000000 --- a/pb/grpc/artshow_grpc.pb.go +++ /dev/null @@ -1,646 +0,0 @@ -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.10.1 -// source: pb/artshow.proto - -package grpc - -import ( - context "context" - "fonchain-artshow/pb/artShow" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 - -// ArtShowClient is the client API for ArtShow service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type ArtShowClient interface { - CreateShow(ctx context.Context, in *artShow.SaveShowReq, opts ...grpc.CallOption) (*artShow.SaveShowRes, error) - UpdateShow(ctx context.Context, in *artShow.SaveShowReq, opts ...grpc.CallOption) (*artShow.SaveShowRes, error) - DelShow(ctx context.Context, in *artShow.DelShowReq, opts ...grpc.CallOption) (*artShow.CommonRes, error) - ShowList(ctx context.Context, in *artShow.ShowListReq, opts ...grpc.CallOption) (*artShow.ShowListRes, error) - ShowListForArtwork(ctx context.Context, in *artShow.ShowListForArtworkReq, opts ...grpc.CallOption) (*artShow.ShowListForArtworkRes, error) - ShowArtworkInfo(ctx context.Context, in *artShow.ShowDetailReq, opts ...grpc.CallOption) (*artShow.ShowArtworkDetailRes, error) - ShowDetail(ctx context.Context, in *artShow.ShowDetailReq, opts ...grpc.CallOption) (*artShow.ShowDetailRes, error) - ShowStatisticalInfo(ctx context.Context, in *artShow.ShowStatisticalInfoReq, opts ...grpc.CallOption) (*artShow.ShowStatisticalInfoRes, error) - ArtworkPrice(ctx context.Context, in *artShow.ArtworkPriceReq, opts ...grpc.CallOption) (*artShow.ArtworkPriceRes, error) - CreateApply(ctx context.Context, in *artShow.SaveApplyReq, opts ...grpc.CallOption) (*artShow.SaveApplyRes, error) - UpdateApply(ctx context.Context, in *artShow.SaveApplyReq, opts ...grpc.CallOption) (*artShow.SaveApplyRes, error) - DelApply(ctx context.Context, in *artShow.DelApplyReq, opts ...grpc.CallOption) (*artShow.CommonRes, error) - ShowListWithApply(ctx context.Context, in *artShow.ShowListReq, opts ...grpc.CallOption) (*artShow.ShowListRes, error) - UpdateApplyStatus(ctx context.Context, in *artShow.UpdateApplyStatusReq, opts ...grpc.CallOption) (*artShow.CommonRes, error) - ApplyList(ctx context.Context, in *artShow.ApplyListReq, opts ...grpc.CallOption) (*artShow.ApplyListRes, error) - ApplyDetail(ctx context.Context, in *artShow.ApplyShowReq, opts ...grpc.CallOption) (*artShow.ApplyShowRes, error) -} - -type artShowClient struct { - cc grpc.ClientConnInterface -} - -func NewArtShowClient(cc grpc.ClientConnInterface) ArtShowClient { - return &artShowClient{cc} -} - -func (c *artShowClient) CreateShow(ctx context.Context, in *artShow.SaveShowReq, opts ...grpc.CallOption) (*artShow.SaveShowRes, error) { - out := new(artShow.SaveShowRes) - err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/CreateShow", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *artShowClient) UpdateShow(ctx context.Context, in *artShow.SaveShowReq, opts ...grpc.CallOption) (*artShow.SaveShowRes, error) { - out := new(artShow.SaveShowRes) - err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/UpdateShow", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *artShowClient) DelShow(ctx context.Context, in *artShow.DelShowReq, opts ...grpc.CallOption) (*artShow.CommonRes, error) { - out := new(artShow.CommonRes) - err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/DelShow", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *artShowClient) ShowList(ctx context.Context, in *artShow.ShowListReq, opts ...grpc.CallOption) (*artShow.ShowListRes, error) { - out := new(artShow.ShowListRes) - err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ShowList", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *artShowClient) ShowListForArtwork(ctx context.Context, in *artShow.ShowListForArtworkReq, opts ...grpc.CallOption) (*artShow.ShowListForArtworkRes, error) { - out := new(artShow.ShowListForArtworkRes) - err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ShowListForArtwork", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *artShowClient) ShowArtworkInfo(ctx context.Context, in *artShow.ShowDetailReq, opts ...grpc.CallOption) (*artShow.ShowArtworkDetailRes, error) { - out := new(artShow.ShowArtworkDetailRes) - err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ShowArtworkInfo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *artShowClient) ShowDetail(ctx context.Context, in *artShow.ShowDetailReq, opts ...grpc.CallOption) (*artShow.ShowDetailRes, error) { - out := new(artShow.ShowDetailRes) - err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ShowDetail", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *artShowClient) ShowStatisticalInfo(ctx context.Context, in *artShow.ShowStatisticalInfoReq, opts ...grpc.CallOption) (*artShow.ShowStatisticalInfoRes, error) { - out := new(artShow.ShowStatisticalInfoRes) - err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ShowStatisticalInfo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *artShowClient) ArtworkPrice(ctx context.Context, in *artShow.ArtworkPriceReq, opts ...grpc.CallOption) (*artShow.ArtworkPriceRes, error) { - out := new(artShow.ArtworkPriceRes) - err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ArtworkPrice", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *artShowClient) CreateApply(ctx context.Context, in *artShow.SaveApplyReq, opts ...grpc.CallOption) (*artShow.SaveApplyRes, error) { - out := new(artShow.SaveApplyRes) - err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/CreateApply", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *artShowClient) UpdateApply(ctx context.Context, in *artShow.SaveApplyReq, opts ...grpc.CallOption) (*artShow.SaveApplyRes, error) { - out := new(artShow.SaveApplyRes) - err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/UpdateApply", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *artShowClient) DelApply(ctx context.Context, in *artShow.DelApplyReq, opts ...grpc.CallOption) (*artShow.CommonRes, error) { - out := new(artShow.CommonRes) - err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/DelApply", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *artShowClient) ShowListWithApply(ctx context.Context, in *artShow.ShowListReq, opts ...grpc.CallOption) (*artShow.ShowListRes, error) { - out := new(artShow.ShowListRes) - err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ShowListWithApply", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *artShowClient) UpdateApplyStatus(ctx context.Context, in *artShow.UpdateApplyStatusReq, opts ...grpc.CallOption) (*artShow.CommonRes, error) { - out := new(artShow.CommonRes) - err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/UpdateApplyStatus", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *artShowClient) ApplyList(ctx context.Context, in *artShow.ApplyListReq, opts ...grpc.CallOption) (*artShow.ApplyListRes, error) { - out := new(artShow.ApplyListRes) - err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ApplyList", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *artShowClient) ApplyDetail(ctx context.Context, in *artShow.ApplyShowReq, opts ...grpc.CallOption) (*artShow.ApplyShowRes, error) { - out := new(artShow.ApplyShowRes) - err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ApplyDetail", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// ArtShowServer is the server API for ArtShow service. -// All implementations must embed UnimplementedArtShowServer -// for forward compatibility -type ArtShowServer interface { - CreateShow(context.Context, *artShow.SaveShowReq) (*artShow.SaveShowRes, error) - UpdateShow(context.Context, *artShow.SaveShowReq) (*artShow.SaveShowRes, error) - DelShow(context.Context, *artShow.DelShowReq) (*artShow.CommonRes, error) - ShowList(context.Context, *artShow.ShowListReq) (*artShow.ShowListRes, error) - ShowListForArtwork(context.Context, *artShow.ShowListForArtworkReq) (*artShow.ShowListForArtworkRes, error) - ShowArtworkInfo(context.Context, *artShow.ShowDetailReq) (*artShow.ShowArtworkDetailRes, error) - ShowDetail(context.Context, *artShow.ShowDetailReq) (*artShow.ShowDetailRes, error) - ShowStatisticalInfo(context.Context, *artShow.ShowStatisticalInfoReq) (*artShow.ShowStatisticalInfoRes, error) - ArtworkPrice(context.Context, *artShow.ArtworkPriceReq) (*artShow.ArtworkPriceRes, error) - CreateApply(context.Context, *artShow.SaveApplyReq) (*artShow.SaveApplyRes, error) - UpdateApply(context.Context, *artShow.SaveApplyReq) (*artShow.SaveApplyRes, error) - DelApply(context.Context, *artShow.DelApplyReq) (*artShow.CommonRes, error) - ShowListWithApply(context.Context, *artShow.ShowListReq) (*artShow.ShowListRes, error) - UpdateApplyStatus(context.Context, *artShow.UpdateApplyStatusReq) (*artShow.CommonRes, error) - ApplyList(context.Context, *artShow.ApplyListReq) (*artShow.ApplyListRes, error) - ApplyDetail(context.Context, *artShow.ApplyShowReq) (*artShow.ApplyShowRes, error) - mustEmbedUnimplementedArtShowServer() -} - -// UnimplementedArtShowServer must be embedded to have forward compatible implementations. -type UnimplementedArtShowServer struct { -} - -func (UnimplementedArtShowServer) CreateShow(context.Context, *artShow.SaveShowReq) (*artShow.SaveShowRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateShow not implemented") -} -func (UnimplementedArtShowServer) UpdateShow(context.Context, *artShow.SaveShowReq) (*artShow.SaveShowRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateShow not implemented") -} -func (UnimplementedArtShowServer) DelShow(context.Context, *artShow.DelShowReq) (*artShow.CommonRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method DelShow not implemented") -} -func (UnimplementedArtShowServer) ShowList(context.Context, *artShow.ShowListReq) (*artShow.ShowListRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method ShowList not implemented") -} -func (UnimplementedArtShowServer) ShowListForArtwork(context.Context, *artShow.ShowListForArtworkReq) (*artShow.ShowListForArtworkRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method ShowListForArtwork not implemented") -} -func (UnimplementedArtShowServer) ShowArtworkInfo(context.Context, *artShow.ShowDetailReq) (*artShow.ShowArtworkDetailRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method ShowArtworkInfo not implemented") -} -func (UnimplementedArtShowServer) ShowDetail(context.Context, *artShow.ShowDetailReq) (*artShow.ShowDetailRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method ShowDetail not implemented") -} -func (UnimplementedArtShowServer) ShowStatisticalInfo(context.Context, *artShow.ShowStatisticalInfoReq) (*artShow.ShowStatisticalInfoRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method ShowStatisticalInfo not implemented") -} -func (UnimplementedArtShowServer) ArtworkPrice(context.Context, *artShow.ArtworkPriceReq) (*artShow.ArtworkPriceRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method ArtworkPrice not implemented") -} -func (UnimplementedArtShowServer) CreateApply(context.Context, *artShow.SaveApplyReq) (*artShow.SaveApplyRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateApply not implemented") -} -func (UnimplementedArtShowServer) UpdateApply(context.Context, *artShow.SaveApplyReq) (*artShow.SaveApplyRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateApply not implemented") -} -func (UnimplementedArtShowServer) DelApply(context.Context, *artShow.DelApplyReq) (*artShow.CommonRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method DelApply not implemented") -} -func (UnimplementedArtShowServer) ShowListWithApply(context.Context, *artShow.ShowListReq) (*artShow.ShowListRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method ShowListWithApply not implemented") -} -func (UnimplementedArtShowServer) UpdateApplyStatus(context.Context, *artShow.UpdateApplyStatusReq) (*artShow.CommonRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateApplyStatus not implemented") -} -func (UnimplementedArtShowServer) ApplyList(context.Context, *artShow.ApplyListReq) (*artShow.ApplyListRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method ApplyList not implemented") -} -func (UnimplementedArtShowServer) ApplyDetail(context.Context, *artShow.ApplyShowReq) (*artShow.ApplyShowRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method ApplyDetail not implemented") -} -func (UnimplementedArtShowServer) mustEmbedUnimplementedArtShowServer() {} - -// UnsafeArtShowServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to ArtShowServer will -// result in compilation errors. -type UnsafeArtShowServer interface { - mustEmbedUnimplementedArtShowServer() -} - -func RegisterArtShowServer(s grpc.ServiceRegistrar, srv ArtShowServer) { - s.RegisterService(&ArtShow_ServiceDesc, srv) -} - -func _ArtShow_CreateShow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(artShow.SaveShowReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ArtShowServer).CreateShow(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/ArtShow.ArtShow/CreateShow", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ArtShowServer).CreateShow(ctx, req.(*artShow.SaveShowReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ArtShow_UpdateShow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(artShow.SaveShowReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ArtShowServer).UpdateShow(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/ArtShow.ArtShow/UpdateShow", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ArtShowServer).UpdateShow(ctx, req.(*artShow.SaveShowReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ArtShow_DelShow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(artShow.DelShowReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ArtShowServer).DelShow(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/ArtShow.ArtShow/DelShow", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ArtShowServer).DelShow(ctx, req.(*artShow.DelShowReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ArtShow_ShowList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(artShow.ShowListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ArtShowServer).ShowList(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/ArtShow.ArtShow/ShowList", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ArtShowServer).ShowList(ctx, req.(*artShow.ShowListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ArtShow_ShowListForArtwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(artShow.ShowListForArtworkReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ArtShowServer).ShowListForArtwork(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/ArtShow.ArtShow/ShowListForArtwork", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ArtShowServer).ShowListForArtwork(ctx, req.(*artShow.ShowListForArtworkReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ArtShow_ShowArtworkInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(artShow.ShowDetailReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ArtShowServer).ShowArtworkInfo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/ArtShow.ArtShow/ShowArtworkInfo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ArtShowServer).ShowArtworkInfo(ctx, req.(*artShow.ShowDetailReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ArtShow_ShowDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(artShow.ShowDetailReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ArtShowServer).ShowDetail(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/ArtShow.ArtShow/ShowDetail", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ArtShowServer).ShowDetail(ctx, req.(*artShow.ShowDetailReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ArtShow_ShowStatisticalInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(artShow.ShowStatisticalInfoReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ArtShowServer).ShowStatisticalInfo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/ArtShow.ArtShow/ShowStatisticalInfo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ArtShowServer).ShowStatisticalInfo(ctx, req.(*artShow.ShowStatisticalInfoReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ArtShow_ArtworkPrice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(artShow.ArtworkPriceReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ArtShowServer).ArtworkPrice(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/ArtShow.ArtShow/ArtworkPrice", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ArtShowServer).ArtworkPrice(ctx, req.(*artShow.ArtworkPriceReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ArtShow_CreateApply_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(artShow.SaveApplyReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ArtShowServer).CreateApply(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/ArtShow.ArtShow/CreateApply", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ArtShowServer).CreateApply(ctx, req.(*artShow.SaveApplyReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ArtShow_UpdateApply_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(artShow.SaveApplyReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ArtShowServer).UpdateApply(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/ArtShow.ArtShow/UpdateApply", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ArtShowServer).UpdateApply(ctx, req.(*artShow.SaveApplyReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ArtShow_DelApply_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(artShow.DelApplyReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ArtShowServer).DelApply(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/ArtShow.ArtShow/DelApply", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ArtShowServer).DelApply(ctx, req.(*artShow.DelApplyReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ArtShow_ShowListWithApply_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(artShow.ShowListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ArtShowServer).ShowListWithApply(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/ArtShow.ArtShow/ShowListWithApply", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ArtShowServer).ShowListWithApply(ctx, req.(*artShow.ShowListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ArtShow_UpdateApplyStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(artShow.UpdateApplyStatusReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ArtShowServer).UpdateApplyStatus(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/ArtShow.ArtShow/UpdateApplyStatus", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ArtShowServer).UpdateApplyStatus(ctx, req.(*artShow.UpdateApplyStatusReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ArtShow_ApplyList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(artShow.ApplyListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ArtShowServer).ApplyList(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/ArtShow.ArtShow/ApplyList", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ArtShowServer).ApplyList(ctx, req.(*artShow.ApplyListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ArtShow_ApplyDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(artShow.ApplyShowReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ArtShowServer).ApplyDetail(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/ArtShow.ArtShow/ApplyDetail", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ArtShowServer).ApplyDetail(ctx, req.(*artShow.ApplyShowReq)) - } - return interceptor(ctx, in, info, handler) -} - -// ArtShow_ServiceDesc is the grpc.ServiceDesc for ArtShow service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var ArtShow_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "ArtShow.ArtShow", - HandlerType: (*ArtShowServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "CreateShow", - Handler: _ArtShow_CreateShow_Handler, - }, - { - MethodName: "UpdateShow", - Handler: _ArtShow_UpdateShow_Handler, - }, - { - MethodName: "DelShow", - Handler: _ArtShow_DelShow_Handler, - }, - { - MethodName: "ShowList", - Handler: _ArtShow_ShowList_Handler, - }, - { - MethodName: "ShowListForArtwork", - Handler: _ArtShow_ShowListForArtwork_Handler, - }, - { - MethodName: "ShowArtworkInfo", - Handler: _ArtShow_ShowArtworkInfo_Handler, - }, - { - MethodName: "ShowDetail", - Handler: _ArtShow_ShowDetail_Handler, - }, - { - MethodName: "ShowStatisticalInfo", - Handler: _ArtShow_ShowStatisticalInfo_Handler, - }, - { - MethodName: "ArtworkPrice", - Handler: _ArtShow_ArtworkPrice_Handler, - }, - { - MethodName: "CreateApply", - Handler: _ArtShow_CreateApply_Handler, - }, - { - MethodName: "UpdateApply", - Handler: _ArtShow_UpdateApply_Handler, - }, - { - MethodName: "DelApply", - Handler: _ArtShow_DelApply_Handler, - }, - { - MethodName: "ShowListWithApply", - Handler: _ArtShow_ShowListWithApply_Handler, - }, - { - MethodName: "UpdateApplyStatus", - Handler: _ArtShow_UpdateApplyStatus_Handler, - }, - { - MethodName: "ApplyList", - Handler: _ArtShow_ApplyList_Handler, - }, - { - MethodName: "ApplyDetail", - Handler: _ArtShow_ApplyDetail_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "pb/artshow.proto", -} diff --git a/pkg/m/msg.go b/pkg/m/msg.go index fff5f98..8961169 100644 --- a/pkg/m/msg.go +++ b/pkg/m/msg.go @@ -24,7 +24,7 @@ const ( ) const ( - ARTSHOW_PREFIX = "AS" // 画展包编号前缀 + ARTSHOW_PREFIX = "B" // 画展包编号前缀 ARTSHOWAPPLY_PREFIX = "ASA" // 申请画展包前缀 ) diff --git a/pkg/serializer/art_show.go b/pkg/serializer/art_show.go index f014f1f..14a9e20 100644 --- a/pkg/serializer/art_show.go +++ b/pkg/serializer/art_show.go @@ -46,6 +46,7 @@ func BuildArtShowRpc(artShowM *model.ArtShowRes) (out *artShow.ShowDetail) { out.ArtworkNum = artShowM.ArtworkNum out.Ruler = artShowM.Ruler out.Price = artShowM.Price + out.Reward = artShowM.Reward out.CreateTime = artShowM.CreateTime out.IsShow = int32(artShowM.IsShow) out.Address = artShowM.Address diff --git a/pkg/serializer/artwork_price.go b/pkg/serializer/artwork_price.go index 2c834f4..9ba4c27 100644 --- a/pkg/serializer/artwork_price.go +++ b/pkg/serializer/artwork_price.go @@ -46,6 +46,30 @@ func BuildShowArtworkRpc(in []*model.ArtworkPrice) (out []*artShow.ArtworkDetail return } +func BuildShowArtworkListRpc(in []*model.ArtworkPrice) (out []*artShow.ArtworkPriceDetail) { + out = make([]*artShow.ArtworkPriceDetail, len(in)) + for i := 0; i < len(in); i++ { + artworkPrice := new(artShow.ArtworkPriceDetail) + artworkPrice.ArtworkPriceUID = in[i].ArtworkPriceUID + artworkPrice.ShowUID = in[i].ShowUID + artworkPrice.ArtworkUID = in[i].ArtworkUID + artworkPrice.ArtworkName = in[i].ArtworkName + artworkPrice.ArtistName = in[i].ArtistName + artworkPrice.SmallPic = in[i].SmallPic + artworkPrice.Ruler = in[i].Ruler + artworkPrice.Length = in[i].Length + artworkPrice.Width = in[i].Width + artworkPrice.Price = in[i].Price + artworkPrice.RulerPrice = in[i].RulerPrice + artworkPrice.ArtworkPrice = in[i].ArtworkPrice + artworkPrice.MarketPrice = in[i].MarketPrice + artworkPrice.CopyrightPrice = in[i].CopyrightPrice + + out[i] = artworkPrice + } + return +} + func BuildArtworkPriceRes(artworkPrice *model.ArtworkPrice) (out *artShow.ArtworkPriceRes) { out = new(artShow.ArtworkPriceRes) out.Data = new(artShow.ArtworkPriceRes_PriceInfo) diff --git a/pkg/serializer/calc_price.go b/pkg/serializer/calc_price.go index 4338169..54bae47 100644 --- a/pkg/serializer/calc_price.go +++ b/pkg/serializer/calc_price.go @@ -3,6 +3,7 @@ package serializer import ( "fonchain-artshow/cmd/model" "math" + "sort" ) func CalcPrice(total_price int64, total_ruler int32, artworksPrices []*model.ArtworkPrice) []*model.ArtworkPrice { @@ -147,27 +148,53 @@ func calcTotalPrice(artworks []*model.ArtworkPrice, add_balance, price int64) in func findArtworkToAdd(artworks []*model.ArtworkPrice, ruler_price int64) (int, int) { var ( - current_ruler int - max_ruler int - maxIndex int - difIndex int + max_ruler = -1 + maxIndex = -1 + difIndex = -1 ) + bucket := make(map[int][]int, 0) + + sortFir := make(map[int]int, 0) + sortSec := make([]int, 0) + for i := 0; i < len(artworks); i++ { - if artworks[i].Ruler > int32(max_ruler) { - maxIndex = i - max_ruler = int(artworks[i].Ruler) + if len(bucket[int(artworks[i].Ruler)]) > 0 { + bucket[int(artworks[i].Ruler)] = append(bucket[int(artworks[i].Ruler)], i) + } else { + bucket[int(artworks[i].Ruler)] = make([]int, 0) + bucket[int(artworks[i].Ruler)] = append(bucket[int(artworks[i].Ruler)], i) + } + sortFir[int(artworks[i].Ruler)] = i + //fmt.Println(bucket[artworks[i].Ruler]) + } + + for ruler, _ := range sortFir { + sortSec = append(sortSec, int(ruler)) + } + + sort.Ints(sortSec) + + if len(sortSec) == 1 { + maxIndex = bucket[sortSec[0]][0] + //return maxIndex ,0 + } else { + for i := len(sortSec); i > 0; i-- { + if max_ruler < sortSec[i-1] { + max_ruler = sortSec[i-1] + } + if len(bucket[sortSec[i-1]]) > 1 { + continue + } + if len(bucket[sortSec[i-1]]) == 1 { + difIndex = bucket[sortSec[i-1]][0] + break + } } - if artworks[i].Ruler > int32(current_ruler) { - difIndex = i - current_ruler = int(artworks[i].Ruler) - } else if artworks[i].Ruler == int32(current_ruler) { - current_ruler = 0 - difIndex = 0 + if difIndex == -1 { + maxIndex = bucket[max_ruler][0] } - //artworks[i].ShowID = show_id - artworks[i].RulerPrice = ruler_price } return maxIndex, difIndex diff --git a/runtime/log/artshow_server.log b/runtime/log/artshow_server.log new file mode 100644 index 0000000..8bccfb6 --- /dev/null +++ b/runtime/log/artshow_server.log @@ -0,0 +1,3 @@ +{"level":"ERROR","time":"2023-01-16T14:48:39.634+0800","caller":"dao/art_show.go:66","msg":"ArtShowList Find err","error":"Error 1055: Expression #11 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'art_show.c.address' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by"} +{"level":"ERROR","time":"2023-01-16T14:50:09.407+0800","caller":"dao/art_show.go:66","msg":"ArtShowList Find err","error":"Error 1055: Expression #11 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'art_show.c.address' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by"} +{"level":"ERROR","time":"2023-01-16T15:01:44.067+0800","caller":"dao/art_show.go:69","msg":"ArtShowList Find err","error":"Error 1055: Expression #11 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'art_show.c.address' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by"}