// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 // protoc v3.21.9 // source: backend/operation/feed_formula.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) ) type AddFeedFormulaRequest 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"` // 名称 EncodeNumber string `protobuf:"bytes,3,opt,name=encode_number,json=encodeNumber,proto3" json:"encode_number,omitempty"` // 编码 Colour string `protobuf:"bytes,4,opt,name=colour,proto3" json:"colour,omitempty"` // 颜色 CattleCategoryId CattleCategoryParent_Kind `protobuf:"varint,5,opt,name=cattle_category_id,json=cattleCategoryId,proto3,enum=backend.operation.CattleCategoryParent_Kind" json:"cattle_category_id,omitempty"` // 畜牧类别id CattleCategoryName string `protobuf:"bytes,6,opt,name=cattle_category_name,json=cattleCategoryName,proto3" json:"cattle_category_name,omitempty"` // 畜牧类型名称 FormulaTypeId int32 `protobuf:"varint,7,opt,name=formula_type_id,json=formulaTypeId,proto3" json:"formula_type_id,omitempty"` // 配方类型id FormulaTypeName string `protobuf:"bytes,8,opt,name=formula_type_name,json=formulaTypeName,proto3" json:"formula_type_name,omitempty"` // 配方类型名称 DataSourceId DataSource_Kind `protobuf:"varint,9,opt,name=data_source_id,json=dataSourceId,proto3,enum=backend.operation.DataSource_Kind" json:"data_source_id,omitempty"` // 数据来源 DataSourceName string `protobuf:"bytes,10,opt,name=data_source_name,json=dataSourceName,proto3" json:"data_source_name,omitempty"` // 数据来源 Remarks string `protobuf:"bytes,11,opt,name=remarks,proto3" json:"remarks,omitempty"` // 备注 Version int32 `protobuf:"varint,12,opt,name=version,proto3" json:"version,omitempty"` // 版本号 IsShow IsShow_Kind `protobuf:"varint,13,opt,name=is_show,json=isShow,proto3,enum=backend.operation.IsShow_Kind" json:"is_show,omitempty"` // 是否启用 IsModify IsShow_Kind `protobuf:"varint,14,opt,name=is_modify,json=isModify,proto3,enum=backend.operation.IsShow_Kind" json:"is_modify,omitempty"` // 是否可修改 CreatedAt int32 `protobuf:"varint,15,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // 创建时间 CreatedAtFormat string `protobuf:"bytes,16,opt,name=created_at_format,json=createdAtFormat,proto3" json:"created_at_format,omitempty"` // 创建时间格式化 PastureName string `protobuf:"bytes,17,opt,name=pasture_name,json=pastureName,proto3" json:"pasture_name,omitempty"` // 牧场名称 } func (x *AddFeedFormulaRequest) Reset() { *x = AddFeedFormulaRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_feed_formula_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AddFeedFormulaRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*AddFeedFormulaRequest) ProtoMessage() {} func (x *AddFeedFormulaRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_feed_formula_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 AddFeedFormulaRequest.ProtoReflect.Descriptor instead. func (*AddFeedFormulaRequest) Descriptor() ([]byte, []int) { return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{0} } func (x *AddFeedFormulaRequest) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *AddFeedFormulaRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *AddFeedFormulaRequest) GetEncodeNumber() string { if x != nil { return x.EncodeNumber } return "" } func (x *AddFeedFormulaRequest) GetColour() string { if x != nil { return x.Colour } return "" } func (x *AddFeedFormulaRequest) GetCattleCategoryId() CattleCategoryParent_Kind { if x != nil { return x.CattleCategoryId } return CattleCategoryParent_INVALID } func (x *AddFeedFormulaRequest) GetCattleCategoryName() string { if x != nil { return x.CattleCategoryName } return "" } func (x *AddFeedFormulaRequest) GetFormulaTypeId() int32 { if x != nil { return x.FormulaTypeId } return 0 } func (x *AddFeedFormulaRequest) GetFormulaTypeName() string { if x != nil { return x.FormulaTypeName } return "" } func (x *AddFeedFormulaRequest) GetDataSourceId() DataSource_Kind { if x != nil { return x.DataSourceId } return DataSource_INVALID } func (x *AddFeedFormulaRequest) GetDataSourceName() string { if x != nil { return x.DataSourceName } return "" } func (x *AddFeedFormulaRequest) GetRemarks() string { if x != nil { return x.Remarks } return "" } func (x *AddFeedFormulaRequest) GetVersion() int32 { if x != nil { return x.Version } return 0 } func (x *AddFeedFormulaRequest) GetIsShow() IsShow_Kind { if x != nil { return x.IsShow } return IsShow_INVALID } func (x *AddFeedFormulaRequest) GetIsModify() IsShow_Kind { if x != nil { return x.IsModify } return IsShow_INVALID } func (x *AddFeedFormulaRequest) GetCreatedAt() int32 { if x != nil { return x.CreatedAt } return 0 } func (x *AddFeedFormulaRequest) GetCreatedAtFormat() string { if x != nil { return x.CreatedAtFormat } return "" } func (x *AddFeedFormulaRequest) GetPastureName() string { if x != nil { return x.PastureName } return "" } type SearchFeedFormulaRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CattleCategoryId int32 `protobuf:"varint,1,opt,name=cattle_category_id,json=cattleCategoryId,proto3" json:"cattle_category_id,omitempty"` // 分类id FormulaTypeId int32 `protobuf:"varint,2,opt,name=formula_type_id,json=formulaTypeId,proto3" json:"formula_type_id,omitempty"` // 配方类型id DataSource int32 `protobuf:"varint,3,opt,name=data_source,json=dataSource,proto3" json:"data_source,omitempty"` // 饲料来源 IsShow IsShow_Kind `protobuf:"varint,4,opt,name=is_show,json=isShow,proto3,enum=backend.operation.IsShow_Kind" json:"is_show,omitempty"` // 是否启用 Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` // 配方名称 Remarks string `protobuf:"bytes,6,opt,name=remarks,proto3" json:"remarks,omitempty"` // 备注 Pagination *PaginationModel `protobuf:"bytes,7,opt,name=pagination,proto3" json:"pagination,omitempty"` // 分页 } func (x *SearchFeedFormulaRequest) Reset() { *x = SearchFeedFormulaRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_feed_formula_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchFeedFormulaRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchFeedFormulaRequest) ProtoMessage() {} func (x *SearchFeedFormulaRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_feed_formula_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 SearchFeedFormulaRequest.ProtoReflect.Descriptor instead. func (*SearchFeedFormulaRequest) Descriptor() ([]byte, []int) { return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{1} } func (x *SearchFeedFormulaRequest) GetCattleCategoryId() int32 { if x != nil { return x.CattleCategoryId } return 0 } func (x *SearchFeedFormulaRequest) GetFormulaTypeId() int32 { if x != nil { return x.FormulaTypeId } return 0 } func (x *SearchFeedFormulaRequest) GetDataSource() int32 { if x != nil { return x.DataSource } return 0 } func (x *SearchFeedFormulaRequest) GetIsShow() IsShow_Kind { if x != nil { return x.IsShow } return IsShow_INVALID } func (x *SearchFeedFormulaRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *SearchFeedFormulaRequest) GetRemarks() string { if x != nil { return x.Remarks } return "" } func (x *SearchFeedFormulaRequest) GetPagination() *PaginationModel { if x != nil { return x.Pagination } return nil } type SearchFeedFormulaListResponse 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 *SearchFeedFormulaListData `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *SearchFeedFormulaListResponse) Reset() { *x = SearchFeedFormulaListResponse{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_feed_formula_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchFeedFormulaListResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchFeedFormulaListResponse) ProtoMessage() {} func (x *SearchFeedFormulaListResponse) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_feed_formula_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 SearchFeedFormulaListResponse.ProtoReflect.Descriptor instead. func (*SearchFeedFormulaListResponse) Descriptor() ([]byte, []int) { return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{2} } func (x *SearchFeedFormulaListResponse) GetCode() int32 { if x != nil { return x.Code } return 0 } func (x *SearchFeedFormulaListResponse) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *SearchFeedFormulaListResponse) GetData() *SearchFeedFormulaListData { if x != nil { return x.Data } return nil } type SearchFeedFormulaListData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` Total int32 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"` List []*AddFeedFormulaRequest `protobuf:"bytes,4,rep,name=list,proto3" json:"list,omitempty"` } func (x *SearchFeedFormulaListData) Reset() { *x = SearchFeedFormulaListData{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_feed_formula_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchFeedFormulaListData) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchFeedFormulaListData) ProtoMessage() {} func (x *SearchFeedFormulaListData) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_feed_formula_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 SearchFeedFormulaListData.ProtoReflect.Descriptor instead. func (*SearchFeedFormulaListData) Descriptor() ([]byte, []int) { return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{3} } func (x *SearchFeedFormulaListData) GetPage() int32 { if x != nil { return x.Page } return 0 } func (x *SearchFeedFormulaListData) GetPageSize() int32 { if x != nil { return x.PageSize } return 0 } func (x *SearchFeedFormulaListData) GetTotal() int32 { if x != nil { return x.Total } return 0 } func (x *SearchFeedFormulaListData) GetList() []*AddFeedFormulaRequest { if x != nil { return x.List } return nil } // 是否启用 type IsShowModifyFeedFormula 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"` IsShow IsShow_Kind `protobuf:"varint,2,opt,name=is_show,json=isShow,proto3,enum=backend.operation.IsShow_Kind" json:"is_show,omitempty"` EditType int32 `protobuf:"varint,3,opt,name=edit_type,json=editType,proto3" json:"edit_type,omitempty"` // 1 更新是否启用 2 更新 modify } func (x *IsShowModifyFeedFormula) Reset() { *x = IsShowModifyFeedFormula{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_feed_formula_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *IsShowModifyFeedFormula) String() string { return protoimpl.X.MessageStringOf(x) } func (*IsShowModifyFeedFormula) ProtoMessage() {} func (x *IsShowModifyFeedFormula) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_feed_formula_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 IsShowModifyFeedFormula.ProtoReflect.Descriptor instead. func (*IsShowModifyFeedFormula) Descriptor() ([]byte, []int) { return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{4} } func (x *IsShowModifyFeedFormula) GetFeedFormulaId() int32 { if x != nil { return x.FeedFormulaId } return 0 } func (x *IsShowModifyFeedFormula) GetIsShow() IsShow_Kind { if x != nil { return x.IsShow } return IsShow_INVALID } func (x *IsShowModifyFeedFormula) GetEditType() int32 { if x != nil { return x.EditType } return 0 } // 配方编码 type UniqueID 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 *UniqueID_UniqueData `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *UniqueID) Reset() { *x = UniqueID{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_feed_formula_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UniqueID) String() string { return protoimpl.X.MessageStringOf(x) } func (*UniqueID) ProtoMessage() {} func (x *UniqueID) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_feed_formula_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 UniqueID.ProtoReflect.Descriptor instead. func (*UniqueID) Descriptor() ([]byte, []int) { return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{5} } func (x *UniqueID) GetCode() int32 { if x != nil { return x.Code } return 0 } func (x *UniqueID) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *UniqueID) GetData() *UniqueID_UniqueData { if x != nil { return x.Data } return nil } // DistributeFeedFormulaRequest 饲料配方下发 type DistributeFeedFormulaRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PastureIds []int32 `protobuf:"varint,1,rep,packed,name=pasture_ids,json=pastureIds,proto3" json:"pasture_ids,omitempty"` // 牧场ids集合 FeedFormulaIds []int32 `protobuf:"varint,2,rep,packed,name=feed_formula_ids,json=feedFormulaIds,proto3" json:"feed_formula_ids,omitempty"` // 配方ids集合 } func (x *DistributeFeedFormulaRequest) Reset() { *x = DistributeFeedFormulaRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_feed_formula_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DistributeFeedFormulaRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DistributeFeedFormulaRequest) ProtoMessage() {} func (x *DistributeFeedFormulaRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_feed_formula_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 DistributeFeedFormulaRequest.ProtoReflect.Descriptor instead. func (*DistributeFeedFormulaRequest) Descriptor() ([]byte, []int) { return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{6} } func (x *DistributeFeedFormulaRequest) GetPastureIds() []int32 { if x != nil { return x.PastureIds } return nil } func (x *DistributeFeedFormulaRequest) GetFeedFormulaIds() []int32 { if x != nil { return x.FeedFormulaIds } return nil } // 配方使用概况 type FeedFormulaUsageRequest 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 StartTime string `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // 开始时间 EndTime string `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // 结束时间 PastureId int32 `protobuf:"varint,4,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` // 牧场id } func (x *FeedFormulaUsageRequest) Reset() { *x = FeedFormulaUsageRequest{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_feed_formula_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FeedFormulaUsageRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FeedFormulaUsageRequest) ProtoMessage() {} func (x *FeedFormulaUsageRequest) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_feed_formula_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 FeedFormulaUsageRequest.ProtoReflect.Descriptor instead. func (*FeedFormulaUsageRequest) Descriptor() ([]byte, []int) { return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{7} } func (x *FeedFormulaUsageRequest) GetFeedFormulaId() int32 { if x != nil { return x.FeedFormulaId } return 0 } func (x *FeedFormulaUsageRequest) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *FeedFormulaUsageRequest) GetEndTime() string { if x != nil { return x.EndTime } return "" } func (x *FeedFormulaUsageRequest) GetPastureId() int32 { if x != nil { return x.PastureId } return 0 } // 配方使用概况 type FeedFormulaUsageResponse 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 []*FeedFormulaUsageList `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } func (x *FeedFormulaUsageResponse) Reset() { *x = FeedFormulaUsageResponse{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_feed_formula_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FeedFormulaUsageResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FeedFormulaUsageResponse) ProtoMessage() {} func (x *FeedFormulaUsageResponse) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_feed_formula_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 FeedFormulaUsageResponse.ProtoReflect.Descriptor instead. func (*FeedFormulaUsageResponse) Descriptor() ([]byte, []int) { return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{8} } func (x *FeedFormulaUsageResponse) GetCode() int32 { if x != nil { return x.Code } return 0 } func (x *FeedFormulaUsageResponse) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *FeedFormulaUsageResponse) GetData() []*FeedFormulaUsageList { if x != nil { return x.Data } return nil } // 配方使用概况 type FeedFormulaUsageList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PastureId int32 `protobuf:"varint,1,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"` // 牧场id PastureName string `protobuf:"bytes,2,opt,name=pasture_name,json=pastureName,proto3" json:"pasture_name,omitempty"` // 牧场名称 MixedFodderAccurateRatio string `protobuf:"bytes,3,opt,name=mixed_fodder_accurate_ratio,json=mixedFodderAccurateRatio,proto3" json:"mixed_fodder_accurate_ratio,omitempty"` // 混料准确率 MixedFodderCorrectRatio string `protobuf:"bytes,4,opt,name=mixed_fodder_correct_ratio,json=mixedFodderCorrectRatio,proto3" json:"mixed_fodder_correct_ratio,omitempty"` // 混料正确率 SprinkleFodderAccurateRatio string `protobuf:"bytes,5,opt,name=sprinkle_fodder_accurate_ratio,json=sprinkleFodderAccurateRatio,proto3" json:"sprinkle_fodder_accurate_ratio,omitempty"` // 撒料准确率 SprinkleFodderCorrectRatio string `protobuf:"bytes,6,opt,name=sprinkle_fodder_correct_ratio,json=sprinkleFodderCorrectRatio,proto3" json:"sprinkle_fodder_correct_ratio,omitempty"` // 撒料正确率 AddFeedTime string `protobuf:"bytes,7,opt,name=add_feed_time,json=addFeedTime,proto3" json:"add_feed_time,omitempty"` // 加料时间 SprinkleTime string `protobuf:"bytes,8,opt,name=sprinkle_time,json=sprinkleTime,proto3" json:"sprinkle_time,omitempty"` // 撒料时间 StirTime string `protobuf:"bytes,9,opt,name=stir_time,json=stirTime,proto3" json:"stir_time,omitempty"` // 搅拌延迟时间 LastEditTime string `protobuf:"bytes,10,opt,name=last_edit_time,json=lastEditTime,proto3" json:"last_edit_time,omitempty"` // 最近一次修改配方时间 } func (x *FeedFormulaUsageList) Reset() { *x = FeedFormulaUsageList{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_feed_formula_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FeedFormulaUsageList) String() string { return protoimpl.X.MessageStringOf(x) } func (*FeedFormulaUsageList) ProtoMessage() {} func (x *FeedFormulaUsageList) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_feed_formula_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 FeedFormulaUsageList.ProtoReflect.Descriptor instead. func (*FeedFormulaUsageList) Descriptor() ([]byte, []int) { return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{9} } func (x *FeedFormulaUsageList) GetPastureId() int32 { if x != nil { return x.PastureId } return 0 } func (x *FeedFormulaUsageList) GetPastureName() string { if x != nil { return x.PastureName } return "" } func (x *FeedFormulaUsageList) GetMixedFodderAccurateRatio() string { if x != nil { return x.MixedFodderAccurateRatio } return "" } func (x *FeedFormulaUsageList) GetMixedFodderCorrectRatio() string { if x != nil { return x.MixedFodderCorrectRatio } return "" } func (x *FeedFormulaUsageList) GetSprinkleFodderAccurateRatio() string { if x != nil { return x.SprinkleFodderAccurateRatio } return "" } func (x *FeedFormulaUsageList) GetSprinkleFodderCorrectRatio() string { if x != nil { return x.SprinkleFodderCorrectRatio } return "" } func (x *FeedFormulaUsageList) GetAddFeedTime() string { if x != nil { return x.AddFeedTime } return "" } func (x *FeedFormulaUsageList) GetSprinkleTime() string { if x != nil { return x.SprinkleTime } return "" } func (x *FeedFormulaUsageList) GetStirTime() string { if x != nil { return x.StirTime } return "" } func (x *FeedFormulaUsageList) GetLastEditTime() string { if x != nil { return x.LastEditTime } return "" } type PastureFeedFormulaUsageResponse 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 *PastureData `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *PastureFeedFormulaUsageResponse) Reset() { *x = PastureFeedFormulaUsageResponse{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_feed_formula_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PastureFeedFormulaUsageResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*PastureFeedFormulaUsageResponse) ProtoMessage() {} func (x *PastureFeedFormulaUsageResponse) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_feed_formula_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 PastureFeedFormulaUsageResponse.ProtoReflect.Descriptor instead. func (*PastureFeedFormulaUsageResponse) Descriptor() ([]byte, []int) { return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{10} } func (x *PastureFeedFormulaUsageResponse) GetCode() int32 { if x != nil { return x.Code } return 0 } func (x *PastureFeedFormulaUsageResponse) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *PastureFeedFormulaUsageResponse) GetData() *PastureData { if x != nil { return x.Data } return nil } type PastureData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MixedFodderAccurateRatio string `protobuf:"bytes,3,opt,name=mixed_fodder_accurate_ratio,json=mixedFodderAccurateRatio,proto3" json:"mixed_fodder_accurate_ratio,omitempty"` // 混料准确率 MixedFodderCorrectRatio string `protobuf:"bytes,4,opt,name=mixed_fodder_correct_ratio,json=mixedFodderCorrectRatio,proto3" json:"mixed_fodder_correct_ratio,omitempty"` // 混料正确率 SprinkleFodderAccurateRatio string `protobuf:"bytes,5,opt,name=sprinkle_fodder_accurate_ratio,json=sprinkleFodderAccurateRatio,proto3" json:"sprinkle_fodder_accurate_ratio,omitempty"` // 撒料准确率 SprinkleFodderCorrectRatio string `protobuf:"bytes,6,opt,name=sprinkle_fodder_correct_ratio,json=sprinkleFodderCorrectRatio,proto3" json:"sprinkle_fodder_correct_ratio,omitempty"` // 撒料正确率 AddFeedTime string `protobuf:"bytes,7,opt,name=add_feed_time,json=addFeedTime,proto3" json:"add_feed_time,omitempty"` // 加料时间 SprinkleTime string `protobuf:"bytes,8,opt,name=sprinkle_time,json=sprinkleTime,proto3" json:"sprinkle_time,omitempty"` // 撒料时间 StirTime string `protobuf:"bytes,9,opt,name=stir_time,json=stirTime,proto3" json:"stir_time,omitempty"` // 搅拌延迟时间 LastEditTime string `protobuf:"bytes,10,opt,name=last_edit_time,json=lastEditTime,proto3" json:"last_edit_time,omitempty"` // 最近一次修改配方时间 } func (x *PastureData) Reset() { *x = PastureData{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_feed_formula_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PastureData) String() string { return protoimpl.X.MessageStringOf(x) } func (*PastureData) ProtoMessage() {} func (x *PastureData) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_feed_formula_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 PastureData.ProtoReflect.Descriptor instead. func (*PastureData) Descriptor() ([]byte, []int) { return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{11} } func (x *PastureData) GetMixedFodderAccurateRatio() string { if x != nil { return x.MixedFodderAccurateRatio } return "" } func (x *PastureData) GetMixedFodderCorrectRatio() string { if x != nil { return x.MixedFodderCorrectRatio } return "" } func (x *PastureData) GetSprinkleFodderAccurateRatio() string { if x != nil { return x.SprinkleFodderAccurateRatio } return "" } func (x *PastureData) GetSprinkleFodderCorrectRatio() string { if x != nil { return x.SprinkleFodderCorrectRatio } return "" } func (x *PastureData) GetAddFeedTime() string { if x != nil { return x.AddFeedTime } return "" } func (x *PastureData) GetSprinkleTime() string { if x != nil { return x.SprinkleTime } return "" } func (x *PastureData) GetStirTime() string { if x != nil { return x.StirTime } return "" } func (x *PastureData) GetLastEditTime() string { if x != nil { return x.LastEditTime } return "" } type UniqueID_UniqueData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields EncodeNumber string `protobuf:"bytes,1,opt,name=encode_number,json=encodeNumber,proto3" json:"encode_number,omitempty"` } func (x *UniqueID_UniqueData) Reset() { *x = UniqueID_UniqueData{} if protoimpl.UnsafeEnabled { mi := &file_backend_operation_feed_formula_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UniqueID_UniqueData) String() string { return protoimpl.X.MessageStringOf(x) } func (*UniqueID_UniqueData) ProtoMessage() {} func (x *UniqueID_UniqueData) ProtoReflect() protoreflect.Message { mi := &file_backend_operation_feed_formula_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 UniqueID_UniqueData.ProtoReflect.Descriptor instead. func (*UniqueID_UniqueData) Descriptor() ([]byte, []int) { return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{5, 0} } func (x *UniqueID_UniqueData) GetEncodeNumber() string { if x != nil { return x.EncodeNumber } return "" } var File_backend_operation_feed_formula_proto protoreflect.FileDescriptor var file_backend_operation_feed_formula_proto_rawDesc = []byte{ 0x0a, 0x24, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 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, 0x22, 0xe6, 0x05, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 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, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x12, 0x5a, 0x0a, 0x12, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x05, 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, 0x10, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 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, 0x26, 0x0a, 0x0f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x06, 0x69, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x3b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x08, 0x69, 0x73, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xbc, 0x02, 0x0a, 0x18, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x06, 0x69, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 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, 0x87, 0x01, 0x0a, 0x1d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4c, 0x69, 0x73, 0x74, 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, 0x40, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa0, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x3c, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x17, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 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, 0x37, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x06, 0x69, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x08, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x44, 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, 0x3a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x44, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x31, 0x0a, 0x0a, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x69, 0x0a, 0x1c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x66, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x49, 0x64, 0x73, 0x22, 0x9a, 0x01, 0x0a, 0x17, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x55, 0x73, 0x61, 0x67, 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, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 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, 0x03, 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, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x22, 0x7d, 0x0a, 0x18, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 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, 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe8, 0x03, 0x0a, 0x14, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 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, 0x03, 0x20, 0x01, 0x28, 0x09, 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, 0x3b, 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, 0x04, 0x20, 0x01, 0x28, 0x09, 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, 0x43, 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, 0x05, 0x20, 0x01, 0x28, 0x09, 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, 0x41, 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, 0x06, 0x20, 0x01, 0x28, 0x09, 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, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x46, 0x65, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x69, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x69, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x64, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x7b, 0x0a, 0x1f, 0x50, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 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, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x9d, 0x03, 0x0a, 0x0b, 0x50, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3d, 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, 0x03, 0x20, 0x01, 0x28, 0x09, 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, 0x3b, 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, 0x04, 0x20, 0x01, 0x28, 0x09, 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, 0x43, 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, 0x05, 0x20, 0x01, 0x28, 0x09, 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, 0x41, 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, 0x06, 0x20, 0x01, 0x28, 0x09, 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, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x46, 0x65, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x69, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x69, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x64, 0x69, 0x74, 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_feed_formula_proto_rawDescOnce sync.Once file_backend_operation_feed_formula_proto_rawDescData = file_backend_operation_feed_formula_proto_rawDesc ) func file_backend_operation_feed_formula_proto_rawDescGZIP() []byte { file_backend_operation_feed_formula_proto_rawDescOnce.Do(func() { file_backend_operation_feed_formula_proto_rawDescData = protoimpl.X.CompressGZIP(file_backend_operation_feed_formula_proto_rawDescData) }) return file_backend_operation_feed_formula_proto_rawDescData } var file_backend_operation_feed_formula_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_backend_operation_feed_formula_proto_goTypes = []interface{}{ (*AddFeedFormulaRequest)(nil), // 0: backend.operation.AddFeedFormulaRequest (*SearchFeedFormulaRequest)(nil), // 1: backend.operation.SearchFeedFormulaRequest (*SearchFeedFormulaListResponse)(nil), // 2: backend.operation.SearchFeedFormulaListResponse (*SearchFeedFormulaListData)(nil), // 3: backend.operation.SearchFeedFormulaListData (*IsShowModifyFeedFormula)(nil), // 4: backend.operation.IsShowModifyFeedFormula (*UniqueID)(nil), // 5: backend.operation.UniqueID (*DistributeFeedFormulaRequest)(nil), // 6: backend.operation.DistributeFeedFormulaRequest (*FeedFormulaUsageRequest)(nil), // 7: backend.operation.FeedFormulaUsageRequest (*FeedFormulaUsageResponse)(nil), // 8: backend.operation.FeedFormulaUsageResponse (*FeedFormulaUsageList)(nil), // 9: backend.operation.FeedFormulaUsageList (*PastureFeedFormulaUsageResponse)(nil), // 10: backend.operation.PastureFeedFormulaUsageResponse (*PastureData)(nil), // 11: backend.operation.PastureData (*UniqueID_UniqueData)(nil), // 12: backend.operation.UniqueID.UniqueData (CattleCategoryParent_Kind)(0), // 13: backend.operation.CattleCategoryParent.Kind (DataSource_Kind)(0), // 14: backend.operation.DataSource.Kind (IsShow_Kind)(0), // 15: backend.operation.IsShow.Kind (*PaginationModel)(nil), // 16: backend.operation.PaginationModel } var file_backend_operation_feed_formula_proto_depIdxs = []int32{ 13, // 0: backend.operation.AddFeedFormulaRequest.cattle_category_id:type_name -> backend.operation.CattleCategoryParent.Kind 14, // 1: backend.operation.AddFeedFormulaRequest.data_source_id:type_name -> backend.operation.DataSource.Kind 15, // 2: backend.operation.AddFeedFormulaRequest.is_show:type_name -> backend.operation.IsShow.Kind 15, // 3: backend.operation.AddFeedFormulaRequest.is_modify:type_name -> backend.operation.IsShow.Kind 15, // 4: backend.operation.SearchFeedFormulaRequest.is_show:type_name -> backend.operation.IsShow.Kind 16, // 5: backend.operation.SearchFeedFormulaRequest.pagination:type_name -> backend.operation.PaginationModel 3, // 6: backend.operation.SearchFeedFormulaListResponse.data:type_name -> backend.operation.SearchFeedFormulaListData 0, // 7: backend.operation.SearchFeedFormulaListData.list:type_name -> backend.operation.AddFeedFormulaRequest 15, // 8: backend.operation.IsShowModifyFeedFormula.is_show:type_name -> backend.operation.IsShow.Kind 12, // 9: backend.operation.UniqueID.data:type_name -> backend.operation.UniqueID.UniqueData 9, // 10: backend.operation.FeedFormulaUsageResponse.data:type_name -> backend.operation.FeedFormulaUsageList 11, // 11: backend.operation.PastureFeedFormulaUsageResponse.data:type_name -> backend.operation.PastureData 12, // [12:12] is the sub-list for method output_type 12, // [12:12] is the sub-list for method input_type 12, // [12:12] is the sub-list for extension type_name 12, // [12:12] is the sub-list for extension extendee 0, // [0:12] is the sub-list for field type_name } func init() { file_backend_operation_feed_formula_proto_init() } func file_backend_operation_feed_formula_proto_init() { if File_backend_operation_feed_formula_proto != nil { return } file_backend_operation_pagination_proto_init() file_backend_operation_enum_proto_init() if !protoimpl.UnsafeEnabled { file_backend_operation_feed_formula_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddFeedFormulaRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_feed_formula_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchFeedFormulaRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_feed_formula_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchFeedFormulaListResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_feed_formula_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchFeedFormulaListData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_feed_formula_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsShowModifyFeedFormula); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_feed_formula_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UniqueID); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_feed_formula_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DistributeFeedFormulaRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_feed_formula_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FeedFormulaUsageRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_feed_formula_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FeedFormulaUsageResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_feed_formula_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FeedFormulaUsageList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_feed_formula_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PastureFeedFormulaUsageResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_feed_formula_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PastureData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_backend_operation_feed_formula_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UniqueID_UniqueData); 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_feed_formula_proto_rawDesc, NumEnums: 0, NumMessages: 13, NumExtensions: 0, NumServices: 0, }, GoTypes: file_backend_operation_feed_formula_proto_goTypes, DependencyIndexes: file_backend_operation_feed_formula_proto_depIdxs, MessageInfos: file_backend_operation_feed_formula_proto_msgTypes, }.Build() File_backend_operation_feed_formula_proto = out.File file_backend_operation_feed_formula_proto_rawDesc = nil file_backend_operation_feed_formula_proto_goTypes = nil file_backend_operation_feed_formula_proto_depIdxs = nil }