// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 // protoc v3.21.9 // source: backend/operation/statistic.proto package operationPb 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) ) // SearchFormulaEstimateRequest 配方评估 type SearchFormulaEstimateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartTime string `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // 开始时间 EndTime string `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // 结束时间 SearchType int32 `protobuf:"varint,3,opt,name=search_type,json=searchType,proto3" json:"search_type,omitempty"` // 查询方式 0 安照配方 1 按照栏舍 ApiName string `protobuf:"bytes,4,opt,name=api_name,json=apiName,proto3" json:"api_name,omitempty"` // 牧场端接口标识名称 PastureId int32 `protobuf:"varint,5,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` // 牧场id TemplateId int32 `protobuf:"varint,6,opt,name=template_id,json=templateId,proto3" json:"template_id,omitempty"` // 配方模板id BarnId int32 `protobuf:"varint,7,opt,name=barn_id,json=barnId,proto3" json:"barn_id,omitempty"` // 栏舍id Pagination *PaginationModel `protobuf:"bytes,8,opt,name=pagination,proto3" json:"pagination,omitempty"` // 分页 } func (x *SearchFormulaEstimateRequest) Reset() { *x = SearchFormulaEstimateRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchFormulaEstimateRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchFormulaEstimateRequest) ProtoMessage() {} func (x *SearchFormulaEstimateRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 SearchFormulaEstimateRequest.ProtoReflect.Descriptor instead. func (*SearchFormulaEstimateRequest) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{0} } func (x *SearchFormulaEstimateRequest) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *SearchFormulaEstimateRequest) GetEndTime() string { if x != nil { return x.EndTime } return "" } func (x *SearchFormulaEstimateRequest) GetSearchType() int32 { if x != nil { return x.SearchType } return 0 } func (x *SearchFormulaEstimateRequest) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *SearchFormulaEstimateRequest) GetPastureId() int32 { if x != nil { return x.PastureId } return 0 } func (x *SearchFormulaEstimateRequest) GetTemplateId() int32 { if x != nil { return x.TemplateId } return 0 } func (x *SearchFormulaEstimateRequest) GetBarnId() int32 { if x != nil { return x.BarnId } return 0 } func (x *SearchFormulaEstimateRequest) GetPagination() *PaginationModel { if x != nil { return x.Pagination } return nil } // SearchInventoryStatisticsRequest 库存管理-库存统计 type SearchInventoryStatisticsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartTime string `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // 开始时间 EndTime string `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // 结束时间 ApiName string `protobuf:"bytes,3,opt,name=api_name,json=apiName,proto3" json:"api_name,omitempty"` // 牧场端接口标识名称 FeedName string `protobuf:"bytes,4,opt,name=feed_name,json=feedName,proto3" json:"feed_name,omitempty"` // 饲料名称 PastureId int32 `protobuf:"varint,5,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` // 牧场id Pagination *PaginationModel `protobuf:"bytes,6,opt,name=pagination,proto3" json:"pagination,omitempty"` // 分页 } func (x *SearchInventoryStatisticsRequest) Reset() { *x = SearchInventoryStatisticsRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchInventoryStatisticsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchInventoryStatisticsRequest) ProtoMessage() {} func (x *SearchInventoryStatisticsRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 SearchInventoryStatisticsRequest.ProtoReflect.Descriptor instead. func (*SearchInventoryStatisticsRequest) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{1} } func (x *SearchInventoryStatisticsRequest) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *SearchInventoryStatisticsRequest) GetEndTime() string { if x != nil { return x.EndTime } return "" } func (x *SearchInventoryStatisticsRequest) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *SearchInventoryStatisticsRequest) GetFeedName() string { if x != nil { return x.FeedName } return "" } func (x *SearchInventoryStatisticsRequest) GetPastureId() int32 { if x != nil { return x.PastureId } return 0 } func (x *SearchInventoryStatisticsRequest) GetPagination() *PaginationModel { if x != nil { return x.Pagination } return nil } // SearchUserMaterialsStatisticsRequest 库存管理-用料分析 type SearchUserMaterialsStatisticsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartTime string `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // 开始时间 EndTime string `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // 结束时间 ApiName string `protobuf:"bytes,3,opt,name=api_name,json=apiName,proto3" json:"api_name,omitempty"` // 牧场端接口标识名称 PastureId int32 `protobuf:"varint,4,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` // 牧场id ErrorCheck int32 `protobuf:"varint,5,opt,name=error_check,json=errorCheck,proto3" json:"error_check,omitempty"` // 误差是否选中 0 未选中 1 选中 TypeCheck int32 `protobuf:"varint,6,opt,name=type_check,json=typeCheck,proto3" json:"type_check,omitempty"` // 返回实际或理论 1 理论 2 实际 FeedName string `protobuf:"bytes,7,opt,name=feed_name,json=feedName,proto3" json:"feed_name,omitempty"` // 名称 Pagination *PaginationModel `protobuf:"bytes,8,opt,name=pagination,proto3" json:"pagination,omitempty"` // 分页 } func (x *SearchUserMaterialsStatisticsRequest) Reset() { *x = SearchUserMaterialsStatisticsRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchUserMaterialsStatisticsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchUserMaterialsStatisticsRequest) ProtoMessage() {} func (x *SearchUserMaterialsStatisticsRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 SearchUserMaterialsStatisticsRequest.ProtoReflect.Descriptor instead. func (*SearchUserMaterialsStatisticsRequest) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{2} } func (x *SearchUserMaterialsStatisticsRequest) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *SearchUserMaterialsStatisticsRequest) GetEndTime() string { if x != nil { return x.EndTime } return "" } func (x *SearchUserMaterialsStatisticsRequest) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *SearchUserMaterialsStatisticsRequest) GetPastureId() int32 { if x != nil { return x.PastureId } return 0 } func (x *SearchUserMaterialsStatisticsRequest) GetErrorCheck() int32 { if x != nil { return x.ErrorCheck } return 0 } func (x *SearchUserMaterialsStatisticsRequest) GetTypeCheck() int32 { if x != nil { return x.TypeCheck } return 0 } func (x *SearchUserMaterialsStatisticsRequest) GetFeedName() string { if x != nil { return x.FeedName } return "" } func (x *SearchUserMaterialsStatisticsRequest) GetPagination() *PaginationModel { if x != nil { return x.Pagination } return nil } // SearchPriceStatisticsRequest 库存管理-价格分析 type SearchPriceStatisticsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartTime string `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // 开始时间 EndTime string `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // 结束时间 ApiName string `protobuf:"bytes,3,opt,name=api_name,json=apiName,proto3" json:"api_name,omitempty"` // 牧场端接口标识名称 PastureId int32 `protobuf:"varint,4,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` // 牧场id FeedName string `protobuf:"bytes,5,opt,name=feed_name,json=feedName,proto3" json:"feed_name,omitempty"` // 名称 Pagination *PaginationModel `protobuf:"bytes,6,opt,name=pagination,proto3" json:"pagination,omitempty"` // 分页 } func (x *SearchPriceStatisticsRequest) Reset() { *x = SearchPriceStatisticsRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchPriceStatisticsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchPriceStatisticsRequest) ProtoMessage() {} func (x *SearchPriceStatisticsRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 SearchPriceStatisticsRequest.ProtoReflect.Descriptor instead. func (*SearchPriceStatisticsRequest) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{3} } func (x *SearchPriceStatisticsRequest) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *SearchPriceStatisticsRequest) GetEndTime() string { if x != nil { return x.EndTime } return "" } func (x *SearchPriceStatisticsRequest) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *SearchPriceStatisticsRequest) GetPastureId() int32 { if x != nil { return x.PastureId } return 0 } func (x *SearchPriceStatisticsRequest) GetFeedName() string { if x != nil { return x.FeedName } return "" } func (x *SearchPriceStatisticsRequest) GetPagination() *PaginationModel { if x != nil { return x.Pagination } return nil } // SearchFeedStatisticsRequest 饲喂效率-效率统计 type SearchFeedStatisticsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartTime string `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // 开始时间 ApiName string `protobuf:"bytes,2,opt,name=api_name,json=apiName,proto3" json:"api_name,omitempty"` // 牧场端接口标识名称 PastureId []int32 `protobuf:"varint,3,rep,packed,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` // 牧场id FormulaTemplate string `protobuf:"bytes,4,opt,name=formula_template,json=formulaTemplate,proto3" json:"formula_template,omitempty"` // 配方模板名称 BarnName string `protobuf:"bytes,5,opt,name=barn_name,json=barnName,proto3" json:"barn_name,omitempty"` // 栏舍名称 CattleCategoryName string `protobuf:"bytes,6,opt,name=cattle_category_name,json=cattleCategoryName,proto3" json:"cattle_category_name,omitempty"` // 畜牧类别名称 CattleCategoryId int32 `protobuf:"varint,7,opt,name=cattle_category_id,json=cattleCategoryId,proto3" json:"cattle_category_id,omitempty"` // 畜牧类别id ClassNumber int32 `protobuf:"varint,8,opt,name=class_number,json=classNumber,proto3" json:"class_number,omitempty"` // 班次 Pagination *PaginationModel `protobuf:"bytes,9,opt,name=pagination,proto3" json:"pagination,omitempty"` // 分页 EndTime string `protobuf:"bytes,10,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // 结束时间 } func (x *SearchFeedStatisticsRequest) Reset() { *x = SearchFeedStatisticsRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchFeedStatisticsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchFeedStatisticsRequest) ProtoMessage() {} func (x *SearchFeedStatisticsRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 SearchFeedStatisticsRequest.ProtoReflect.Descriptor instead. func (*SearchFeedStatisticsRequest) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{4} } func (x *SearchFeedStatisticsRequest) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *SearchFeedStatisticsRequest) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *SearchFeedStatisticsRequest) GetPastureId() []int32 { if x != nil { return x.PastureId } return nil } func (x *SearchFeedStatisticsRequest) GetFormulaTemplate() string { if x != nil { return x.FormulaTemplate } return "" } func (x *SearchFeedStatisticsRequest) GetBarnName() string { if x != nil { return x.BarnName } return "" } func (x *SearchFeedStatisticsRequest) GetCattleCategoryName() string { if x != nil { return x.CattleCategoryName } return "" } func (x *SearchFeedStatisticsRequest) GetCattleCategoryId() int32 { if x != nil { return x.CattleCategoryId } return 0 } func (x *SearchFeedStatisticsRequest) GetClassNumber() int32 { if x != nil { return x.ClassNumber } return 0 } func (x *SearchFeedStatisticsRequest) GetPagination() *PaginationModel { if x != nil { return x.Pagination } return nil } func (x *SearchFeedStatisticsRequest) GetEndTime() string { if x != nil { return x.EndTime } return "" } // FeedChartStatisticsRequest 饲喂效率chart图表 type FeedChartStatisticsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartTime string `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // 开始时间 EndTime string `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // 结束时间 PastureId int32 `protobuf:"varint,3,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` // 牧场id Status int32 `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` ApiType string `protobuf:"bytes,5,opt,name=api_type,json=apiType,proto3" json:"api_type,omitempty"` // mr 泌乳牛干物质采食量 sl 牛栏剩料率 hl 混料时间统计 zh 转化率 cbft 成本分析 } func (x *FeedChartStatisticsRequest) Reset() { *x = FeedChartStatisticsRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FeedChartStatisticsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FeedChartStatisticsRequest) ProtoMessage() {} func (x *FeedChartStatisticsRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 FeedChartStatisticsRequest.ProtoReflect.Descriptor instead. func (*FeedChartStatisticsRequest) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{5} } func (x *FeedChartStatisticsRequest) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *FeedChartStatisticsRequest) GetEndTime() string { if x != nil { return x.EndTime } return "" } func (x *FeedChartStatisticsRequest) GetPastureId() int32 { if x != nil { return x.PastureId } return 0 } func (x *FeedChartStatisticsRequest) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *FeedChartStatisticsRequest) GetApiType() string { if x != nil { return x.ApiType } return "" } // CowsAnalysisRequest 饲喂效率-牛群评估 type CowsAnalysisRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartTime string `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // 开始时间 ApiName string `protobuf:"bytes,2,opt,name=api_name,json=apiName,proto3" json:"api_name,omitempty"` // 牧场端接口标识名称 PastureId int32 `protobuf:"varint,3,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` // 牧场id Pagination *PaginationModel `protobuf:"bytes,4,opt,name=pagination,proto3" json:"pagination,omitempty"` // 分页 } func (x *CowsAnalysisRequest) Reset() { *x = CowsAnalysisRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CowsAnalysisRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CowsAnalysisRequest) ProtoMessage() {} func (x *CowsAnalysisRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 CowsAnalysisRequest.ProtoReflect.Descriptor instead. func (*CowsAnalysisRequest) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{6} } func (x *CowsAnalysisRequest) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *CowsAnalysisRequest) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *CowsAnalysisRequest) GetPastureId() int32 { if x != nil { return x.PastureId } return 0 } func (x *CowsAnalysisRequest) GetPagination() *PaginationModel { if x != nil { return x.Pagination } return nil } // AccuracyAggStatisticsRequest 准确性分析-汇总统计 type AccuracyAggStatisticsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartTime string `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // 开始时间 EndTime string `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // 结束时间 PastureId int32 `protobuf:"varint,3,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` // 牧场id Fname string `protobuf:"bytes,4,opt,name=fname,proto3" json:"fname,omitempty"` // 查询名称 Sort string `protobuf:"bytes,5,opt,name=sort,proto3" json:"sort,omitempty"` Status string `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"` Genre int32 `protobuf:"varint,7,opt,name=genre,proto3" json:"genre,omitempty"` Isdate int32 `protobuf:"varint,8,opt,name=isdate,proto3" json:"isdate,omitempty"` Hlwc1 int32 `protobuf:"varint,9,opt,name=hlwc1,proto3" json:"hlwc1,omitempty"` Hlwc2 int32 `protobuf:"varint,10,opt,name=hlwc2,proto3" json:"hlwc2,omitempty"` Hlzq1 int32 `protobuf:"varint,11,opt,name=hlzq1,proto3" json:"hlzq1,omitempty"` Hlzq2 int32 `protobuf:"varint,12,opt,name=hlzq2,proto3" json:"hlzq2,omitempty"` Hlzql1 int32 `protobuf:"varint,13,opt,name=hlzql1,proto3" json:"hlzql1,omitempty"` Hlzql2 int32 `protobuf:"varint,14,opt,name=hlzql2,proto3" json:"hlzql2,omitempty"` Slwc1 int32 `protobuf:"varint,15,opt,name=slwc1,proto3" json:"slwc1,omitempty"` Slwc2 int32 `protobuf:"varint,16,opt,name=slwc2,proto3" json:"slwc2,omitempty"` Slzq1 int32 `protobuf:"varint,17,opt,name=slzq1,proto3" json:"slzq1,omitempty"` Slzq2 int32 `protobuf:"varint,18,opt,name=slzq2,proto3" json:"slzq2,omitempty"` Slzql1 int32 `protobuf:"varint,19,opt,name=slzql1,proto3" json:"slzql1,omitempty"` Slzql2 int32 `protobuf:"varint,20,opt,name=slzql2,proto3" json:"slzql2,omitempty"` Projname string `protobuf:"bytes,21,opt,name=projname,proto3" json:"projname,omitempty"` Times string `protobuf:"bytes,22,opt,name=Times,proto3" json:"Times,omitempty"` IsError bool `protobuf:"varint,23,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"` } func (x *AccuracyAggStatisticsRequest) Reset() { *x = AccuracyAggStatisticsRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AccuracyAggStatisticsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*AccuracyAggStatisticsRequest) ProtoMessage() {} func (x *AccuracyAggStatisticsRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 AccuracyAggStatisticsRequest.ProtoReflect.Descriptor instead. func (*AccuracyAggStatisticsRequest) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{7} } func (x *AccuracyAggStatisticsRequest) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *AccuracyAggStatisticsRequest) GetEndTime() string { if x != nil { return x.EndTime } return "" } func (x *AccuracyAggStatisticsRequest) GetPastureId() int32 { if x != nil { return x.PastureId } return 0 } func (x *AccuracyAggStatisticsRequest) GetFname() string { if x != nil { return x.Fname } return "" } func (x *AccuracyAggStatisticsRequest) GetSort() string { if x != nil { return x.Sort } return "" } func (x *AccuracyAggStatisticsRequest) GetStatus() string { if x != nil { return x.Status } return "" } func (x *AccuracyAggStatisticsRequest) GetGenre() int32 { if x != nil { return x.Genre } return 0 } func (x *AccuracyAggStatisticsRequest) GetIsdate() int32 { if x != nil { return x.Isdate } return 0 } func (x *AccuracyAggStatisticsRequest) GetHlwc1() int32 { if x != nil { return x.Hlwc1 } return 0 } func (x *AccuracyAggStatisticsRequest) GetHlwc2() int32 { if x != nil { return x.Hlwc2 } return 0 } func (x *AccuracyAggStatisticsRequest) GetHlzq1() int32 { if x != nil { return x.Hlzq1 } return 0 } func (x *AccuracyAggStatisticsRequest) GetHlzq2() int32 { if x != nil { return x.Hlzq2 } return 0 } func (x *AccuracyAggStatisticsRequest) GetHlzql1() int32 { if x != nil { return x.Hlzql1 } return 0 } func (x *AccuracyAggStatisticsRequest) GetHlzql2() int32 { if x != nil { return x.Hlzql2 } return 0 } func (x *AccuracyAggStatisticsRequest) GetSlwc1() int32 { if x != nil { return x.Slwc1 } return 0 } func (x *AccuracyAggStatisticsRequest) GetSlwc2() int32 { if x != nil { return x.Slwc2 } return 0 } func (x *AccuracyAggStatisticsRequest) GetSlzq1() int32 { if x != nil { return x.Slzq1 } return 0 } func (x *AccuracyAggStatisticsRequest) GetSlzq2() int32 { if x != nil { return x.Slzq2 } return 0 } func (x *AccuracyAggStatisticsRequest) GetSlzql1() int32 { if x != nil { return x.Slzql1 } return 0 } func (x *AccuracyAggStatisticsRequest) GetSlzql2() int32 { if x != nil { return x.Slzql2 } return 0 } func (x *AccuracyAggStatisticsRequest) GetProjname() string { if x != nil { return x.Projname } return "" } func (x *AccuracyAggStatisticsRequest) GetTimes() string { if x != nil { return x.Times } return "" } func (x *AccuracyAggStatisticsRequest) GetIsError() bool { if x != nil { return x.IsError } return false } // MixFeedStatisticsRequest 准确性分析-混料统计 type MixFeedStatisticsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartTime string `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // 开始时间 EndTime string `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // 结束时间 ApiName string `protobuf:"bytes,3,opt,name=api_name,json=apiName,proto3" json:"api_name,omitempty"` // 牧场端接口标识名称 PastureId int32 `protobuf:"varint,4,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` // 牧场id EquipmentName string `protobuf:"bytes,5,opt,name=equipment_name,json=equipmentName,proto3" json:"equipment_name,omitempty"` // 设备名称 TrainNumber string `protobuf:"bytes,6,opt,name=train_number,json=trainNumber,proto3" json:"train_number,omitempty"` // 车次 ClassNumber int32 `protobuf:"varint,7,opt,name=class_number,json=classNumber,proto3" json:"class_number,omitempty"` // 班次 FormulationName string `protobuf:"bytes,8,opt,name=formulation_name,json=formulationName,proto3" json:"formulation_name,omitempty"` // 配方名称 JumpType int32 `protobuf:"varint,9,opt,name=jump_type,json=jumpType,proto3" json:"jump_type,omitempty"` // 跳转方式 0 手动跳转 1 自动跳转 Hlwc1 int32 `protobuf:"varint,10,opt,name=hlwc1,proto3" json:"hlwc1,omitempty"` // 混料误差值1 Hlwc2 int32 `protobuf:"varint,11,opt,name=hlwc2,proto3" json:"hlwc2,omitempty"` // 混料误差值2 Hlzq1 int32 `protobuf:"varint,12,opt,name=hlzq1,proto3" json:"hlzq1,omitempty"` // 混料准确率1 Hlzq2 int32 `protobuf:"varint,13,opt,name=hlzq2,proto3" json:"hlzq2,omitempty"` // 混料准确率2 Hlzql1 int32 `protobuf:"varint,14,opt,name=hlzql1,proto3" json:"hlzql1,omitempty"` // 混料正确率1 Hlzql2 int32 `protobuf:"varint,15,opt,name=hlzql2,proto3" json:"hlzql2,omitempty"` // 混料正确率2 IsError bool `protobuf:"varint,16,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"` // 只看超出预设值数据 ButtonType string `protobuf:"bytes,17,opt,name=button_type,json=buttonType,proto3" json:"button_type,omitempty"` IsUse string `protobuf:"bytes,18,opt,name=is_use,json=isUse,proto3" json:"is_use,omitempty"` Pagination *PaginationModel `protobuf:"bytes,19,opt,name=pagination,proto3" json:"pagination,omitempty"` // 分页 } func (x *MixFeedStatisticsRequest) Reset() { *x = MixFeedStatisticsRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MixFeedStatisticsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*MixFeedStatisticsRequest) ProtoMessage() {} func (x *MixFeedStatisticsRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 MixFeedStatisticsRequest.ProtoReflect.Descriptor instead. func (*MixFeedStatisticsRequest) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{8} } func (x *MixFeedStatisticsRequest) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *MixFeedStatisticsRequest) GetEndTime() string { if x != nil { return x.EndTime } return "" } func (x *MixFeedStatisticsRequest) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *MixFeedStatisticsRequest) GetPastureId() int32 { if x != nil { return x.PastureId } return 0 } func (x *MixFeedStatisticsRequest) GetEquipmentName() string { if x != nil { return x.EquipmentName } return "" } func (x *MixFeedStatisticsRequest) GetTrainNumber() string { if x != nil { return x.TrainNumber } return "" } func (x *MixFeedStatisticsRequest) GetClassNumber() int32 { if x != nil { return x.ClassNumber } return 0 } func (x *MixFeedStatisticsRequest) GetFormulationName() string { if x != nil { return x.FormulationName } return "" } func (x *MixFeedStatisticsRequest) GetJumpType() int32 { if x != nil { return x.JumpType } return 0 } func (x *MixFeedStatisticsRequest) GetHlwc1() int32 { if x != nil { return x.Hlwc1 } return 0 } func (x *MixFeedStatisticsRequest) GetHlwc2() int32 { if x != nil { return x.Hlwc2 } return 0 } func (x *MixFeedStatisticsRequest) GetHlzq1() int32 { if x != nil { return x.Hlzq1 } return 0 } func (x *MixFeedStatisticsRequest) GetHlzq2() int32 { if x != nil { return x.Hlzq2 } return 0 } func (x *MixFeedStatisticsRequest) GetHlzql1() int32 { if x != nil { return x.Hlzql1 } return 0 } func (x *MixFeedStatisticsRequest) GetHlzql2() int32 { if x != nil { return x.Hlzql2 } return 0 } func (x *MixFeedStatisticsRequest) GetIsError() bool { if x != nil { return x.IsError } return false } func (x *MixFeedStatisticsRequest) GetButtonType() string { if x != nil { return x.ButtonType } return "" } func (x *MixFeedStatisticsRequest) GetIsUse() string { if x != nil { return x.IsUse } return "" } func (x *MixFeedStatisticsRequest) GetPagination() *PaginationModel { if x != nil { return x.Pagination } return nil } // SprinkleStatisticsRequest 准确性分析-撒料统计 type SprinkleStatisticsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartTime string `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // 开始时间 EndTime string `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // 结束时间 ApiName string `protobuf:"bytes,3,opt,name=api_name,json=apiName,proto3" json:"api_name,omitempty"` // 牧场端接口标识名称 PastureId int32 `protobuf:"varint,4,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` // 牧场id EquipmentName string `protobuf:"bytes,5,opt,name=equipment_name,json=equipmentName,proto3" json:"equipment_name,omitempty"` // tmr设备名称 TrainNumber string `protobuf:"bytes,6,opt,name=train_number,json=trainNumber,proto3" json:"train_number,omitempty"` // 车次 ClassNumber int32 `protobuf:"varint,7,opt,name=class_number,json=classNumber,proto3" json:"class_number,omitempty"` // 班次 FormulationName string `protobuf:"bytes,8,opt,name=formulation_name,json=formulationName,proto3" json:"formulation_name,omitempty"` // 配方名称 BarnName string `protobuf:"bytes,9,opt,name=barn_name,json=barnName,proto3" json:"barn_name,omitempty"` // 栏舍名称 JumpType int32 `protobuf:"varint,10,opt,name=jump_type,json=jumpType,proto3" json:"jump_type,omitempty"` // 跳转方式 0 手动跳转 1 自动跳转 Slwc1 int32 `protobuf:"varint,11,opt,name=slwc1,proto3" json:"slwc1,omitempty"` // 撒料误差值1 Slwc2 int32 `protobuf:"varint,12,opt,name=slwc2,proto3" json:"slwc2,omitempty"` // 撒料误差值2 Slzq1 int32 `protobuf:"varint,13,opt,name=slzq1,proto3" json:"slzq1,omitempty"` // 撒料准确率1 Slzq2 int32 `protobuf:"varint,14,opt,name=slzq2,proto3" json:"slzq2,omitempty"` // 撒料准确率2 Slzql1 int32 `protobuf:"varint,15,opt,name=slzql1,proto3" json:"slzql1,omitempty"` // 撒料正确率1 Slzql2 int32 `protobuf:"varint,16,opt,name=slzql2,proto3" json:"slzql2,omitempty"` // 撒料正确率2 IsError bool `protobuf:"varint,17,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"` // 只看超出预设值数据 ButtonType string `protobuf:"bytes,18,opt,name=button_type,json=buttonType,proto3" json:"button_type,omitempty"` IsUse string `protobuf:"bytes,19,opt,name=is_use,json=isUse,proto3" json:"is_use,omitempty"` Pagination *PaginationModel `protobuf:"bytes,20,opt,name=pagination,proto3" json:"pagination,omitempty"` // 分页 } func (x *SprinkleStatisticsRequest) Reset() { *x = SprinkleStatisticsRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SprinkleStatisticsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SprinkleStatisticsRequest) ProtoMessage() {} func (x *SprinkleStatisticsRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 SprinkleStatisticsRequest.ProtoReflect.Descriptor instead. func (*SprinkleStatisticsRequest) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{9} } func (x *SprinkleStatisticsRequest) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *SprinkleStatisticsRequest) GetEndTime() string { if x != nil { return x.EndTime } return "" } func (x *SprinkleStatisticsRequest) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *SprinkleStatisticsRequest) GetPastureId() int32 { if x != nil { return x.PastureId } return 0 } func (x *SprinkleStatisticsRequest) GetEquipmentName() string { if x != nil { return x.EquipmentName } return "" } func (x *SprinkleStatisticsRequest) GetTrainNumber() string { if x != nil { return x.TrainNumber } return "" } func (x *SprinkleStatisticsRequest) GetClassNumber() int32 { if x != nil { return x.ClassNumber } return 0 } func (x *SprinkleStatisticsRequest) GetFormulationName() string { if x != nil { return x.FormulationName } return "" } func (x *SprinkleStatisticsRequest) GetBarnName() string { if x != nil { return x.BarnName } return "" } func (x *SprinkleStatisticsRequest) GetJumpType() int32 { if x != nil { return x.JumpType } return 0 } func (x *SprinkleStatisticsRequest) GetSlwc1() int32 { if x != nil { return x.Slwc1 } return 0 } func (x *SprinkleStatisticsRequest) GetSlwc2() int32 { if x != nil { return x.Slwc2 } return 0 } func (x *SprinkleStatisticsRequest) GetSlzq1() int32 { if x != nil { return x.Slzq1 } return 0 } func (x *SprinkleStatisticsRequest) GetSlzq2() int32 { if x != nil { return x.Slzq2 } return 0 } func (x *SprinkleStatisticsRequest) GetSlzql1() int32 { if x != nil { return x.Slzql1 } return 0 } func (x *SprinkleStatisticsRequest) GetSlzql2() int32 { if x != nil { return x.Slzql2 } return 0 } func (x *SprinkleStatisticsRequest) GetIsError() bool { if x != nil { return x.IsError } return false } func (x *SprinkleStatisticsRequest) GetButtonType() string { if x != nil { return x.ButtonType } return "" } func (x *SprinkleStatisticsRequest) GetIsUse() string { if x != nil { return x.IsUse } return "" } func (x *SprinkleStatisticsRequest) GetPagination() *PaginationModel { if x != nil { return x.Pagination } return nil } // GetDataByNameRequest type GetDataByNameRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartTime string `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // 开始时间 EndTime string `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // 结束时间 ApiName string `protobuf:"bytes,3,opt,name=api_name,json=apiName,proto3" json:"api_name,omitempty"` // 牧场端接口标识名称 PastureId int32 `protobuf:"varint,4,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` // 牧场id } func (x *GetDataByNameRequest) Reset() { *x = GetDataByNameRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetDataByNameRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetDataByNameRequest) ProtoMessage() {} func (x *GetDataByNameRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 GetDataByNameRequest.ProtoReflect.Descriptor instead. func (*GetDataByNameRequest) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{10} } func (x *GetDataByNameRequest) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *GetDataByNameRequest) GetEndTime() string { if x != nil { return x.EndTime } return "" } func (x *GetDataByNameRequest) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *GetDataByNameRequest) GetPastureId() int32 { if x != nil { return x.PastureId } return 0 } // ProcessAnalysisRequest 过程分析 type ProcessAnalysisRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartTime string `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // 开始时间 EndTime string `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // 结束时间 ApiName string `protobuf:"bytes,3,opt,name=api_name,json=apiName,proto3" json:"api_name,omitempty"` // 牧场端接口标识名称 PastureId int32 `protobuf:"varint,4,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` // 牧场id PlanType int32 `protobuf:"varint,5,opt,name=plan_type,json=planType,proto3" json:"plan_type,omitempty"` // 计划类型 TmrName []string `protobuf:"bytes,6,rep,name=tmr_name,json=tmrName,proto3" json:"tmr_name,omitempty"` // TMR名称 ErrorRange string `protobuf:"bytes,7,opt,name=error_range,json=errorRange,proto3" json:"error_range,omitempty"` // 误差筛选范围 WorkStatus string `protobuf:"bytes,8,opt,name=work_status,json=workStatus,proto3" json:"work_status,omitempty"` // 工作状态 MixFeedType string `protobuf:"bytes,9,opt,name=mix_feed_type,json=mixFeedType,proto3" json:"mix_feed_type,omitempty"` // 混料类别 Hlwc1 int32 `protobuf:"varint,10,opt,name=hlwc1,proto3" json:"hlwc1,omitempty"` // 混料误差值1 Hlwc2 int32 `protobuf:"varint,11,opt,name=hlwc2,proto3" json:"hlwc2,omitempty"` // 混料误差值2 Hlzq1 int32 `protobuf:"varint,12,opt,name=hlzq1,proto3" json:"hlzq1,omitempty"` // 混料准确率1 Hlzq2 int32 `protobuf:"varint,13,opt,name=hlzq2,proto3" json:"hlzq2,omitempty"` // 混料准确率2 Slwc1 int32 `protobuf:"varint,14,opt,name=slwc1,proto3" json:"slwc1,omitempty"` // 撒料误差值1 Slwc2 int32 `protobuf:"varint,15,opt,name=slwc2,proto3" json:"slwc2,omitempty"` // 撒料误差值2 Slzq1 int32 `protobuf:"varint,16,opt,name=slzq1,proto3" json:"slzq1,omitempty"` // 撒料准确率1 Slzq2 int32 `protobuf:"varint,17,opt,name=slzq2,proto3" json:"slzq2,omitempty"` // 撒料准确率2 Pagination *PaginationModel `protobuf:"bytes,18,opt,name=pagination,proto3" json:"pagination,omitempty"` // 分页 } func (x *ProcessAnalysisRequest) Reset() { *x = ProcessAnalysisRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProcessAnalysisRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProcessAnalysisRequest) ProtoMessage() {} func (x *ProcessAnalysisRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 ProcessAnalysisRequest.ProtoReflect.Descriptor instead. func (*ProcessAnalysisRequest) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{11} } func (x *ProcessAnalysisRequest) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *ProcessAnalysisRequest) GetEndTime() string { if x != nil { return x.EndTime } return "" } func (x *ProcessAnalysisRequest) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *ProcessAnalysisRequest) GetPastureId() int32 { if x != nil { return x.PastureId } return 0 } func (x *ProcessAnalysisRequest) GetPlanType() int32 { if x != nil { return x.PlanType } return 0 } func (x *ProcessAnalysisRequest) GetTmrName() []string { if x != nil { return x.TmrName } return nil } func (x *ProcessAnalysisRequest) GetErrorRange() string { if x != nil { return x.ErrorRange } return "" } func (x *ProcessAnalysisRequest) GetWorkStatus() string { if x != nil { return x.WorkStatus } return "" } func (x *ProcessAnalysisRequest) GetMixFeedType() string { if x != nil { return x.MixFeedType } return "" } func (x *ProcessAnalysisRequest) GetHlwc1() int32 { if x != nil { return x.Hlwc1 } return 0 } func (x *ProcessAnalysisRequest) GetHlwc2() int32 { if x != nil { return x.Hlwc2 } return 0 } func (x *ProcessAnalysisRequest) GetHlzq1() int32 { if x != nil { return x.Hlzq1 } return 0 } func (x *ProcessAnalysisRequest) GetHlzq2() int32 { if x != nil { return x.Hlzq2 } return 0 } func (x *ProcessAnalysisRequest) GetSlwc1() int32 { if x != nil { return x.Slwc1 } return 0 } func (x *ProcessAnalysisRequest) GetSlwc2() int32 { if x != nil { return x.Slwc2 } return 0 } func (x *ProcessAnalysisRequest) GetSlzq1() int32 { if x != nil { return x.Slzq1 } return 0 } func (x *ProcessAnalysisRequest) GetSlzq2() int32 { if x != nil { return x.Slzq2 } return 0 } func (x *ProcessAnalysisRequest) GetPagination() *PaginationModel { if x != nil { return x.Pagination } return nil } // ProcessMixedSprinkleDetailRequest type ProcessMixedSprinkleDetailRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ApiName string `protobuf:"bytes,1,opt,name=api_name,json=apiName,proto3" json:"api_name,omitempty"` PastureId int32 `protobuf:"varint,2,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` Pid string `protobuf:"bytes,3,opt,name=pid,proto3" json:"pid,omitempty"` FclassId string `protobuf:"bytes,4,opt,name=fclass_id,json=fclassId,proto3" json:"fclass_id,omitempty"` Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id,omitempty"` Pagination *PaginationModel `protobuf:"bytes,6,opt,name=pagination,proto3" json:"pagination,omitempty"` // 分页 } func (x *ProcessMixedSprinkleDetailRequest) Reset() { *x = ProcessMixedSprinkleDetailRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProcessMixedSprinkleDetailRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProcessMixedSprinkleDetailRequest) ProtoMessage() {} func (x *ProcessMixedSprinkleDetailRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 ProcessMixedSprinkleDetailRequest.ProtoReflect.Descriptor instead. func (*ProcessMixedSprinkleDetailRequest) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{12} } func (x *ProcessMixedSprinkleDetailRequest) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *ProcessMixedSprinkleDetailRequest) GetPastureId() int32 { if x != nil { return x.PastureId } return 0 } func (x *ProcessMixedSprinkleDetailRequest) GetPid() string { if x != nil { return x.Pid } return "" } func (x *ProcessMixedSprinkleDetailRequest) GetFclassId() string { if x != nil { return x.FclassId } return "" } func (x *ProcessMixedSprinkleDetailRequest) GetId() string { if x != nil { return x.Id } return "" } func (x *ProcessMixedSprinkleDetailRequest) GetPagination() *PaginationModel { if x != nil { return x.Pagination } return nil } type TrainNumberRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ApiName string `protobuf:"bytes,1,opt,name=api_name,json=apiName,proto3" json:"api_name,omitempty"` // 牧场端接口标识名称 PastureId int32 `protobuf:"varint,2,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` // 牧场id InfoName string `protobuf:"bytes,3,opt,name=info_name,json=infoName,proto3" json:"info_name,omitempty"` Pagination *PaginationModel `protobuf:"bytes,4,opt,name=pagination,proto3" json:"pagination,omitempty"` // 分页 } func (x *TrainNumberRequest) Reset() { *x = TrainNumberRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TrainNumberRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*TrainNumberRequest) ProtoMessage() {} func (x *TrainNumberRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 TrainNumberRequest.ProtoReflect.Descriptor instead. func (*TrainNumberRequest) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{13} } func (x *TrainNumberRequest) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *TrainNumberRequest) GetPastureId() int32 { if x != nil { return x.PastureId } return 0 } func (x *TrainNumberRequest) GetInfoName() string { if x != nil { return x.InfoName } return "" } func (x *TrainNumberRequest) GetPagination() *PaginationModel { if x != nil { return x.Pagination } return nil } type TrainNumberResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` Data *TrainNumberData `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *TrainNumberResponse) Reset() { *x = TrainNumberResponse{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TrainNumberResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*TrainNumberResponse) ProtoMessage() {} func (x *TrainNumberResponse) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 TrainNumberResponse.ProtoReflect.Descriptor instead. func (*TrainNumberResponse) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{14} } func (x *TrainNumberResponse) GetCode() int32 { if x != nil { return x.Code } return 0 } func (x *TrainNumberResponse) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *TrainNumberResponse) GetData() *TrainNumberData { if x != nil { return x.Data } return nil } type TrainNumberData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*FormulaOptionEnum `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` } func (x *TrainNumberData) Reset() { *x = TrainNumberData{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TrainNumberData) String() string { return protoimpl.X.MessageStringOf(x) } func (*TrainNumberData) ProtoMessage() {} func (x *TrainNumberData) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 TrainNumberData.ProtoReflect.Descriptor instead. func (*TrainNumberData) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{15} } func (x *TrainNumberData) GetList() []*FormulaOptionEnum { if x != nil { return x.List } return nil } // 首页 dashboard 准确性分析 type SearchAnalysisAccuracyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CattleParentCategoryId CattleCategoryParent_Kind `protobuf:"varint,1,opt,name=cattle_parent_category_id,json=cattleParentCategoryId,proto3,enum=backend.operation.CattleCategoryParent_Kind" json:"cattle_parent_category_id,omitempty"` // 牧畜分类id 泌乳牛 FeedFormulaId int32 `protobuf:"varint,2,opt,name=feed_formula_id,json=feedFormulaId,proto3" json:"feed_formula_id,omitempty"` // 配方id StartDate string `protobuf:"bytes,3,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` // 开始时间 EndDate string `protobuf:"bytes,4,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` // 结束时间 PastureIds []int32 `protobuf:"varint,5,rep,packed,name=pasture_ids,json=pastureIds,proto3" json:"pasture_ids,omitempty"` //牧场ids TopRandStart float32 `protobuf:"fixed32,6,opt,name=top_rand_start,json=topRandStart,proto3" json:"top_rand_start,omitempty"` // 排名区间开始位 TopRandEnd float32 `protobuf:"fixed32,7,opt,name=top_rand_end,json=topRandEnd,proto3" json:"top_rand_end,omitempty"` // 排名区间结束位 DashboardTopType DashboardTopType_Kind `protobuf:"varint,8,opt,name=dashboard_top_type,json=dashboardTopType,proto3,enum=backend.operation.DashboardTopType_Kind" json:"dashboard_top_type,omitempty"` // 排序区间标识 } func (x *SearchAnalysisAccuracyRequest) Reset() { *x = SearchAnalysisAccuracyRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchAnalysisAccuracyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchAnalysisAccuracyRequest) ProtoMessage() {} func (x *SearchAnalysisAccuracyRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 SearchAnalysisAccuracyRequest.ProtoReflect.Descriptor instead. func (*SearchAnalysisAccuracyRequest) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{16} } func (x *SearchAnalysisAccuracyRequest) GetCattleParentCategoryId() CattleCategoryParent_Kind { if x != nil { return x.CattleParentCategoryId } return CattleCategoryParent_INVALID } func (x *SearchAnalysisAccuracyRequest) GetFeedFormulaId() int32 { if x != nil { return x.FeedFormulaId } return 0 } func (x *SearchAnalysisAccuracyRequest) GetStartDate() string { if x != nil { return x.StartDate } return "" } func (x *SearchAnalysisAccuracyRequest) GetEndDate() string { if x != nil { return x.EndDate } return "" } func (x *SearchAnalysisAccuracyRequest) GetPastureIds() []int32 { if x != nil { return x.PastureIds } return nil } func (x *SearchAnalysisAccuracyRequest) GetTopRandStart() float32 { if x != nil { return x.TopRandStart } return 0 } func (x *SearchAnalysisAccuracyRequest) GetTopRandEnd() float32 { if x != nil { return x.TopRandEnd } return 0 } func (x *SearchAnalysisAccuracyRequest) GetDashboardTopType() DashboardTopType_Kind { if x != nil { return x.DashboardTopType } return DashboardTopType_INVALID } type SearchAnalysisAccuracyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` Data *AnalysisAccuracy `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *SearchAnalysisAccuracyResponse) Reset() { *x = SearchAnalysisAccuracyResponse{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchAnalysisAccuracyResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchAnalysisAccuracyResponse) ProtoMessage() {} func (x *SearchAnalysisAccuracyResponse) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 SearchAnalysisAccuracyResponse.ProtoReflect.Descriptor instead. func (*SearchAnalysisAccuracyResponse) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{17} } func (x *SearchAnalysisAccuracyResponse) GetCode() int32 { if x != nil { return x.Code } return 0 } func (x *SearchAnalysisAccuracyResponse) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *SearchAnalysisAccuracyResponse) GetData() *AnalysisAccuracy { if x != nil { return x.Data } return nil } type AnalysisAccuracy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Chart *Chart `protobuf:"bytes,1,opt,name=chart,proto3" json:"chart,omitempty"` Table *Table `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"` } func (x *AnalysisAccuracy) Reset() { *x = AnalysisAccuracy{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AnalysisAccuracy) String() string { return protoimpl.X.MessageStringOf(x) } func (*AnalysisAccuracy) ProtoMessage() {} func (x *AnalysisAccuracy) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_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 AnalysisAccuracy.ProtoReflect.Descriptor instead. func (*AnalysisAccuracy) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{18} } func (x *AnalysisAccuracy) GetChart() *Chart { if x != nil { return x.Chart } return nil } func (x *AnalysisAccuracy) GetTable() *Table { if x != nil { return x.Table } return nil } type Chart struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MixedFodderAccurateRatio *CommonValueRatio `protobuf:"bytes,4,opt,name=mixed_fodder_accurate_ratio,json=mixedFodderAccurateRatio,proto3" json:"mixed_fodder_accurate_ratio,omitempty"` // 混料准确率 MixedFodderCorrectRatio *CommonValueRatio `protobuf:"bytes,5,opt,name=mixed_fodder_correct_ratio,json=mixedFodderCorrectRatio,proto3" json:"mixed_fodder_correct_ratio,omitempty"` // 混料正确率 SprinkleFodderAccurateRatio *CommonValueRatio `protobuf:"bytes,6,opt,name=sprinkle_fodder_accurate_ratio,json=sprinkleFodderAccurateRatio,proto3" json:"sprinkle_fodder_accurate_ratio,omitempty"` // 撒料准确率 SprinkleFodderCorrectRatio *CommonValueRatio `protobuf:"bytes,7,opt,name=sprinkle_fodder_correct_ratio,json=sprinkleFodderCorrectRatio,proto3" json:"sprinkle_fodder_correct_ratio,omitempty"` // 撒料正确率 } func (x *Chart) Reset() { *x = Chart{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Chart) String() string { return protoimpl.X.MessageStringOf(x) } func (*Chart) ProtoMessage() {} func (x *Chart) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Chart.ProtoReflect.Descriptor instead. func (*Chart) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{19} } func (x *Chart) GetMixedFodderAccurateRatio() *CommonValueRatio { if x != nil { return x.MixedFodderAccurateRatio } return nil } func (x *Chart) GetMixedFodderCorrectRatio() *CommonValueRatio { if x != nil { return x.MixedFodderCorrectRatio } return nil } func (x *Chart) GetSprinkleFodderAccurateRatio() *CommonValueRatio { if x != nil { return x.SprinkleFodderAccurateRatio } return nil } func (x *Chart) GetSprinkleFodderCorrectRatio() *CommonValueRatio { if x != nil { return x.SprinkleFodderCorrectRatio } return nil } type Table struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TableList []*Table_TableList `protobuf:"bytes,1,rep,name=table_list,json=tableList,proto3" json:"table_list,omitempty"` } func (x *Table) Reset() { *x = Table{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Table) String() string { return protoimpl.X.MessageStringOf(x) } func (*Table) ProtoMessage() {} func (x *Table) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Table.ProtoReflect.Descriptor instead. func (*Table) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{20} } func (x *Table) GetTableList() []*Table_TableList { if x != nil { return x.TableList } return nil } type CommonValueRatio struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MaxValue string `protobuf:"bytes,1,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"` // 最高值 MiddleValue string `protobuf:"bytes,2,opt,name=middle_value,json=middleValue,proto3" json:"middle_value,omitempty"` // 中位值 MinValue string `protobuf:"bytes,3,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"` // 最低值 DataList []*ValueRatio `protobuf:"bytes,4,rep,name=data_list,json=dataList,proto3" json:"data_list,omitempty"` // 数据集合 PastureName []string `protobuf:"bytes,5,rep,name=pasture_name,json=pastureName,proto3" json:"pasture_name,omitempty"` // 牧场名称集合 DateDay []string `protobuf:"bytes,6,rep,name=date_day,json=dateDay,proto3" json:"date_day,omitempty"` // 日期集合 } func (x *CommonValueRatio) Reset() { *x = CommonValueRatio{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommonValueRatio) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommonValueRatio) ProtoMessage() {} func (x *CommonValueRatio) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommonValueRatio.ProtoReflect.Descriptor instead. func (*CommonValueRatio) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{21} } func (x *CommonValueRatio) GetMaxValue() string { if x != nil { return x.MaxValue } return "" } func (x *CommonValueRatio) GetMiddleValue() string { if x != nil { return x.MiddleValue } return "" } func (x *CommonValueRatio) GetMinValue() string { if x != nil { return x.MinValue } return "" } func (x *CommonValueRatio) GetDataList() []*ValueRatio { if x != nil { return x.DataList } return nil } func (x *CommonValueRatio) GetPastureName() []string { if x != nil { return x.PastureName } return nil } func (x *CommonValueRatio) GetDateDay() []string { if x != nil { return x.DateDay } return nil } type ValueRatio struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ValueRatio []string `protobuf:"bytes,1,rep,name=value_ratio,json=valueRatio,proto3" json:"value_ratio,omitempty"` } func (x *ValueRatio) Reset() { *x = ValueRatio{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ValueRatio) String() string { return protoimpl.X.MessageStringOf(x) } func (*ValueRatio) ProtoMessage() {} func (x *ValueRatio) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ValueRatio.ProtoReflect.Descriptor instead. func (*ValueRatio) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{22} } func (x *ValueRatio) GetValueRatio() []string { if x != nil { return x.ValueRatio } return nil } // 首页 dashboard 撒料时间统计分析 type SprinkleFeedTimeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FeedFormulaId int32 `protobuf:"varint,1,opt,name=feed_formula_id,json=feedFormulaId,proto3" json:"feed_formula_id,omitempty"` // 配方id StartDate string `protobuf:"bytes,2,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` // 开始时间 EndDate string `protobuf:"bytes,3,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` // 结束时间 PastureIds []int32 `protobuf:"varint,4,rep,packed,name=pasture_ids,json=pastureIds,proto3" json:"pasture_ids,omitempty"` //牧场ids DataType int32 `protobuf:"varint,5,opt,name=data_type,json=dataType,proto3" json:"data_type,omitempty"` // 过滤的数据类型 0 不过滤 1 正常 2 异常 } func (x *SprinkleFeedTimeRequest) Reset() { *x = SprinkleFeedTimeRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SprinkleFeedTimeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SprinkleFeedTimeRequest) ProtoMessage() {} func (x *SprinkleFeedTimeRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SprinkleFeedTimeRequest.ProtoReflect.Descriptor instead. func (*SprinkleFeedTimeRequest) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{23} } func (x *SprinkleFeedTimeRequest) GetFeedFormulaId() int32 { if x != nil { return x.FeedFormulaId } return 0 } func (x *SprinkleFeedTimeRequest) GetStartDate() string { if x != nil { return x.StartDate } return "" } func (x *SprinkleFeedTimeRequest) GetEndDate() string { if x != nil { return x.EndDate } return "" } func (x *SprinkleFeedTimeRequest) GetPastureIds() []int32 { if x != nil { return x.PastureIds } return nil } func (x *SprinkleFeedTimeRequest) GetDataType() int32 { if x != nil { return x.DataType } return 0 } // MixedCategoryTmrName tmr名称和混料类别 type MixedCategoryTmrName struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ApiName string `protobuf:"bytes,1,opt,name=api_name,json=apiName,proto3" json:"api_name,omitempty"` PastureId int32 `protobuf:"varint,2,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` StartTime string `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` EndTime string `protobuf:"bytes,4,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` } func (x *MixedCategoryTmrName) Reset() { *x = MixedCategoryTmrName{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MixedCategoryTmrName) String() string { return protoimpl.X.MessageStringOf(x) } func (*MixedCategoryTmrName) ProtoMessage() {} func (x *MixedCategoryTmrName) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MixedCategoryTmrName.ProtoReflect.Descriptor instead. func (*MixedCategoryTmrName) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{24} } func (x *MixedCategoryTmrName) GetApiName() string { if x != nil { return x.ApiName } return "" } func (x *MixedCategoryTmrName) GetPastureId() int32 { if x != nil { return x.PastureId } return 0 } func (x *MixedCategoryTmrName) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *MixedCategoryTmrName) GetEndTime() string { if x != nil { return x.EndTime } return "" } type Table_TableList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` } func (x *Table_TableList) Reset() { *x = Table_TableList{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_statistic_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Table_TableList) String() string { return protoimpl.X.MessageStringOf(x) } func (*Table_TableList) ProtoMessage() {} func (x *Table_TableList) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_statistic_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Table_TableList.ProtoReflect.Descriptor instead. func (*Table_TableList) Descriptor() ([]byte, []int) { return file_backend_operation_statistic_proto_rawDescGZIP(), []int{20, 0} } func (x *Table_TableList) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *Table_TableList) GetName() string { if x != nil { return x.Name } return "" } var File_backend_operation_statistic_proto protoreflect.FileDescriptor var file_backend_operation_statistic_proto_rawDesc = []byte{ 0x0a, 0x21, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x22, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb1, 0x02, 0x0a, 0x1c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x62, 0x61, 0x72, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x61, 0x72, 0x6e, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf7, 0x01, 0x0a, 0x20, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbb, 0x02, 0x0a, 0x24, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x79, 0x70, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf3, 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa0, 0x03, 0x0a, 0x1b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x65, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x72, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x72, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x1a, 0x46, 0x65, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x69, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x77, 0x73, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc4, 0x04, 0x0a, 0x1c, 0x41, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x41, 0x67, 0x67, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x65, 0x6e, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x65, 0x6e, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x73, 0x64, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6c, 0x77, 0x63, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x68, 0x6c, 0x77, 0x63, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6c, 0x77, 0x63, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x68, 0x6c, 0x77, 0x63, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6c, 0x7a, 0x71, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x68, 0x6c, 0x7a, 0x71, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6c, 0x7a, 0x71, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x68, 0x6c, 0x7a, 0x71, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x6c, 0x7a, 0x71, 0x6c, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x6c, 0x7a, 0x71, 0x6c, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x6c, 0x7a, 0x71, 0x6c, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x6c, 0x7a, 0x71, 0x6c, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x77, 0x63, 0x31, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x77, 0x63, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x77, 0x63, 0x32, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x77, 0x63, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x7a, 0x71, 0x31, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x7a, 0x71, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x7a, 0x71, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x7a, 0x71, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6c, 0x7a, 0x71, 0x6c, 0x31, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6c, 0x7a, 0x71, 0x6c, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6c, 0x7a, 0x71, 0x6c, 0x32, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6c, 0x7a, 0x71, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xe2, 0x04, 0x0a, 0x18, 0x4d, 0x69, 0x78, 0x46, 0x65, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x75, 0x6d, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6a, 0x75, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6c, 0x77, 0x63, 0x31, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x68, 0x6c, 0x77, 0x63, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6c, 0x77, 0x63, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x68, 0x6c, 0x77, 0x63, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6c, 0x7a, 0x71, 0x31, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x68, 0x6c, 0x7a, 0x71, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6c, 0x7a, 0x71, 0x32, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x68, 0x6c, 0x7a, 0x71, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x6c, 0x7a, 0x71, 0x6c, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x6c, 0x7a, 0x71, 0x6c, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x6c, 0x7a, 0x71, 0x6c, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x6c, 0x7a, 0x71, 0x6c, 0x32, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x73, 0x55, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x05, 0x0a, 0x19, 0x53, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x72, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x72, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x75, 0x6d, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6a, 0x75, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x77, 0x63, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x77, 0x63, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x77, 0x63, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x77, 0x63, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x7a, 0x71, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x7a, 0x71, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x7a, 0x71, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x7a, 0x71, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6c, 0x7a, 0x71, 0x6c, 0x31, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6c, 0x7a, 0x71, 0x6c, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6c, 0x7a, 0x71, 0x6c, 0x32, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6c, 0x7a, 0x71, 0x6c, 0x32, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x73, 0x55, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8a, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x22, 0x9e, 0x04, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6d, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6d, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x69, 0x78, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x69, 0x78, 0x46, 0x65, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6c, 0x77, 0x63, 0x31, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x68, 0x6c, 0x77, 0x63, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6c, 0x77, 0x63, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x68, 0x6c, 0x77, 0x63, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6c, 0x7a, 0x71, 0x31, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x68, 0x6c, 0x7a, 0x71, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6c, 0x7a, 0x71, 0x32, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x68, 0x6c, 0x7a, 0x71, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x77, 0x63, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x77, 0x63, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x77, 0x63, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x77, 0x63, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x7a, 0x71, 0x31, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x7a, 0x71, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x7a, 0x71, 0x32, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x7a, 0x71, 0x32, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe0, 0x01, 0x0a, 0x21, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x78, 0x65, 0x64, 0x53, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xaf, 0x01, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x73, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4b, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xab, 0x03, 0x0a, 0x1d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x41, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x67, 0x0a, 0x19, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x16, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x74, 0x6f, 0x70, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x52, 0x61, 0x6e, 0x64, 0x45, 0x6e, 0x64, 0x12, 0x56, 0x0a, 0x12, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x10, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x7f, 0x0a, 0x1e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x41, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x41, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x72, 0x0a, 0x10, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x41, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x63, 0x68, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, 0x52, 0x05, 0x63, 0x68, 0x61, 0x72, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x9f, 0x03, 0x0a, 0x05, 0x43, 0x68, 0x61, 0x72, 0x74, 0x12, 0x62, 0x0a, 0x1b, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x18, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, 0x75, 0x72, 0x61, 0x74, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x60, 0x0a, 0x1a, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x17, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x68, 0x0a, 0x1e, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x1b, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x46, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, 0x75, 0x72, 0x61, 0x74, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x66, 0x0a, 0x1d, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x1a, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x46, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0x7b, 0x0a, 0x05, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x2f, 0x0a, 0x09, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe9, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x79, 0x22, 0x2d, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0xb9, 0x01, 0x0a, 0x17, 0x53, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x46, 0x65, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x14, 0x4d, 0x69, 0x78, 0x65, 0x64, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x54, 0x6d, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x69, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x3b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_backend_operation_statistic_proto_rawDescOnce sync.Once file_backend_operation_statistic_proto_rawDescData = file_backend_operation_statistic_proto_rawDesc ) func file_backend_operation_statistic_proto_rawDescGZIP() []byte { file_backend_operation_statistic_proto_rawDescOnce.Do(func() { file_backend_operation_statistic_proto_rawDescData = protoimpl.X.CompressGZIP(file_backend_operation_statistic_proto_rawDescData) }) return file_backend_operation_statistic_proto_rawDescData } var file_backend_operation_statistic_proto_msgTypes = make([]protoimpl.MessageInfo, 26) var file_backend_operation_statistic_proto_goTypes = []interface{}{ (*SearchFormulaEstimateRequest)(nil), // 0: backend.operation.SearchFormulaEstimateRequest (*SearchInventoryStatisticsRequest)(nil), // 1: backend.operation.SearchInventoryStatisticsRequest (*SearchUserMaterialsStatisticsRequest)(nil), // 2: backend.operation.SearchUserMaterialsStatisticsRequest (*SearchPriceStatisticsRequest)(nil), // 3: backend.operation.SearchPriceStatisticsRequest (*SearchFeedStatisticsRequest)(nil), // 4: backend.operation.SearchFeedStatisticsRequest (*FeedChartStatisticsRequest)(nil), // 5: backend.operation.FeedChartStatisticsRequest (*CowsAnalysisRequest)(nil), // 6: backend.operation.CowsAnalysisRequest (*AccuracyAggStatisticsRequest)(nil), // 7: backend.operation.AccuracyAggStatisticsRequest (*MixFeedStatisticsRequest)(nil), // 8: backend.operation.MixFeedStatisticsRequest (*SprinkleStatisticsRequest)(nil), // 9: backend.operation.SprinkleStatisticsRequest (*GetDataByNameRequest)(nil), // 10: backend.operation.GetDataByNameRequest (*ProcessAnalysisRequest)(nil), // 11: backend.operation.ProcessAnalysisRequest (*ProcessMixedSprinkleDetailRequest)(nil), // 12: backend.operation.ProcessMixedSprinkleDetailRequest (*TrainNumberRequest)(nil), // 13: backend.operation.TrainNumberRequest (*TrainNumberResponse)(nil), // 14: backend.operation.TrainNumberResponse (*TrainNumberData)(nil), // 15: backend.operation.TrainNumberData (*SearchAnalysisAccuracyRequest)(nil), // 16: backend.operation.SearchAnalysisAccuracyRequest (*SearchAnalysisAccuracyResponse)(nil), // 17: backend.operation.SearchAnalysisAccuracyResponse (*AnalysisAccuracy)(nil), // 18: backend.operation.AnalysisAccuracy (*Chart)(nil), // 19: backend.operation.Chart (*Table)(nil), // 20: backend.operation.Table (*CommonValueRatio)(nil), // 21: backend.operation.CommonValueRatio (*ValueRatio)(nil), // 22: backend.operation.ValueRatio (*SprinkleFeedTimeRequest)(nil), // 23: backend.operation.SprinkleFeedTimeRequest (*MixedCategoryTmrName)(nil), // 24: backend.operation.MixedCategoryTmrName (*Table_TableList)(nil), // 25: backend.operation.Table.TableList (*PaginationModel)(nil), // 26: backend.operation.PaginationModel (*FormulaOptionEnum)(nil), // 27: backend.operation.FormulaOptionEnum (CattleCategoryParent_Kind)(0), // 28: backend.operation.CattleCategoryParent.Kind (DashboardTopType_Kind)(0), // 29: backend.operation.DashboardTopType.Kind } var file_backend_operation_statistic_proto_depIdxs = []int32{ 26, // 0: backend.operation.SearchFormulaEstimateRequest.pagination:type_name -> backend.operation.PaginationModel 26, // 1: backend.operation.SearchInventoryStatisticsRequest.pagination:type_name -> backend.operation.PaginationModel 26, // 2: backend.operation.SearchUserMaterialsStatisticsRequest.pagination:type_name -> backend.operation.PaginationModel 26, // 3: backend.operation.SearchPriceStatisticsRequest.pagination:type_name -> backend.operation.PaginationModel 26, // 4: backend.operation.SearchFeedStatisticsRequest.pagination:type_name -> backend.operation.PaginationModel 26, // 5: backend.operation.CowsAnalysisRequest.pagination:type_name -> backend.operation.PaginationModel 26, // 6: backend.operation.MixFeedStatisticsRequest.pagination:type_name -> backend.operation.PaginationModel 26, // 7: backend.operation.SprinkleStatisticsRequest.pagination:type_name -> backend.operation.PaginationModel 26, // 8: backend.operation.ProcessAnalysisRequest.pagination:type_name -> backend.operation.PaginationModel 26, // 9: backend.operation.ProcessMixedSprinkleDetailRequest.pagination:type_name -> backend.operation.PaginationModel 26, // 10: backend.operation.TrainNumberRequest.pagination:type_name -> backend.operation.PaginationModel 15, // 11: backend.operation.TrainNumberResponse.data:type_name -> backend.operation.TrainNumberData 27, // 12: backend.operation.TrainNumberData.list:type_name -> backend.operation.FormulaOptionEnum 28, // 13: backend.operation.SearchAnalysisAccuracyRequest.cattle_parent_category_id:type_name -> backend.operation.CattleCategoryParent.Kind 29, // 14: backend.operation.SearchAnalysisAccuracyRequest.dashboard_top_type:type_name -> backend.operation.DashboardTopType.Kind 18, // 15: backend.operation.SearchAnalysisAccuracyResponse.data:type_name -> backend.operation.AnalysisAccuracy 19, // 16: backend.operation.AnalysisAccuracy.chart:type_name -> backend.operation.Chart 20, // 17: backend.operation.AnalysisAccuracy.table:type_name -> backend.operation.Table 21, // 18: backend.operation.Chart.mixed_fodder_accurate_ratio:type_name -> backend.operation.CommonValueRatio 21, // 19: backend.operation.Chart.mixed_fodder_correct_ratio:type_name -> backend.operation.CommonValueRatio 21, // 20: backend.operation.Chart.sprinkle_fodder_accurate_ratio:type_name -> backend.operation.CommonValueRatio 21, // 21: backend.operation.Chart.sprinkle_fodder_correct_ratio:type_name -> backend.operation.CommonValueRatio 25, // 22: backend.operation.Table.table_list:type_name -> backend.operation.Table.TableList 22, // 23: backend.operation.CommonValueRatio.data_list:type_name -> backend.operation.ValueRatio 24, // [24:24] is the sub-list for method output_type 24, // [24:24] is the sub-list for method input_type 24, // [24:24] is the sub-list for extension type_name 24, // [24:24] is the sub-list for extension extendee 0, // [0:24] is the sub-list for field type_name } func init() { file_backend_operation_statistic_proto_init() } func file_backend_operation_statistic_proto_init() { if File_backend_operation_statistic_proto != nil { return } file_backend_operation_pagination_proto_init() file_backend_operation_enum_proto_init() file_backend_operation_pasture_proto_init() if !protoimpl.UnsafeEnabled { file_backend_operation_statistic_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchFormulaEstimateRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchInventoryStatisticsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchUserMaterialsStatisticsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchPriceStatisticsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchFeedStatisticsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FeedChartStatisticsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CowsAnalysisRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccuracyAggStatisticsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MixFeedStatisticsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SprinkleStatisticsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetDataByNameRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProcessAnalysisRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProcessMixedSprinkleDetailRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrainNumberRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrainNumberResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrainNumberData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchAnalysisAccuracyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchAnalysisAccuracyResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnalysisAccuracy); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Chart); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Table); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommonValueRatio); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValueRatio); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SprinkleFeedTimeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MixedCategoryTmrName); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_statistic_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Table_TableList); 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_backend_operation_statistic_proto_rawDesc, NumEnums: 0, NumMessages: 26, NumExtensions: 0, NumServices: 0, }, GoTypes: file_backend_operation_statistic_proto_goTypes, DependencyIndexes: file_backend_operation_statistic_proto_depIdxs, MessageInfos: file_backend_operation_statistic_proto_msgTypes, }.Build() File_backend_operation_statistic_proto = out.File file_backend_operation_statistic_proto_rawDesc = nil file_backend_operation_statistic_proto_goTypes = nil file_backend_operation_statistic_proto_depIdxs = nil }