From 9492a186e24d74b51abbc1b235f0bec744fbb84d Mon Sep 17 00:00:00 2001 From: "jiaji.H" Date: Wed, 24 Sep 2025 13:52:56 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat=EF=BC=9A=E5=A2=9E=E5=8A=A0=E5=AE=98?= =?UTF-8?q?=E7=BD=91=E6=8A=A5=E5=91=8A=E6=A8=A1=E5=9D=97=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E4=B8=8E=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/reports/reports.pb.go | 1850 +++++++++++++++++++++++ api/reports/reports.validator.pb.go | 98 ++ api/reports/reports_triple.pb.go | 466 ++++++ pkg/router/router.go | 16 + pkg/service/init.go | 3 + pkg/service/reports/annualReports.go | 71 + pkg/service/reports/quarterlyReports.go | 71 + 7 files changed, 2575 insertions(+) create mode 100644 api/reports/reports.pb.go create mode 100644 api/reports/reports.validator.pb.go create mode 100644 api/reports/reports_triple.pb.go create mode 100644 pkg/service/reports/annualReports.go create mode 100644 pkg/service/reports/quarterlyReports.go diff --git a/api/reports/reports.pb.go b/api/reports/reports.pb.go new file mode 100644 index 0000000..1934638 --- /dev/null +++ b/api/reports/reports.pb.go @@ -0,0 +1,1850 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v5.26.0 +// source: api/reports/reports.proto + +package reports + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Filtrate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FileName string `protobuf:"bytes,3,opt,name=fileName,proto3" json:"fileName"` //文件名称 + Status int32 `protobuf:"varint,4,opt,name=status,proto3" json:"status"` //状态(1:上架,2:下架) +} + +func (x *Filtrate) Reset() { + *x = Filtrate{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Filtrate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Filtrate) ProtoMessage() {} + +func (x *Filtrate) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Filtrate.ProtoReflect.Descriptor instead. +func (*Filtrate) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{0} +} + +func (x *Filtrate) GetFileName() string { + if x != nil { + return x.FileName + } + return "" +} + +func (x *Filtrate) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +// ==================================年度报告====================================== +type GetAnnualReportListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` + Filtrate *Filtrate `protobuf:"bytes,3,opt,name=filtrate,proto3" json:"filtrate"` +} + +func (x *GetAnnualReportListReq) Reset() { + *x = GetAnnualReportListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAnnualReportListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAnnualReportListReq) ProtoMessage() {} + +func (x *GetAnnualReportListReq) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetAnnualReportListReq.ProtoReflect.Descriptor instead. +func (*GetAnnualReportListReq) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{1} +} + +func (x *GetAnnualReportListReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetAnnualReportListReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *GetAnnualReportListReq) GetFiltrate() *Filtrate { + if x != nil { + return x.Filtrate + } + return nil +} + +type GetAnnualReportListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page"` + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize"` + Total int32 `protobuf:"varint,4,opt,name=total,proto3" json:"total"` + Data []*AnnualReport `protobuf:"bytes,5,rep,name=data,proto3" json:"data"` +} + +func (x *GetAnnualReportListResp) Reset() { + *x = GetAnnualReportListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAnnualReportListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAnnualReportListResp) ProtoMessage() {} + +func (x *GetAnnualReportListResp) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetAnnualReportListResp.ProtoReflect.Descriptor instead. +func (*GetAnnualReportListResp) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{2} +} + +func (x *GetAnnualReportListResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetAnnualReportListResp) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetAnnualReportListResp) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *GetAnnualReportListResp) GetTotal() int32 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *GetAnnualReportListResp) GetData() []*AnnualReport { + if x != nil { + return x.Data + } + return nil +} + +type AnnualReport struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` //id + FileName string `protobuf:"bytes,2,opt,name=fileName,proto3" json:"fileName"` //文件名称 + Date string `protobuf:"bytes,3,opt,name=date,proto3" json:"date"` //日期 + FileUrl string `protobuf:"bytes,4,opt,name=fileUrl,proto3" json:"fileUrl"` //访问地址 + Status int32 `protobuf:"varint,5,opt,name=status,proto3" json:"status"` //状态(1:上架,2:下架) + Sort int32 `protobuf:"varint,6,opt,name=sort,proto3" json:"sort"` //排序 + UpdateTime string `protobuf:"bytes,7,opt,name=updateTime,proto3" json:"updateTime"` //最近更新时间 + Operator string `protobuf:"bytes,8,opt,name=operator,proto3" json:"operator"` //操作人 + OperatorId int32 `protobuf:"varint,9,opt,name=operatorId,proto3" json:"operatorId"` //操作人Id +} + +func (x *AnnualReport) Reset() { + *x = AnnualReport{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnnualReport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnnualReport) ProtoMessage() {} + +func (x *AnnualReport) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AnnualReport.ProtoReflect.Descriptor instead. +func (*AnnualReport) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{3} +} + +func (x *AnnualReport) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AnnualReport) GetFileName() string { + if x != nil { + return x.FileName + } + return "" +} + +func (x *AnnualReport) GetDate() string { + if x != nil { + return x.Date + } + return "" +} + +func (x *AnnualReport) GetFileUrl() string { + if x != nil { + return x.FileUrl + } + return "" +} + +func (x *AnnualReport) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *AnnualReport) GetSort() int32 { + if x != nil { + return x.Sort + } + return 0 +} + +func (x *AnnualReport) GetUpdateTime() string { + if x != nil { + return x.UpdateTime + } + return "" +} + +func (x *AnnualReport) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *AnnualReport) GetOperatorId() int32 { + if x != nil { + return x.OperatorId + } + return 0 +} + +type AddAnnualReportReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FileName string `protobuf:"bytes,1,opt,name=fileName,proto3" json:"fileName"` //文件名称 + Date string `protobuf:"bytes,2,opt,name=date,proto3" json:"date"` //日期 + FileUrl string `protobuf:"bytes,3,opt,name=fileUrl,proto3" json:"fileUrl"` //访问地址 + Operator string `protobuf:"bytes,4,opt,name=operator,proto3" json:"operator"` //操作人 + OperatorId int32 `protobuf:"varint,5,opt,name=operatorId,proto3" json:"operatorId"` //操作人Id +} + +func (x *AddAnnualReportReq) Reset() { + *x = AddAnnualReportReq{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddAnnualReportReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddAnnualReportReq) ProtoMessage() {} + +func (x *AddAnnualReportReq) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddAnnualReportReq.ProtoReflect.Descriptor instead. +func (*AddAnnualReportReq) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{4} +} + +func (x *AddAnnualReportReq) GetFileName() string { + if x != nil { + return x.FileName + } + return "" +} + +func (x *AddAnnualReportReq) GetDate() string { + if x != nil { + return x.Date + } + return "" +} + +func (x *AddAnnualReportReq) GetFileUrl() string { + if x != nil { + return x.FileUrl + } + return "" +} + +func (x *AddAnnualReportReq) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *AddAnnualReportReq) GetOperatorId() int32 { + if x != nil { + return x.OperatorId + } + return 0 +} + +type AddAnnualReportResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` +} + +func (x *AddAnnualReportResp) Reset() { + *x = AddAnnualReportResp{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddAnnualReportResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddAnnualReportResp) ProtoMessage() {} + +func (x *AddAnnualReportResp) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddAnnualReportResp.ProtoReflect.Descriptor instead. +func (*AddAnnualReportResp) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{5} +} + +func (x *AddAnnualReportResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type EditAnnualReportReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` //id + FileName string `protobuf:"bytes,2,opt,name=fileName,proto3" json:"fileName"` //文件名称 + Date string `protobuf:"bytes,3,opt,name=date,proto3" json:"date"` //日期 + FileUrl string `protobuf:"bytes,4,opt,name=fileUrl,proto3" json:"fileUrl"` //访问地址 + Sort int32 `protobuf:"varint,5,opt,name=sort,proto3" json:"sort"` //排序 + Status int32 `protobuf:"varint,6,opt,name=status,proto3" json:"status"` //状态(1:上架,2:下架) + Operator string `protobuf:"bytes,7,opt,name=operator,proto3" json:"operator"` //操作人 + OperatorId int32 `protobuf:"varint,8,opt,name=operatorId,proto3" json:"operatorId"` //操作人Id +} + +func (x *EditAnnualReportReq) Reset() { + *x = EditAnnualReportReq{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EditAnnualReportReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EditAnnualReportReq) ProtoMessage() {} + +func (x *EditAnnualReportReq) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EditAnnualReportReq.ProtoReflect.Descriptor instead. +func (*EditAnnualReportReq) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{6} +} + +func (x *EditAnnualReportReq) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *EditAnnualReportReq) GetFileName() string { + if x != nil { + return x.FileName + } + return "" +} + +func (x *EditAnnualReportReq) GetDate() string { + if x != nil { + return x.Date + } + return "" +} + +func (x *EditAnnualReportReq) GetFileUrl() string { + if x != nil { + return x.FileUrl + } + return "" +} + +func (x *EditAnnualReportReq) GetSort() int32 { + if x != nil { + return x.Sort + } + return 0 +} + +func (x *EditAnnualReportReq) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *EditAnnualReportReq) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *EditAnnualReportReq) GetOperatorId() int32 { + if x != nil { + return x.OperatorId + } + return 0 +} + +type EditAnnualReportResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` +} + +func (x *EditAnnualReportResp) Reset() { + *x = EditAnnualReportResp{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EditAnnualReportResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EditAnnualReportResp) ProtoMessage() {} + +func (x *EditAnnualReportResp) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EditAnnualReportResp.ProtoReflect.Descriptor instead. +func (*EditAnnualReportResp) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{7} +} + +func (x *EditAnnualReportResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type DeleteAnnualReportReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` +} + +func (x *DeleteAnnualReportReq) Reset() { + *x = DeleteAnnualReportReq{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteAnnualReportReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteAnnualReportReq) ProtoMessage() {} + +func (x *DeleteAnnualReportReq) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteAnnualReportReq.ProtoReflect.Descriptor instead. +func (*DeleteAnnualReportReq) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{8} +} + +func (x *DeleteAnnualReportReq) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type DeleteAnnualReportResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` +} + +func (x *DeleteAnnualReportResp) Reset() { + *x = DeleteAnnualReportResp{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteAnnualReportResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteAnnualReportResp) ProtoMessage() {} + +func (x *DeleteAnnualReportResp) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[9] + 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 DeleteAnnualReportResp.ProtoReflect.Descriptor instead. +func (*DeleteAnnualReportResp) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{9} +} + +func (x *DeleteAnnualReportResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +// ==================================季度报告====================================== +type GetQuarterlyReportListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` + PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` + Filtrate *Filtrate `protobuf:"bytes,3,opt,name=filtrate,proto3" json:"filtrate"` +} + +func (x *GetQuarterlyReportListReq) Reset() { + *x = GetQuarterlyReportListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetQuarterlyReportListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetQuarterlyReportListReq) ProtoMessage() {} + +func (x *GetQuarterlyReportListReq) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetQuarterlyReportListReq.ProtoReflect.Descriptor instead. +func (*GetQuarterlyReportListReq) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{10} +} + +func (x *GetQuarterlyReportListReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetQuarterlyReportListReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *GetQuarterlyReportListReq) GetFiltrate() *Filtrate { + if x != nil { + return x.Filtrate + } + return nil +} + +type GetQuarterlyReportListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page"` + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize"` + Total int32 `protobuf:"varint,4,opt,name=total,proto3" json:"total"` + Data []*QuarterlyReport `protobuf:"bytes,5,rep,name=data,proto3" json:"data"` +} + +func (x *GetQuarterlyReportListResp) Reset() { + *x = GetQuarterlyReportListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetQuarterlyReportListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetQuarterlyReportListResp) ProtoMessage() {} + +func (x *GetQuarterlyReportListResp) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetQuarterlyReportListResp.ProtoReflect.Descriptor instead. +func (*GetQuarterlyReportListResp) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{11} +} + +func (x *GetQuarterlyReportListResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetQuarterlyReportListResp) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetQuarterlyReportListResp) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *GetQuarterlyReportListResp) GetTotal() int32 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *GetQuarterlyReportListResp) GetData() []*QuarterlyReport { + if x != nil { + return x.Data + } + return nil +} + +type QuarterlyReport struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` //id + FileName string `protobuf:"bytes,2,opt,name=fileName,proto3" json:"fileName"` //文件名称 + FileIntroduce string `protobuf:"bytes,3,opt,name=fileIntroduce,proto3" json:"fileIntroduce"` //文件介绍 + Sort int32 `protobuf:"varint,4,opt,name=sort,proto3" json:"sort"` //排序 + Status int32 `protobuf:"varint,5,opt,name=status,proto3" json:"status"` //状态(1:上架,2:下架) + UpdateTime string `protobuf:"bytes,6,opt,name=updateTime,proto3" json:"updateTime"` //最近更新时间 + Operator string `protobuf:"bytes,7,opt,name=operator,proto3" json:"operator"` //操作人 + OperatorId int32 `protobuf:"varint,8,opt,name=operatorId,proto3" json:"operatorId"` //操作人Id +} + +func (x *QuarterlyReport) Reset() { + *x = QuarterlyReport{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QuarterlyReport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QuarterlyReport) ProtoMessage() {} + +func (x *QuarterlyReport) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QuarterlyReport.ProtoReflect.Descriptor instead. +func (*QuarterlyReport) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{12} +} + +func (x *QuarterlyReport) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *QuarterlyReport) GetFileName() string { + if x != nil { + return x.FileName + } + return "" +} + +func (x *QuarterlyReport) GetFileIntroduce() string { + if x != nil { + return x.FileIntroduce + } + return "" +} + +func (x *QuarterlyReport) GetSort() int32 { + if x != nil { + return x.Sort + } + return 0 +} + +func (x *QuarterlyReport) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *QuarterlyReport) GetUpdateTime() string { + if x != nil { + return x.UpdateTime + } + return "" +} + +func (x *QuarterlyReport) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *QuarterlyReport) GetOperatorId() int32 { + if x != nil { + return x.OperatorId + } + return 0 +} + +type AddQuarterlyReportReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FileName string `protobuf:"bytes,1,opt,name=fileName,proto3" json:"fileName"` //文件名称 + FileIntroduce string `protobuf:"bytes,2,opt,name=fileIntroduce,proto3" json:"fileIntroduce"` //文件介绍 + Attachment string `protobuf:"bytes,3,opt,name=attachment,proto3" json:"attachment"` //附件 + AttachmentName string `protobuf:"bytes,4,opt,name=attachmentName,proto3" json:"attachmentName"` //附件名称 + Operator string `protobuf:"bytes,5,opt,name=operator,proto3" json:"operator"` //操作人 + OperatorId int32 `protobuf:"varint,6,opt,name=operatorId,proto3" json:"operatorId"` //操作人Id +} + +func (x *AddQuarterlyReportReq) Reset() { + *x = AddQuarterlyReportReq{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddQuarterlyReportReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddQuarterlyReportReq) ProtoMessage() {} + +func (x *AddQuarterlyReportReq) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_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 AddQuarterlyReportReq.ProtoReflect.Descriptor instead. +func (*AddQuarterlyReportReq) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{13} +} + +func (x *AddQuarterlyReportReq) GetFileName() string { + if x != nil { + return x.FileName + } + return "" +} + +func (x *AddQuarterlyReportReq) GetFileIntroduce() string { + if x != nil { + return x.FileIntroduce + } + return "" +} + +func (x *AddQuarterlyReportReq) GetAttachment() string { + if x != nil { + return x.Attachment + } + return "" +} + +func (x *AddQuarterlyReportReq) GetAttachmentName() string { + if x != nil { + return x.AttachmentName + } + return "" +} + +func (x *AddQuarterlyReportReq) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *AddQuarterlyReportReq) GetOperatorId() int32 { + if x != nil { + return x.OperatorId + } + return 0 +} + +type AddQuarterlyReportResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` +} + +func (x *AddQuarterlyReportResp) Reset() { + *x = AddQuarterlyReportResp{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddQuarterlyReportResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddQuarterlyReportResp) ProtoMessage() {} + +func (x *AddQuarterlyReportResp) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_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 AddQuarterlyReportResp.ProtoReflect.Descriptor instead. +func (*AddQuarterlyReportResp) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{14} +} + +func (x *AddQuarterlyReportResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type EditQuarterlyReportReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` //id + FileName string `protobuf:"bytes,2,opt,name=fileName,proto3" json:"fileName"` //文件名称 + FileIntroduce string `protobuf:"bytes,3,opt,name=fileIntroduce,proto3" json:"fileIntroduce"` //文件介绍 + Attachment string `protobuf:"bytes,4,opt,name=attachment,proto3" json:"attachment"` //附件 + AttachmentName string `protobuf:"bytes,5,opt,name=attachmentName,proto3" json:"attachmentName"` //附件名称 + Sort int32 `protobuf:"varint,6,opt,name=sort,proto3" json:"sort"` //排序 + Status int32 `protobuf:"varint,7,opt,name=status,proto3" json:"status"` //状态(1:上架,2:下架) + Operator string `protobuf:"bytes,8,opt,name=operator,proto3" json:"operator"` //操作人 + OperatorId int32 `protobuf:"varint,9,opt,name=operatorId,proto3" json:"operatorId"` //操作人Id +} + +func (x *EditQuarterlyReportReq) Reset() { + *x = EditQuarterlyReportReq{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EditQuarterlyReportReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EditQuarterlyReportReq) ProtoMessage() {} + +func (x *EditQuarterlyReportReq) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EditQuarterlyReportReq.ProtoReflect.Descriptor instead. +func (*EditQuarterlyReportReq) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{15} +} + +func (x *EditQuarterlyReportReq) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *EditQuarterlyReportReq) GetFileName() string { + if x != nil { + return x.FileName + } + return "" +} + +func (x *EditQuarterlyReportReq) GetFileIntroduce() string { + if x != nil { + return x.FileIntroduce + } + return "" +} + +func (x *EditQuarterlyReportReq) GetAttachment() string { + if x != nil { + return x.Attachment + } + return "" +} + +func (x *EditQuarterlyReportReq) GetAttachmentName() string { + if x != nil { + return x.AttachmentName + } + return "" +} + +func (x *EditQuarterlyReportReq) GetSort() int32 { + if x != nil { + return x.Sort + } + return 0 +} + +func (x *EditQuarterlyReportReq) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *EditQuarterlyReportReq) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *EditQuarterlyReportReq) GetOperatorId() int32 { + if x != nil { + return x.OperatorId + } + return 0 +} + +type EditQuarterlyReportResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` +} + +func (x *EditQuarterlyReportResp) Reset() { + *x = EditQuarterlyReportResp{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EditQuarterlyReportResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EditQuarterlyReportResp) ProtoMessage() {} + +func (x *EditQuarterlyReportResp) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EditQuarterlyReportResp.ProtoReflect.Descriptor instead. +func (*EditQuarterlyReportResp) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{16} +} + +func (x *EditQuarterlyReportResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type DeleteQuarterlyReportReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` +} + +func (x *DeleteQuarterlyReportReq) Reset() { + *x = DeleteQuarterlyReportReq{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteQuarterlyReportReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteQuarterlyReportReq) ProtoMessage() {} + +func (x *DeleteQuarterlyReportReq) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteQuarterlyReportReq.ProtoReflect.Descriptor instead. +func (*DeleteQuarterlyReportReq) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{17} +} + +func (x *DeleteQuarterlyReportReq) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type DeleteQuarterlyReportResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"` +} + +func (x *DeleteQuarterlyReportResp) Reset() { + *x = DeleteQuarterlyReportResp{} + if protoimpl.UnsafeEnabled { + mi := &file_api_reports_reports_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteQuarterlyReportResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteQuarterlyReportResp) ProtoMessage() {} + +func (x *DeleteQuarterlyReportResp) ProtoReflect() protoreflect.Message { + mi := &file_api_reports_reports_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteQuarterlyReportResp.ProtoReflect.Descriptor instead. +func (*DeleteQuarterlyReportResp) Descriptor() ([]byte, []int) { + return file_api_reports_reports_proto_rawDescGZIP(), []int{18} +} + +func (x *DeleteQuarterlyReportResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +var File_api_reports_reports_proto protoreflect.FileDescriptor + +var file_api_reports_reports_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x22, 0x3e, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x22, 0x77, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6e, 0x75, 0x61, + 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, + 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2d, + 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x72, + 0x61, 0x74, 0x65, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x65, 0x22, 0x9c, 0x01, + 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x12, 0x29, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf0, 0x01, 0x0a, + 0x0c, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, + 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, + 0x9a, 0x01, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, + 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x27, 0x0a, 0x13, + 0x41, 0x64, 0x64, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xd7, 0x01, 0x0a, 0x13, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6e, + 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, + 0x28, 0x0a, 0x14, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x27, 0x0a, 0x15, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x69, 0x64, 0x22, 0x2a, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x75, + 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x7a, + 0x0a, 0x19, 0x47, 0x65, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x66, + 0x69, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x52, 0x08, 0x66, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x1a, 0x47, + 0x65, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, + 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0xeb, 0x01, 0x0a, 0x0f, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, + 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0xdd, 0x01, + 0x0a, 0x15, 0x41, 0x64, 0x64, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, + 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x2a, 0x0a, + 0x16, 0x41, 0x64, 0x64, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x9a, 0x02, 0x0a, 0x16, 0x45, 0x64, + 0x69, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, + 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x45, 0x64, 0x69, 0x74, 0x51, 0x75, + 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x22, 0x2a, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x61, + 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, + 0x2d, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, + 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x32, 0xcd, + 0x05, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x1f, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x41, 0x6e, 0x6e, 0x75, 0x61, + 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x41, + 0x64, 0x64, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x10, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1c, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2e, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x45, + 0x64, 0x69, 0x74, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, + 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x2e, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x16, 0x47, 0x65, + 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, + 0x12, 0x41, 0x64, 0x64, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x41, 0x64, + 0x64, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x41, 0x64, + 0x64, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x13, 0x45, 0x64, 0x69, 0x74, 0x51, 0x75, 0x61, 0x72, + 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1f, 0x2e, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, + 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, + 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5e, + 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, + 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, + 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x61, 0x72, 0x74, + 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0c, + 0x5a, 0x0a, 0x2e, 0x2f, 0x3b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_api_reports_reports_proto_rawDescOnce sync.Once + file_api_reports_reports_proto_rawDescData = file_api_reports_reports_proto_rawDesc +) + +func file_api_reports_reports_proto_rawDescGZIP() []byte { + file_api_reports_reports_proto_rawDescOnce.Do(func() { + file_api_reports_reports_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_reports_reports_proto_rawDescData) + }) + return file_api_reports_reports_proto_rawDescData +} + +var file_api_reports_reports_proto_msgTypes = make([]protoimpl.MessageInfo, 19) +var file_api_reports_reports_proto_goTypes = []interface{}{ + (*Filtrate)(nil), // 0: reports.Filtrate + (*GetAnnualReportListReq)(nil), // 1: reports.GetAnnualReportListReq + (*GetAnnualReportListResp)(nil), // 2: reports.GetAnnualReportListResp + (*AnnualReport)(nil), // 3: reports.AnnualReport + (*AddAnnualReportReq)(nil), // 4: reports.AddAnnualReportReq + (*AddAnnualReportResp)(nil), // 5: reports.AddAnnualReportResp + (*EditAnnualReportReq)(nil), // 6: reports.EditAnnualReportReq + (*EditAnnualReportResp)(nil), // 7: reports.EditAnnualReportResp + (*DeleteAnnualReportReq)(nil), // 8: reports.DeleteAnnualReportReq + (*DeleteAnnualReportResp)(nil), // 9: reports.DeleteAnnualReportResp + (*GetQuarterlyReportListReq)(nil), // 10: reports.GetQuarterlyReportListReq + (*GetQuarterlyReportListResp)(nil), // 11: reports.GetQuarterlyReportListResp + (*QuarterlyReport)(nil), // 12: reports.QuarterlyReport + (*AddQuarterlyReportReq)(nil), // 13: reports.AddQuarterlyReportReq + (*AddQuarterlyReportResp)(nil), // 14: reports.AddQuarterlyReportResp + (*EditQuarterlyReportReq)(nil), // 15: reports.EditQuarterlyReportReq + (*EditQuarterlyReportResp)(nil), // 16: reports.EditQuarterlyReportResp + (*DeleteQuarterlyReportReq)(nil), // 17: reports.DeleteQuarterlyReportReq + (*DeleteQuarterlyReportResp)(nil), // 18: reports.DeleteQuarterlyReportResp +} +var file_api_reports_reports_proto_depIdxs = []int32{ + 0, // 0: reports.GetAnnualReportListReq.filtrate:type_name -> reports.Filtrate + 3, // 1: reports.GetAnnualReportListResp.data:type_name -> reports.AnnualReport + 0, // 2: reports.GetQuarterlyReportListReq.filtrate:type_name -> reports.Filtrate + 12, // 3: reports.GetQuarterlyReportListResp.data:type_name -> reports.QuarterlyReport + 1, // 4: reports.Reports.GetAnnualReportList:input_type -> reports.GetAnnualReportListReq + 4, // 5: reports.Reports.AddAnnualReport:input_type -> reports.AddAnnualReportReq + 6, // 6: reports.Reports.EditAnnualReport:input_type -> reports.EditAnnualReportReq + 8, // 7: reports.Reports.DeleteAnnualReport:input_type -> reports.DeleteAnnualReportReq + 10, // 8: reports.Reports.GetQuarterlyReportList:input_type -> reports.GetQuarterlyReportListReq + 13, // 9: reports.Reports.AddQuarterlyReport:input_type -> reports.AddQuarterlyReportReq + 15, // 10: reports.Reports.EditQuarterlyReport:input_type -> reports.EditQuarterlyReportReq + 17, // 11: reports.Reports.DeleteQuarterlyReport:input_type -> reports.DeleteQuarterlyReportReq + 2, // 12: reports.Reports.GetAnnualReportList:output_type -> reports.GetAnnualReportListResp + 5, // 13: reports.Reports.AddAnnualReport:output_type -> reports.AddAnnualReportResp + 7, // 14: reports.Reports.EditAnnualReport:output_type -> reports.EditAnnualReportResp + 9, // 15: reports.Reports.DeleteAnnualReport:output_type -> reports.DeleteAnnualReportResp + 11, // 16: reports.Reports.GetQuarterlyReportList:output_type -> reports.GetQuarterlyReportListResp + 14, // 17: reports.Reports.AddQuarterlyReport:output_type -> reports.AddQuarterlyReportResp + 16, // 18: reports.Reports.EditQuarterlyReport:output_type -> reports.EditQuarterlyReportResp + 18, // 19: reports.Reports.DeleteQuarterlyReport:output_type -> reports.DeleteQuarterlyReportResp + 12, // [12:20] is the sub-list for method output_type + 4, // [4:12] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_api_reports_reports_proto_init() } +func file_api_reports_reports_proto_init() { + if File_api_reports_reports_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_api_reports_reports_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Filtrate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAnnualReportListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAnnualReportListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnnualReport); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddAnnualReportReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddAnnualReportResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EditAnnualReportReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EditAnnualReportResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteAnnualReportReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteAnnualReportResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetQuarterlyReportListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetQuarterlyReportListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuarterlyReport); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddQuarterlyReportReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddQuarterlyReportResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EditQuarterlyReportReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EditQuarterlyReportResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteQuarterlyReportReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_reports_reports_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteQuarterlyReportResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_api_reports_reports_proto_rawDesc, + NumEnums: 0, + NumMessages: 19, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_api_reports_reports_proto_goTypes, + DependencyIndexes: file_api_reports_reports_proto_depIdxs, + MessageInfos: file_api_reports_reports_proto_msgTypes, + }.Build() + File_api_reports_reports_proto = out.File + file_api_reports_reports_proto_rawDesc = nil + file_api_reports_reports_proto_goTypes = nil + file_api_reports_reports_proto_depIdxs = nil +} diff --git a/api/reports/reports.validator.pb.go b/api/reports/reports.validator.pb.go new file mode 100644 index 0000000..14c042b --- /dev/null +++ b/api/reports/reports.validator.pb.go @@ -0,0 +1,98 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: api/reports/reports.proto + +package reports + +import ( + fmt "fmt" + math "math" + proto "github.com/golang/protobuf/proto" + github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func (this *Filtrate) Validate() error { + return nil +} +func (this *GetAnnualReportListReq) Validate() error { + if this.Filtrate != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Filtrate); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Filtrate", err) + } + } + return nil +} +func (this *GetAnnualReportListResp) 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 *AnnualReport) Validate() error { + return nil +} +func (this *AddAnnualReportReq) Validate() error { + return nil +} +func (this *AddAnnualReportResp) Validate() error { + return nil +} +func (this *EditAnnualReportReq) Validate() error { + return nil +} +func (this *EditAnnualReportResp) Validate() error { + return nil +} +func (this *DeleteAnnualReportReq) Validate() error { + return nil +} +func (this *DeleteAnnualReportResp) Validate() error { + return nil +} +func (this *GetQuarterlyReportListReq) Validate() error { + if this.Filtrate != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Filtrate); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Filtrate", err) + } + } + return nil +} +func (this *GetQuarterlyReportListResp) 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 *QuarterlyReport) Validate() error { + return nil +} +func (this *AddQuarterlyReportReq) Validate() error { + return nil +} +func (this *AddQuarterlyReportResp) Validate() error { + return nil +} +func (this *EditQuarterlyReportReq) Validate() error { + return nil +} +func (this *EditQuarterlyReportResp) Validate() error { + return nil +} +func (this *DeleteQuarterlyReportReq) Validate() error { + return nil +} +func (this *DeleteQuarterlyReportResp) Validate() error { + return nil +} diff --git a/api/reports/reports_triple.pb.go b/api/reports/reports_triple.pb.go new file mode 100644 index 0000000..78c1f7c --- /dev/null +++ b/api/reports/reports_triple.pb.go @@ -0,0 +1,466 @@ +// Code generated by protoc-gen-go-triple. DO NOT EDIT. +// versions: +// - protoc-gen-go-triple v1.0.5 +// - protoc v5.26.0 +// source: api/reports/reports.proto + +package reports + +import ( + context "context" + protocol "dubbo.apache.org/dubbo-go/v3/protocol" + dubbo3 "dubbo.apache.org/dubbo-go/v3/protocol/dubbo3" + invocation "dubbo.apache.org/dubbo-go/v3/protocol/invocation" + grpc_go "github.com/dubbogo/grpc-go" + codes "github.com/dubbogo/grpc-go/codes" + metadata "github.com/dubbogo/grpc-go/metadata" + status "github.com/dubbogo/grpc-go/status" + common "github.com/dubbogo/triple/pkg/common" + constant "github.com/dubbogo/triple/pkg/common/constant" + triple "github.com/dubbogo/triple/pkg/triple" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc_go.SupportPackageIsVersion7 + +// ReportsClient is the client API for Reports 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 ReportsClient interface { + // ==================================年度报告====================================== + GetAnnualReportList(ctx context.Context, in *GetAnnualReportListReq, opts ...grpc_go.CallOption) (*GetAnnualReportListResp, common.ErrorWithAttachment) + AddAnnualReport(ctx context.Context, in *AddAnnualReportReq, opts ...grpc_go.CallOption) (*AddAnnualReportResp, common.ErrorWithAttachment) + EditAnnualReport(ctx context.Context, in *EditAnnualReportReq, opts ...grpc_go.CallOption) (*EditAnnualReportResp, common.ErrorWithAttachment) + DeleteAnnualReport(ctx context.Context, in *DeleteAnnualReportReq, opts ...grpc_go.CallOption) (*DeleteAnnualReportResp, common.ErrorWithAttachment) + // ==================================季度报告====================================== + GetQuarterlyReportList(ctx context.Context, in *GetQuarterlyReportListReq, opts ...grpc_go.CallOption) (*GetQuarterlyReportListResp, common.ErrorWithAttachment) + AddQuarterlyReport(ctx context.Context, in *AddQuarterlyReportReq, opts ...grpc_go.CallOption) (*AddQuarterlyReportResp, common.ErrorWithAttachment) + EditQuarterlyReport(ctx context.Context, in *EditQuarterlyReportReq, opts ...grpc_go.CallOption) (*EditQuarterlyReportResp, common.ErrorWithAttachment) + DeleteQuarterlyReport(ctx context.Context, in *DeleteQuarterlyReportReq, opts ...grpc_go.CallOption) (*DeleteQuarterlyReportResp, common.ErrorWithAttachment) +} + +type reportsClient struct { + cc *triple.TripleConn +} + +type ReportsClientImpl struct { + GetAnnualReportList func(ctx context.Context, in *GetAnnualReportListReq) (*GetAnnualReportListResp, error) + AddAnnualReport func(ctx context.Context, in *AddAnnualReportReq) (*AddAnnualReportResp, error) + EditAnnualReport func(ctx context.Context, in *EditAnnualReportReq) (*EditAnnualReportResp, error) + DeleteAnnualReport func(ctx context.Context, in *DeleteAnnualReportReq) (*DeleteAnnualReportResp, error) + GetQuarterlyReportList func(ctx context.Context, in *GetQuarterlyReportListReq) (*GetQuarterlyReportListResp, error) + AddQuarterlyReport func(ctx context.Context, in *AddQuarterlyReportReq) (*AddQuarterlyReportResp, error) + EditQuarterlyReport func(ctx context.Context, in *EditQuarterlyReportReq) (*EditQuarterlyReportResp, error) + DeleteQuarterlyReport func(ctx context.Context, in *DeleteQuarterlyReportReq) (*DeleteQuarterlyReportResp, error) +} + +func (c *ReportsClientImpl) GetDubboStub(cc *triple.TripleConn) ReportsClient { + return NewReportsClient(cc) +} + +func (c *ReportsClientImpl) XXX_InterfaceName() string { + return "reports.Reports" +} + +func NewReportsClient(cc *triple.TripleConn) ReportsClient { + return &reportsClient{cc} +} + +func (c *reportsClient) GetAnnualReportList(ctx context.Context, in *GetAnnualReportListReq, opts ...grpc_go.CallOption) (*GetAnnualReportListResp, common.ErrorWithAttachment) { + out := new(GetAnnualReportListResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetAnnualReportList", in, out) +} + +func (c *reportsClient) AddAnnualReport(ctx context.Context, in *AddAnnualReportReq, opts ...grpc_go.CallOption) (*AddAnnualReportResp, common.ErrorWithAttachment) { + out := new(AddAnnualReportResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AddAnnualReport", in, out) +} + +func (c *reportsClient) EditAnnualReport(ctx context.Context, in *EditAnnualReportReq, opts ...grpc_go.CallOption) (*EditAnnualReportResp, common.ErrorWithAttachment) { + out := new(EditAnnualReportResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/EditAnnualReport", in, out) +} + +func (c *reportsClient) DeleteAnnualReport(ctx context.Context, in *DeleteAnnualReportReq, opts ...grpc_go.CallOption) (*DeleteAnnualReportResp, common.ErrorWithAttachment) { + out := new(DeleteAnnualReportResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DeleteAnnualReport", in, out) +} + +func (c *reportsClient) GetQuarterlyReportList(ctx context.Context, in *GetQuarterlyReportListReq, opts ...grpc_go.CallOption) (*GetQuarterlyReportListResp, common.ErrorWithAttachment) { + out := new(GetQuarterlyReportListResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetQuarterlyReportList", in, out) +} + +func (c *reportsClient) AddQuarterlyReport(ctx context.Context, in *AddQuarterlyReportReq, opts ...grpc_go.CallOption) (*AddQuarterlyReportResp, common.ErrorWithAttachment) { + out := new(AddQuarterlyReportResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AddQuarterlyReport", in, out) +} + +func (c *reportsClient) EditQuarterlyReport(ctx context.Context, in *EditQuarterlyReportReq, opts ...grpc_go.CallOption) (*EditQuarterlyReportResp, common.ErrorWithAttachment) { + out := new(EditQuarterlyReportResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/EditQuarterlyReport", in, out) +} + +func (c *reportsClient) DeleteQuarterlyReport(ctx context.Context, in *DeleteQuarterlyReportReq, opts ...grpc_go.CallOption) (*DeleteQuarterlyReportResp, common.ErrorWithAttachment) { + out := new(DeleteQuarterlyReportResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DeleteQuarterlyReport", in, out) +} + +// ReportsServer is the server API for Reports service. +// All implementations must embed UnimplementedReportsServer +// for forward compatibility +type ReportsServer interface { + // ==================================年度报告====================================== + GetAnnualReportList(context.Context, *GetAnnualReportListReq) (*GetAnnualReportListResp, error) + AddAnnualReport(context.Context, *AddAnnualReportReq) (*AddAnnualReportResp, error) + EditAnnualReport(context.Context, *EditAnnualReportReq) (*EditAnnualReportResp, error) + DeleteAnnualReport(context.Context, *DeleteAnnualReportReq) (*DeleteAnnualReportResp, error) + // ==================================季度报告====================================== + GetQuarterlyReportList(context.Context, *GetQuarterlyReportListReq) (*GetQuarterlyReportListResp, error) + AddQuarterlyReport(context.Context, *AddQuarterlyReportReq) (*AddQuarterlyReportResp, error) + EditQuarterlyReport(context.Context, *EditQuarterlyReportReq) (*EditQuarterlyReportResp, error) + DeleteQuarterlyReport(context.Context, *DeleteQuarterlyReportReq) (*DeleteQuarterlyReportResp, error) + mustEmbedUnimplementedReportsServer() +} + +// UnimplementedReportsServer must be embedded to have forward compatible implementations. +type UnimplementedReportsServer struct { + proxyImpl protocol.Invoker +} + +func (UnimplementedReportsServer) GetAnnualReportList(context.Context, *GetAnnualReportListReq) (*GetAnnualReportListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAnnualReportList not implemented") +} +func (UnimplementedReportsServer) AddAnnualReport(context.Context, *AddAnnualReportReq) (*AddAnnualReportResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddAnnualReport not implemented") +} +func (UnimplementedReportsServer) EditAnnualReport(context.Context, *EditAnnualReportReq) (*EditAnnualReportResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method EditAnnualReport not implemented") +} +func (UnimplementedReportsServer) DeleteAnnualReport(context.Context, *DeleteAnnualReportReq) (*DeleteAnnualReportResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteAnnualReport not implemented") +} +func (UnimplementedReportsServer) GetQuarterlyReportList(context.Context, *GetQuarterlyReportListReq) (*GetQuarterlyReportListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetQuarterlyReportList not implemented") +} +func (UnimplementedReportsServer) AddQuarterlyReport(context.Context, *AddQuarterlyReportReq) (*AddQuarterlyReportResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddQuarterlyReport not implemented") +} +func (UnimplementedReportsServer) EditQuarterlyReport(context.Context, *EditQuarterlyReportReq) (*EditQuarterlyReportResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method EditQuarterlyReport not implemented") +} +func (UnimplementedReportsServer) DeleteQuarterlyReport(context.Context, *DeleteQuarterlyReportReq) (*DeleteQuarterlyReportResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteQuarterlyReport not implemented") +} +func (s *UnimplementedReportsServer) XXX_SetProxyImpl(impl protocol.Invoker) { + s.proxyImpl = impl +} + +func (s *UnimplementedReportsServer) XXX_GetProxyImpl() protocol.Invoker { + return s.proxyImpl +} + +func (s *UnimplementedReportsServer) XXX_ServiceDesc() *grpc_go.ServiceDesc { + return &Reports_ServiceDesc +} +func (s *UnimplementedReportsServer) XXX_InterfaceName() string { + return "reports.Reports" +} + +func (UnimplementedReportsServer) mustEmbedUnimplementedReportsServer() {} + +// UnsafeReportsServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ReportsServer will +// result in compilation errors. +type UnsafeReportsServer interface { + mustEmbedUnimplementedReportsServer() +} + +func RegisterReportsServer(s grpc_go.ServiceRegistrar, srv ReportsServer) { + s.RegisterService(&Reports_ServiceDesc, srv) +} + +func _Reports_GetAnnualReportList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAnnualReportListReq) + 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("GetAnnualReportList", 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 _Reports_AddAnnualReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(AddAnnualReportReq) + 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("AddAnnualReport", 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 _Reports_EditAnnualReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(EditAnnualReportReq) + 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("EditAnnualReport", 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 _Reports_DeleteAnnualReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteAnnualReportReq) + 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("DeleteAnnualReport", 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 _Reports_GetQuarterlyReportList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetQuarterlyReportListReq) + 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("GetQuarterlyReportList", 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 _Reports_AddQuarterlyReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(AddQuarterlyReportReq) + 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("AddQuarterlyReport", 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 _Reports_EditQuarterlyReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(EditQuarterlyReportReq) + 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("EditQuarterlyReport", 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 _Reports_DeleteQuarterlyReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteQuarterlyReportReq) + 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("DeleteQuarterlyReport", 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) +} + +// Reports_ServiceDesc is the grpc_go.ServiceDesc for Reports service. +// It's only intended for direct use with grpc_go.RegisterService, +// and not to be introspected or modified (even as a copy) +var Reports_ServiceDesc = grpc_go.ServiceDesc{ + ServiceName: "reports.Reports", + HandlerType: (*ReportsServer)(nil), + Methods: []grpc_go.MethodDesc{ + { + MethodName: "GetAnnualReportList", + Handler: _Reports_GetAnnualReportList_Handler, + }, + { + MethodName: "AddAnnualReport", + Handler: _Reports_AddAnnualReport_Handler, + }, + { + MethodName: "EditAnnualReport", + Handler: _Reports_EditAnnualReport_Handler, + }, + { + MethodName: "DeleteAnnualReport", + Handler: _Reports_DeleteAnnualReport_Handler, + }, + { + MethodName: "GetQuarterlyReportList", + Handler: _Reports_GetQuarterlyReportList_Handler, + }, + { + MethodName: "AddQuarterlyReport", + Handler: _Reports_AddQuarterlyReport_Handler, + }, + { + MethodName: "EditQuarterlyReport", + Handler: _Reports_EditQuarterlyReport_Handler, + }, + { + MethodName: "DeleteQuarterlyReport", + Handler: _Reports_DeleteQuarterlyReport_Handler, + }, + }, + Streams: []grpc_go.StreamDesc{}, + Metadata: "api/reports/reports.proto", +} diff --git a/pkg/router/router.go b/pkg/router/router.go index e1a21e5..e78957a 100644 --- a/pkg/router/router.go +++ b/pkg/router/router.go @@ -14,6 +14,7 @@ import ( "fonchain-fiee/pkg/service/pressreleases" "fonchain-fiee/pkg/service/qr" "fonchain-fiee/pkg/service/redirect" + "fonchain-fiee/pkg/service/reports" "fonchain-fiee/pkg/service/upload" "fonchain-fiee/pkg/service/version" "net/http" @@ -187,6 +188,21 @@ func NewRouter() *gin.Engine { pressreleasesRouteLogin.POST("/delete", pressreleases.Delete) } + { + // 官网报告 + reportsRoute := v1.Group("/reports") + reportsRouteLogin := reportsRoute.Group("", middleware.CheckWebLogin(service.AccountProvider)) + // 年度报告 + reportsRouteLogin.POST("/annual/create", reports.AnnualReportCreate) + reportsRouteLogin.POST("/annual/list", reports.AnnualReportList) + reportsRouteLogin.POST("/annual/delete", reports.AnnualReportDelete) + reportsRouteLogin.POST("/annual/edit", reports.AnnualReportEdit) + // 季度报告 + reportsRouteLogin.POST("/quarterly/create", reports.QuarterlyReportCreate) + reportsRouteLogin.POST("/quarterly/list", reports.QuarterlyReportList) + reportsRouteLogin.POST("/quarterly/delete", reports.QuarterlyReportDelete) + reportsRouteLogin.POST("/quarterly/edit", reports.QuarterlyReportEdit) + } { importRoute := v1.Group("/import") importRoute.Use(middleware.CheckWebLogin(service.AccountProvider)) diff --git a/pkg/service/init.go b/pkg/service/init.go index adfa22e..7d46cf4 100644 --- a/pkg/service/init.go +++ b/pkg/service/init.go @@ -11,6 +11,7 @@ import ( "fonchain-fiee/api/order" "fonchain-fiee/api/payment" "fonchain-fiee/api/pressreleases" + "fonchain-fiee/api/reports" "fonchain-fiee/api/secFilings" pkConfig "fonchain-fiee/pkg/config" "os" @@ -31,6 +32,7 @@ var CastProvider = new(cast.CastClientImpl) var GovernanceProvider = new(governance.GovernanceClientImpl) var PressReleasesProvider = new(pressreleases.PressReleasesClientImpl) var SecFilingProvider = new(secFilings.SecFilingsClientImpl) +var ReportsProvider = new(reports.ReportsClientImpl) func init() { config.SetConsumerService(BundleProvider) @@ -43,6 +45,7 @@ func init() { config.SetConsumerService(GovernanceProvider) config.SetConsumerService(PressReleasesProvider) config.SetConsumerService(SecFilingProvider) + config.SetConsumerService(ReportsProvider) if err := config.Load(); err != nil { panic(err) diff --git a/pkg/service/reports/annualReports.go b/pkg/service/reports/annualReports.go new file mode 100644 index 0000000..5989f6d --- /dev/null +++ b/pkg/service/reports/annualReports.go @@ -0,0 +1,71 @@ +package reports + +import ( + "fonchain-fiee/api/reports" + "fonchain-fiee/pkg/model/login" + "fonchain-fiee/pkg/service" + + "github.com/gin-gonic/gin" +) + +func AnnualReportCreate(ctx *gin.Context) { + var req reports.AddAnnualReportReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + user := login.GetUserInfoFromC(ctx) + req.Operator = user.Name + req.OperatorId = int32(user.ID) + resp, err := service.ReportsProvider.AddAnnualReport(ctx, &req) + if err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, resp) +} + +func AnnualReportList(ctx *gin.Context) { + var req reports.GetAnnualReportListReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + resp, err := service.ReportsProvider.GetAnnualReportList(ctx, &req) + if err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, resp) +} + +func AnnualReportDelete(ctx *gin.Context) { + var req reports.DeleteAnnualReportReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + resp, err := service.ReportsProvider.DeleteAnnualReport(ctx, &req) + if err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, resp) +} + +func AnnualReportEdit(ctx *gin.Context) { + var req reports.EditAnnualReportReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + user := login.GetUserInfoFromC(ctx) + req.Operator = user.Name + req.OperatorId = int32(user.ID) + resp, err := service.ReportsProvider.EditAnnualReport(ctx, &req) + if err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, resp) +} diff --git a/pkg/service/reports/quarterlyReports.go b/pkg/service/reports/quarterlyReports.go new file mode 100644 index 0000000..0f61b96 --- /dev/null +++ b/pkg/service/reports/quarterlyReports.go @@ -0,0 +1,71 @@ +package reports + +import ( + "fonchain-fiee/api/reports" + "fonchain-fiee/pkg/model/login" + "fonchain-fiee/pkg/service" + + "github.com/gin-gonic/gin" +) + +func QuarterlyReportCreate(ctx *gin.Context) { + var req reports.AddQuarterlyReportReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + user := login.GetUserInfoFromC(ctx) + req.Operator = user.Name + req.OperatorId = int32(user.ID) + resp, err := service.ReportsProvider.AddQuarterlyReport(ctx, &req) + if err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, resp) +} + +func QuarterlyReportList(ctx *gin.Context) { + var req reports.GetQuarterlyReportListReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + resp, err := service.ReportsProvider.GetQuarterlyReportList(ctx, &req) + if err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, resp) +} + +func QuarterlyReportDelete(ctx *gin.Context) { + var req reports.DeleteQuarterlyReportReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + resp, err := service.ReportsProvider.DeleteQuarterlyReport(ctx, &req) + if err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, resp) +} + +func QuarterlyReportEdit(ctx *gin.Context) { + var req reports.EditQuarterlyReportReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + user := login.GetUserInfoFromC(ctx) + req.Operator = user.Name + req.OperatorId = int32(user.ID) + resp, err := service.ReportsProvider.EditQuarterlyReport(ctx, &req) + if err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, resp) +} From fe6eaa5c6eb34243c5c65c5cdc547f6200697ab8 Mon Sep 17 00:00:00 2001 From: JNG <365252428@qq.com> Date: Wed, 24 Sep 2025 15:50:16 +0800 Subject: [PATCH 2/3] Update reconciliation.go --- pkg/service/bundle/reconciliation.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/service/bundle/reconciliation.go b/pkg/service/bundle/reconciliation.go index c1e31df..29e4e88 100644 --- a/pkg/service/bundle/reconciliation.go +++ b/pkg/service/bundle/reconciliation.go @@ -92,7 +92,7 @@ func GetReconciliationListDownload(c *gin.Context) { } } titleList := []string{ - "关联套餐订单号", "关联增值服务订单号", "对账单创建时间", "用户编号", "艺人", "艺人手机号", "套餐", "支付金额", "手续费", "币种", "支付渠道", "支付时间", "支付状态", "流水号", + "关联套餐订单号", "关联增值服务订单号", "用户编号", "艺人", "艺人手机号", "套餐", "支付金额", "手续费", "币种", "支付渠道", "支付时间", "支付状态", "流水号", } var dataList []interface{} @@ -106,7 +106,7 @@ func GetReconciliationListDownload(c *gin.Context) { data := []any{ i.BundleOrderOn, i.BundleAddOrderOn, - i.CreationTime, + //i.CreationTime, i.SubNum, i.UserName, i.UserTel, From d82f148687085aaa1913520e0465aa0f64761ea0 Mon Sep 17 00:00:00 2001 From: "jiaji.H" Date: Wed, 24 Sep 2025 15:58:13 +0800 Subject: [PATCH 3/3] =?UTF-8?q?Updata=EF=BC=9A=E6=9B=B4=E6=96=B0pb?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/reports/reports.pb.go | 331 +++++++++++++++++++------------------- 1 file changed, 165 insertions(+), 166 deletions(-) diff --git a/api/reports/reports.pb.go b/api/reports/reports.pb.go index 1934638..e57bb01 100644 --- a/api/reports/reports.pb.go +++ b/api/reports/reports.pb.go @@ -229,7 +229,7 @@ type AnnualReport struct { FileUrl string `protobuf:"bytes,4,opt,name=fileUrl,proto3" json:"fileUrl"` //访问地址 Status int32 `protobuf:"varint,5,opt,name=status,proto3" json:"status"` //状态(1:上架,2:下架) Sort int32 `protobuf:"varint,6,opt,name=sort,proto3" json:"sort"` //排序 - UpdateTime string `protobuf:"bytes,7,opt,name=updateTime,proto3" json:"updateTime"` //最近更新时间 + UpdatedAt string `protobuf:"bytes,7,opt,name=updatedAt,proto3" json:"updatedAt"` //最近更新时间 Operator string `protobuf:"bytes,8,opt,name=operator,proto3" json:"operator"` //操作人 OperatorId int32 `protobuf:"varint,9,opt,name=operatorId,proto3" json:"operatorId"` //操作人Id } @@ -308,9 +308,9 @@ func (x *AnnualReport) GetSort() int32 { return 0 } -func (x *AnnualReport) GetUpdateTime() string { +func (x *AnnualReport) GetUpdatedAt() string { if x != nil { - return x.UpdateTime + return x.UpdatedAt } return "" } @@ -852,7 +852,7 @@ type QuarterlyReport struct { FileIntroduce string `protobuf:"bytes,3,opt,name=fileIntroduce,proto3" json:"fileIntroduce"` //文件介绍 Sort int32 `protobuf:"varint,4,opt,name=sort,proto3" json:"sort"` //排序 Status int32 `protobuf:"varint,5,opt,name=status,proto3" json:"status"` //状态(1:上架,2:下架) - UpdateTime string `protobuf:"bytes,6,opt,name=updateTime,proto3" json:"updateTime"` //最近更新时间 + UpdatedAt string `protobuf:"bytes,6,opt,name=updatedAt,proto3" json:"updatedAt"` //最近更新时间 Operator string `protobuf:"bytes,7,opt,name=operator,proto3" json:"operator"` //操作人 OperatorId int32 `protobuf:"varint,8,opt,name=operatorId,proto3" json:"operatorId"` //操作人Id } @@ -924,9 +924,9 @@ func (x *QuarterlyReport) GetStatus() int32 { return 0 } -func (x *QuarterlyReport) GetUpdateTime() string { +func (x *QuarterlyReport) GetUpdatedAt() string { if x != nil { - return x.UpdateTime + return x.UpdatedAt } return "" } @@ -1357,7 +1357,7 @@ var file_api_reports_reports_proto_rawDesc = []byte{ 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x29, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf0, 0x01, 0x0a, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xee, 0x01, 0x0a, 0x0c, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, @@ -1367,169 +1367,168 @@ var file_api_reports_reports_proto_rawDesc = []byte{ 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, - 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, - 0x9a, 0x01, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, - 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x27, 0x0a, 0x13, - 0x41, 0x64, 0x64, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xd7, 0x01, 0x0a, 0x13, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6e, - 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, - 0x28, 0x0a, 0x14, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x27, 0x0a, 0x15, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x69, 0x64, 0x22, 0x2a, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x75, - 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x7a, - 0x0a, 0x19, 0x47, 0x65, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x66, - 0x69, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x65, - 0x52, 0x08, 0x66, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x1a, 0x47, - 0x65, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, - 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0xeb, 0x01, 0x0a, 0x0f, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, + 0x6f, 0x72, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, + 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x9a, 0x01, + 0x0a, 0x12, 0x41, 0x64, 0x64, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1a, + 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x41, 0x64, + 0x64, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x22, 0xd7, 0x01, 0x0a, 0x13, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6e, 0x6e, 0x75, + 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, + 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, + 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, + 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0xdd, 0x01, - 0x0a, 0x15, 0x41, 0x64, 0x64, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, - 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x2a, 0x0a, - 0x16, 0x41, 0x64, 0x64, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x9a, 0x02, 0x0a, 0x16, 0x45, 0x64, - 0x69, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, - 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x45, 0x64, 0x69, 0x74, 0x51, 0x75, - 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x22, 0x2a, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x61, - 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, - 0x2d, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, - 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x32, 0xcd, - 0x05, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x13, 0x47, 0x65, - 0x74, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x1f, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x41, 0x6e, 0x6e, 0x75, 0x61, - 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x41, - 0x64, 0x64, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x10, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1c, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x2e, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x45, - 0x64, 0x69, 0x74, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, - 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x2e, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x16, 0x47, 0x65, - 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x47, + 0x05, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x28, 0x0a, + 0x14, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x27, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, + 0x22, 0x2a, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x7a, 0x0a, 0x19, + 0x47, 0x65, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x66, 0x69, 0x6c, + 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x65, 0x52, 0x08, + 0x66, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, + 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, + 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe9, 0x01, + 0x0a, 0x0f, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0xdd, 0x01, 0x0a, 0x15, 0x41, 0x64, + 0x64, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, + 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x16, 0x41, 0x64, 0x64, + 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x9a, 0x02, 0x0a, 0x16, 0x45, 0x64, 0x69, 0x74, 0x51, 0x75, + 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, + 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, + 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x45, 0x64, 0x69, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, + 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, + 0x2a, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, + 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, 0x2d, 0x0a, 0x19, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x32, 0xcd, 0x05, 0x0a, 0x07, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6e, + 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6e, 0x75, 0x61, + 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, + 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6e, 0x75, + 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x4c, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x41, 0x64, + 0x64, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x1c, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x6e, + 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, + 0x0a, 0x10, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0x1c, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x45, 0x64, 0x69, + 0x74, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x1d, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x41, + 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x55, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x51, 0x75, 0x61, + 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x22, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, + 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, - 0x12, 0x41, 0x64, 0x64, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x41, 0x64, - 0x64, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x41, 0x64, - 0x64, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x13, 0x45, 0x64, 0x69, 0x74, 0x51, 0x75, 0x61, 0x72, - 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1f, 0x2e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, - 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, - 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5e, - 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, - 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, - 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x61, 0x72, 0x74, - 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0c, - 0x5a, 0x0a, 0x2e, 0x2f, 0x3b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x12, 0x41, 0x64, 0x64, + 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, + 0x1e, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x75, 0x61, + 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x1f, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x75, 0x61, + 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x58, 0x0a, 0x13, 0x45, 0x64, 0x69, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, + 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1f, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5e, 0x0a, 0x15, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0x21, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x6c, 0x79, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x2f, + 0x3b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var (