// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.33.0 // protoc v7.35.1 // source: rpc/production/production.proto package pb 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 IdResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } func (x *IdResp) Reset() { *x = IdResp{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *IdResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*IdResp) ProtoMessage() {} func (x *IdResp) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 IdResp.ProtoReflect.Descriptor instead. func (*IdResp) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{0} } func (x *IdResp) GetId() string { if x != nil { return x.Id } return "" } type Empty struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Empty) Reset() { *x = Empty{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Empty) String() string { return protoimpl.X.MessageStringOf(x) } func (*Empty) ProtoMessage() {} func (x *Empty) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 Empty.ProtoReflect.Descriptor instead. func (*Empty) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{1} } type ProductionPlanInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlanId string `protobuf:"bytes,1,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` TenantId string `protobuf:"bytes,2,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"` PlanCode string `protobuf:"bytes,3,opt,name=plan_code,json=planCode,proto3" json:"plan_code,omitempty"` ProductId string `protobuf:"bytes,4,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"` ProductName string `protobuf:"bytes,5,opt,name=product_name,json=productName,proto3" json:"product_name,omitempty"` Color string `protobuf:"bytes,6,opt,name=color,proto3" json:"color,omitempty"` FabricCode string `protobuf:"bytes,7,opt,name=fabric_code,json=fabricCode,proto3" json:"fabric_code,omitempty"` ColorCode string `protobuf:"bytes,8,opt,name=color_code,json=colorCode,proto3" json:"color_code,omitempty"` TargetQuantity string `protobuf:"bytes,9,opt,name=target_quantity,json=targetQuantity,proto3" json:"target_quantity,omitempty"` CompletedQuantity string `protobuf:"bytes,10,opt,name=completed_quantity,json=completedQuantity,proto3" json:"completed_quantity,omitempty"` YarnUsagePerMeter string `protobuf:"bytes,11,opt,name=yarn_usage_per_meter,json=yarnUsagePerMeter,proto3" json:"yarn_usage_per_meter,omitempty"` ProductionPrice string `protobuf:"bytes,12,opt,name=production_price,json=productionPrice,proto3" json:"production_price,omitempty"` SupplierId string `protobuf:"bytes,13,opt,name=supplier_id,json=supplierId,proto3" json:"supplier_id,omitempty"` Status int64 `protobuf:"varint,14,opt,name=status,proto3" json:"status,omitempty"` Remark string `protobuf:"bytes,15,opt,name=remark,proto3" json:"remark,omitempty"` StartTime string `protobuf:"bytes,16,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` Creator string `protobuf:"bytes,17,opt,name=creator,proto3" json:"creator,omitempty"` Operator string `protobuf:"bytes,18,opt,name=operator,proto3" json:"operator,omitempty"` CreatedAt string `protobuf:"bytes,19,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` UpdatedAt string `protobuf:"bytes,20,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` YarnRatios []*YarnRatioInfo `protobuf:"bytes,21,rep,name=yarn_ratios,json=yarnRatios,proto3" json:"yarn_ratios,omitempty"` ProcessSteps []*ProcessStepInfo `protobuf:"bytes,22,rep,name=process_steps,json=processSteps,proto3" json:"process_steps,omitempty"` InboundRecords []*InboundRecordInfo `protobuf:"bytes,23,rep,name=inbound_records,json=inboundRecords,proto3" json:"inbound_records,omitempty"` } func (x *ProductionPlanInfo) Reset() { *x = ProductionPlanInfo{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProductionPlanInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProductionPlanInfo) ProtoMessage() {} func (x *ProductionPlanInfo) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 ProductionPlanInfo.ProtoReflect.Descriptor instead. func (*ProductionPlanInfo) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{2} } func (x *ProductionPlanInfo) GetPlanId() string { if x != nil { return x.PlanId } return "" } func (x *ProductionPlanInfo) GetTenantId() string { if x != nil { return x.TenantId } return "" } func (x *ProductionPlanInfo) GetPlanCode() string { if x != nil { return x.PlanCode } return "" } func (x *ProductionPlanInfo) GetProductId() string { if x != nil { return x.ProductId } return "" } func (x *ProductionPlanInfo) GetProductName() string { if x != nil { return x.ProductName } return "" } func (x *ProductionPlanInfo) GetColor() string { if x != nil { return x.Color } return "" } func (x *ProductionPlanInfo) GetFabricCode() string { if x != nil { return x.FabricCode } return "" } func (x *ProductionPlanInfo) GetColorCode() string { if x != nil { return x.ColorCode } return "" } func (x *ProductionPlanInfo) GetTargetQuantity() string { if x != nil { return x.TargetQuantity } return "" } func (x *ProductionPlanInfo) GetCompletedQuantity() string { if x != nil { return x.CompletedQuantity } return "" } func (x *ProductionPlanInfo) GetYarnUsagePerMeter() string { if x != nil { return x.YarnUsagePerMeter } return "" } func (x *ProductionPlanInfo) GetProductionPrice() string { if x != nil { return x.ProductionPrice } return "" } func (x *ProductionPlanInfo) GetSupplierId() string { if x != nil { return x.SupplierId } return "" } func (x *ProductionPlanInfo) GetStatus() int64 { if x != nil { return x.Status } return 0 } func (x *ProductionPlanInfo) GetRemark() string { if x != nil { return x.Remark } return "" } func (x *ProductionPlanInfo) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *ProductionPlanInfo) GetCreator() string { if x != nil { return x.Creator } return "" } func (x *ProductionPlanInfo) GetOperator() string { if x != nil { return x.Operator } return "" } func (x *ProductionPlanInfo) GetCreatedAt() string { if x != nil { return x.CreatedAt } return "" } func (x *ProductionPlanInfo) GetUpdatedAt() string { if x != nil { return x.UpdatedAt } return "" } func (x *ProductionPlanInfo) GetYarnRatios() []*YarnRatioInfo { if x != nil { return x.YarnRatios } return nil } func (x *ProductionPlanInfo) GetProcessSteps() []*ProcessStepInfo { if x != nil { return x.ProcessSteps } return nil } func (x *ProductionPlanInfo) GetInboundRecords() []*InboundRecordInfo { if x != nil { return x.InboundRecords } return nil } type CreateProductionPlanReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TenantId string `protobuf:"bytes,1,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"` ProductId string `protobuf:"bytes,2,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"` ProductName string `protobuf:"bytes,3,opt,name=product_name,json=productName,proto3" json:"product_name,omitempty"` Color string `protobuf:"bytes,4,opt,name=color,proto3" json:"color,omitempty"` FabricCode string `protobuf:"bytes,5,opt,name=fabric_code,json=fabricCode,proto3" json:"fabric_code,omitempty"` ColorCode string `protobuf:"bytes,6,opt,name=color_code,json=colorCode,proto3" json:"color_code,omitempty"` TargetQuantity string `protobuf:"bytes,7,opt,name=target_quantity,json=targetQuantity,proto3" json:"target_quantity,omitempty"` YarnUsagePerMeter string `protobuf:"bytes,8,opt,name=yarn_usage_per_meter,json=yarnUsagePerMeter,proto3" json:"yarn_usage_per_meter,omitempty"` ProductionPrice string `protobuf:"bytes,9,opt,name=production_price,json=productionPrice,proto3" json:"production_price,omitempty"` SupplierId string `protobuf:"bytes,10,opt,name=supplier_id,json=supplierId,proto3" json:"supplier_id,omitempty"` Remark string `protobuf:"bytes,11,opt,name=remark,proto3" json:"remark,omitempty"` StartTime string `protobuf:"bytes,12,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` Creator string `protobuf:"bytes,13,opt,name=creator,proto3" json:"creator,omitempty"` YarnRatios []*YarnRatioReq `protobuf:"bytes,14,rep,name=yarn_ratios,json=yarnRatios,proto3" json:"yarn_ratios,omitempty"` ProcessSteps []*ProcessStepReq `protobuf:"bytes,15,rep,name=process_steps,json=processSteps,proto3" json:"process_steps,omitempty"` } func (x *CreateProductionPlanReq) Reset() { *x = CreateProductionPlanReq{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateProductionPlanReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateProductionPlanReq) ProtoMessage() {} func (x *CreateProductionPlanReq) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 CreateProductionPlanReq.ProtoReflect.Descriptor instead. func (*CreateProductionPlanReq) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{3} } func (x *CreateProductionPlanReq) GetTenantId() string { if x != nil { return x.TenantId } return "" } func (x *CreateProductionPlanReq) GetProductId() string { if x != nil { return x.ProductId } return "" } func (x *CreateProductionPlanReq) GetProductName() string { if x != nil { return x.ProductName } return "" } func (x *CreateProductionPlanReq) GetColor() string { if x != nil { return x.Color } return "" } func (x *CreateProductionPlanReq) GetFabricCode() string { if x != nil { return x.FabricCode } return "" } func (x *CreateProductionPlanReq) GetColorCode() string { if x != nil { return x.ColorCode } return "" } func (x *CreateProductionPlanReq) GetTargetQuantity() string { if x != nil { return x.TargetQuantity } return "" } func (x *CreateProductionPlanReq) GetYarnUsagePerMeter() string { if x != nil { return x.YarnUsagePerMeter } return "" } func (x *CreateProductionPlanReq) GetProductionPrice() string { if x != nil { return x.ProductionPrice } return "" } func (x *CreateProductionPlanReq) GetSupplierId() string { if x != nil { return x.SupplierId } return "" } func (x *CreateProductionPlanReq) GetRemark() string { if x != nil { return x.Remark } return "" } func (x *CreateProductionPlanReq) GetStartTime() string { if x != nil { return x.StartTime } return "" } func (x *CreateProductionPlanReq) GetCreator() string { if x != nil { return x.Creator } return "" } func (x *CreateProductionPlanReq) GetYarnRatios() []*YarnRatioReq { if x != nil { return x.YarnRatios } return nil } func (x *CreateProductionPlanReq) GetProcessSteps() []*ProcessStepReq { if x != nil { return x.ProcessSteps } return nil } type ListProductionPlanReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TenantId string `protobuf:"bytes,1,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"` Page int64 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` PageSize int64 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` Status int64 `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` ProductName string `protobuf:"bytes,5,opt,name=product_name,json=productName,proto3" json:"product_name,omitempty"` PlanCode string `protobuf:"bytes,6,opt,name=plan_code,json=planCode,proto3" json:"plan_code,omitempty"` } func (x *ListProductionPlanReq) Reset() { *x = ListProductionPlanReq{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListProductionPlanReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListProductionPlanReq) ProtoMessage() {} func (x *ListProductionPlanReq) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 ListProductionPlanReq.ProtoReflect.Descriptor instead. func (*ListProductionPlanReq) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{4} } func (x *ListProductionPlanReq) GetTenantId() string { if x != nil { return x.TenantId } return "" } func (x *ListProductionPlanReq) GetPage() int64 { if x != nil { return x.Page } return 0 } func (x *ListProductionPlanReq) GetPageSize() int64 { if x != nil { return x.PageSize } return 0 } func (x *ListProductionPlanReq) GetStatus() int64 { if x != nil { return x.Status } return 0 } func (x *ListProductionPlanReq) GetProductName() string { if x != nil { return x.ProductName } return "" } func (x *ListProductionPlanReq) GetPlanCode() string { if x != nil { return x.PlanCode } return "" } type ListProductionPlanResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` List []*ProductionPlanInfo `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"` } func (x *ListProductionPlanResp) Reset() { *x = ListProductionPlanResp{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListProductionPlanResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListProductionPlanResp) ProtoMessage() {} func (x *ListProductionPlanResp) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 ListProductionPlanResp.ProtoReflect.Descriptor instead. func (*ListProductionPlanResp) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{5} } func (x *ListProductionPlanResp) GetTotal() int64 { if x != nil { return x.Total } return 0 } func (x *ListProductionPlanResp) GetList() []*ProductionPlanInfo { if x != nil { return x.List } return nil } type GetProductionPlanReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlanId string `protobuf:"bytes,1,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` } func (x *GetProductionPlanReq) Reset() { *x = GetProductionPlanReq{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetProductionPlanReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetProductionPlanReq) ProtoMessage() {} func (x *GetProductionPlanReq) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 GetProductionPlanReq.ProtoReflect.Descriptor instead. func (*GetProductionPlanReq) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{6} } func (x *GetProductionPlanReq) GetPlanId() string { if x != nil { return x.PlanId } return "" } type ConfirmPlanReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlanId string `protobuf:"bytes,1,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` Operator string `protobuf:"bytes,2,opt,name=operator,proto3" json:"operator,omitempty"` } func (x *ConfirmPlanReq) Reset() { *x = ConfirmPlanReq{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConfirmPlanReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConfirmPlanReq) ProtoMessage() {} func (x *ConfirmPlanReq) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 ConfirmPlanReq.ProtoReflect.Descriptor instead. func (*ConfirmPlanReq) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{7} } func (x *ConfirmPlanReq) GetPlanId() string { if x != nil { return x.PlanId } return "" } func (x *ConfirmPlanReq) GetOperator() string { if x != nil { return x.Operator } return "" } type YarnRatioInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RatioId string `protobuf:"bytes,1,opt,name=ratio_id,json=ratioId,proto3" json:"ratio_id,omitempty"` PlanId string `protobuf:"bytes,2,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` YarnName string `protobuf:"bytes,3,opt,name=yarn_name,json=yarnName,proto3" json:"yarn_name,omitempty"` Ratio string `protobuf:"bytes,4,opt,name=ratio,proto3" json:"ratio,omitempty"` AmountPerMeter string `protobuf:"bytes,5,opt,name=amount_per_meter,json=amountPerMeter,proto3" json:"amount_per_meter,omitempty"` TotalAmount string `protobuf:"bytes,6,opt,name=total_amount,json=totalAmount,proto3" json:"total_amount,omitempty"` CreatedAt string `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` } func (x *YarnRatioInfo) Reset() { *x = YarnRatioInfo{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *YarnRatioInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*YarnRatioInfo) ProtoMessage() {} func (x *YarnRatioInfo) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 YarnRatioInfo.ProtoReflect.Descriptor instead. func (*YarnRatioInfo) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{8} } func (x *YarnRatioInfo) GetRatioId() string { if x != nil { return x.RatioId } return "" } func (x *YarnRatioInfo) GetPlanId() string { if x != nil { return x.PlanId } return "" } func (x *YarnRatioInfo) GetYarnName() string { if x != nil { return x.YarnName } return "" } func (x *YarnRatioInfo) GetRatio() string { if x != nil { return x.Ratio } return "" } func (x *YarnRatioInfo) GetAmountPerMeter() string { if x != nil { return x.AmountPerMeter } return "" } func (x *YarnRatioInfo) GetTotalAmount() string { if x != nil { return x.TotalAmount } return "" } func (x *YarnRatioInfo) GetCreatedAt() string { if x != nil { return x.CreatedAt } return "" } type YarnRatioReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields YarnName string `protobuf:"bytes,1,opt,name=yarn_name,json=yarnName,proto3" json:"yarn_name,omitempty"` Ratio string `protobuf:"bytes,2,opt,name=ratio,proto3" json:"ratio,omitempty"` AmountPerMeter string `protobuf:"bytes,3,opt,name=amount_per_meter,json=amountPerMeter,proto3" json:"amount_per_meter,omitempty"` TotalAmount string `protobuf:"bytes,4,opt,name=total_amount,json=totalAmount,proto3" json:"total_amount,omitempty"` } func (x *YarnRatioReq) Reset() { *x = YarnRatioReq{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *YarnRatioReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*YarnRatioReq) ProtoMessage() {} func (x *YarnRatioReq) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 YarnRatioReq.ProtoReflect.Descriptor instead. func (*YarnRatioReq) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{9} } func (x *YarnRatioReq) GetYarnName() string { if x != nil { return x.YarnName } return "" } func (x *YarnRatioReq) GetRatio() string { if x != nil { return x.Ratio } return "" } func (x *YarnRatioReq) GetAmountPerMeter() string { if x != nil { return x.AmountPerMeter } return "" } func (x *YarnRatioReq) GetTotalAmount() string { if x != nil { return x.TotalAmount } return "" } type ProcessStepInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StepId string `protobuf:"bytes,1,opt,name=step_id,json=stepId,proto3" json:"step_id,omitempty"` PlanId string `protobuf:"bytes,2,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` StepType string `protobuf:"bytes,3,opt,name=step_type,json=stepType,proto3" json:"step_type,omitempty"` StepOrder int64 `protobuf:"varint,4,opt,name=step_order,json=stepOrder,proto3" json:"step_order,omitempty"` Status int64 `protobuf:"varint,5,opt,name=status,proto3" json:"status,omitempty"` OperatorId string `protobuf:"bytes,6,opt,name=operator_id,json=operatorId,proto3" json:"operator_id,omitempty"` CompletedAt string `protobuf:"bytes,7,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"` Remark string `protobuf:"bytes,8,opt,name=remark,proto3" json:"remark,omitempty"` CreatedAt string `protobuf:"bytes,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` UpdatedAt string `protobuf:"bytes,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` } func (x *ProcessStepInfo) Reset() { *x = ProcessStepInfo{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProcessStepInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProcessStepInfo) ProtoMessage() {} func (x *ProcessStepInfo) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 ProcessStepInfo.ProtoReflect.Descriptor instead. func (*ProcessStepInfo) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{10} } func (x *ProcessStepInfo) GetStepId() string { if x != nil { return x.StepId } return "" } func (x *ProcessStepInfo) GetPlanId() string { if x != nil { return x.PlanId } return "" } func (x *ProcessStepInfo) GetStepType() string { if x != nil { return x.StepType } return "" } func (x *ProcessStepInfo) GetStepOrder() int64 { if x != nil { return x.StepOrder } return 0 } func (x *ProcessStepInfo) GetStatus() int64 { if x != nil { return x.Status } return 0 } func (x *ProcessStepInfo) GetOperatorId() string { if x != nil { return x.OperatorId } return "" } func (x *ProcessStepInfo) GetCompletedAt() string { if x != nil { return x.CompletedAt } return "" } func (x *ProcessStepInfo) GetRemark() string { if x != nil { return x.Remark } return "" } func (x *ProcessStepInfo) GetCreatedAt() string { if x != nil { return x.CreatedAt } return "" } func (x *ProcessStepInfo) GetUpdatedAt() string { if x != nil { return x.UpdatedAt } return "" } type ProcessStepReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StepType string `protobuf:"bytes,1,opt,name=step_type,json=stepType,proto3" json:"step_type,omitempty"` StepOrder int64 `protobuf:"varint,2,opt,name=step_order,json=stepOrder,proto3" json:"step_order,omitempty"` Remark string `protobuf:"bytes,3,opt,name=remark,proto3" json:"remark,omitempty"` } func (x *ProcessStepReq) Reset() { *x = ProcessStepReq{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProcessStepReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProcessStepReq) ProtoMessage() {} func (x *ProcessStepReq) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 ProcessStepReq.ProtoReflect.Descriptor instead. func (*ProcessStepReq) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{11} } func (x *ProcessStepReq) GetStepType() string { if x != nil { return x.StepType } return "" } func (x *ProcessStepReq) GetStepOrder() int64 { if x != nil { return x.StepOrder } return 0 } func (x *ProcessStepReq) GetRemark() string { if x != nil { return x.Remark } return "" } type CompleteStepReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlanId string `protobuf:"bytes,1,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` StepType string `protobuf:"bytes,2,opt,name=step_type,json=stepType,proto3" json:"step_type,omitempty"` OperatorId string `protobuf:"bytes,3,opt,name=operator_id,json=operatorId,proto3" json:"operator_id,omitempty"` } func (x *CompleteStepReq) Reset() { *x = CompleteStepReq{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CompleteStepReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*CompleteStepReq) ProtoMessage() {} func (x *CompleteStepReq) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 CompleteStepReq.ProtoReflect.Descriptor instead. func (*CompleteStepReq) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{12} } func (x *CompleteStepReq) GetPlanId() string { if x != nil { return x.PlanId } return "" } func (x *CompleteStepReq) GetStepType() string { if x != nil { return x.StepType } return "" } func (x *CompleteStepReq) GetOperatorId() string { if x != nil { return x.OperatorId } return "" } type ShareLinkInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LinkId string `protobuf:"bytes,1,opt,name=link_id,json=linkId,proto3" json:"link_id,omitempty"` TenantId string `protobuf:"bytes,2,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"` PlanId string `protobuf:"bytes,3,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` ShortCode string `protobuf:"bytes,4,opt,name=short_code,json=shortCode,proto3" json:"short_code,omitempty"` Token string `protobuf:"bytes,5,opt,name=token,proto3" json:"token,omitempty"` FactoryType string `protobuf:"bytes,6,opt,name=factory_type,json=factoryType,proto3" json:"factory_type,omitempty"` HideSensitive int64 `protobuf:"varint,7,opt,name=hide_sensitive,json=hideSensitive,proto3" json:"hide_sensitive,omitempty"` Status int64 `protobuf:"varint,8,opt,name=status,proto3" json:"status,omitempty"` ClickCount int64 `protobuf:"varint,9,opt,name=click_count,json=clickCount,proto3" json:"click_count,omitempty"` ClickedAt string `protobuf:"bytes,10,opt,name=clicked_at,json=clickedAt,proto3" json:"clicked_at,omitempty"` RespondedAt string `protobuf:"bytes,11,opt,name=responded_at,json=respondedAt,proto3" json:"responded_at,omitempty"` RejectReason string `protobuf:"bytes,12,opt,name=reject_reason,json=rejectReason,proto3" json:"reject_reason,omitempty"` ExpiresAt string `protobuf:"bytes,13,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` CreatedBy string `protobuf:"bytes,14,opt,name=created_by,json=createdBy,proto3" json:"created_by,omitempty"` CreatedAt string `protobuf:"bytes,15,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` UpdatedAt string `protobuf:"bytes,16,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` } func (x *ShareLinkInfo) Reset() { *x = ShareLinkInfo{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ShareLinkInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ShareLinkInfo) ProtoMessage() {} func (x *ShareLinkInfo) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 ShareLinkInfo.ProtoReflect.Descriptor instead. func (*ShareLinkInfo) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{13} } func (x *ShareLinkInfo) GetLinkId() string { if x != nil { return x.LinkId } return "" } func (x *ShareLinkInfo) GetTenantId() string { if x != nil { return x.TenantId } return "" } func (x *ShareLinkInfo) GetPlanId() string { if x != nil { return x.PlanId } return "" } func (x *ShareLinkInfo) GetShortCode() string { if x != nil { return x.ShortCode } return "" } func (x *ShareLinkInfo) GetToken() string { if x != nil { return x.Token } return "" } func (x *ShareLinkInfo) GetFactoryType() string { if x != nil { return x.FactoryType } return "" } func (x *ShareLinkInfo) GetHideSensitive() int64 { if x != nil { return x.HideSensitive } return 0 } func (x *ShareLinkInfo) GetStatus() int64 { if x != nil { return x.Status } return 0 } func (x *ShareLinkInfo) GetClickCount() int64 { if x != nil { return x.ClickCount } return 0 } func (x *ShareLinkInfo) GetClickedAt() string { if x != nil { return x.ClickedAt } return "" } func (x *ShareLinkInfo) GetRespondedAt() string { if x != nil { return x.RespondedAt } return "" } func (x *ShareLinkInfo) GetRejectReason() string { if x != nil { return x.RejectReason } return "" } func (x *ShareLinkInfo) GetExpiresAt() string { if x != nil { return x.ExpiresAt } return "" } func (x *ShareLinkInfo) GetCreatedBy() string { if x != nil { return x.CreatedBy } return "" } func (x *ShareLinkInfo) GetCreatedAt() string { if x != nil { return x.CreatedAt } return "" } func (x *ShareLinkInfo) GetUpdatedAt() string { if x != nil { return x.UpdatedAt } return "" } type ShareLinkPlanView struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Plan *ProductionPlanInfo `protobuf:"bytes,1,opt,name=plan,proto3" json:"plan,omitempty"` Link *ShareLinkInfo `protobuf:"bytes,2,opt,name=link,proto3" json:"link,omitempty"` } func (x *ShareLinkPlanView) Reset() { *x = ShareLinkPlanView{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ShareLinkPlanView) String() string { return protoimpl.X.MessageStringOf(x) } func (*ShareLinkPlanView) ProtoMessage() {} func (x *ShareLinkPlanView) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 ShareLinkPlanView.ProtoReflect.Descriptor instead. func (*ShareLinkPlanView) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{14} } func (x *ShareLinkPlanView) GetPlan() *ProductionPlanInfo { if x != nil { return x.Plan } return nil } func (x *ShareLinkPlanView) GetLink() *ShareLinkInfo { if x != nil { return x.Link } return nil } type CreateShareLinkReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TenantId string `protobuf:"bytes,1,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"` PlanId string `protobuf:"bytes,2,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` FactoryType string `protobuf:"bytes,3,opt,name=factory_type,json=factoryType,proto3" json:"factory_type,omitempty"` HideSensitive int64 `protobuf:"varint,4,opt,name=hide_sensitive,json=hideSensitive,proto3" json:"hide_sensitive,omitempty"` ExpiresHours int64 `protobuf:"varint,5,opt,name=expires_hours,json=expiresHours,proto3" json:"expires_hours,omitempty"` CreatedBy string `protobuf:"bytes,6,opt,name=created_by,json=createdBy,proto3" json:"created_by,omitempty"` } func (x *CreateShareLinkReq) Reset() { *x = CreateShareLinkReq{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateShareLinkReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateShareLinkReq) ProtoMessage() {} func (x *CreateShareLinkReq) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 CreateShareLinkReq.ProtoReflect.Descriptor instead. func (*CreateShareLinkReq) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{15} } func (x *CreateShareLinkReq) GetTenantId() string { if x != nil { return x.TenantId } return "" } func (x *CreateShareLinkReq) GetPlanId() string { if x != nil { return x.PlanId } return "" } func (x *CreateShareLinkReq) GetFactoryType() string { if x != nil { return x.FactoryType } return "" } func (x *CreateShareLinkReq) GetHideSensitive() int64 { if x != nil { return x.HideSensitive } return 0 } func (x *CreateShareLinkReq) GetExpiresHours() int64 { if x != nil { return x.ExpiresHours } return 0 } func (x *CreateShareLinkReq) GetCreatedBy() string { if x != nil { return x.CreatedBy } return "" } type GetShareLinkReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ShortCode string `protobuf:"bytes,1,opt,name=short_code,json=shortCode,proto3" json:"short_code,omitempty"` Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` } func (x *GetShareLinkReq) Reset() { *x = GetShareLinkReq{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetShareLinkReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetShareLinkReq) ProtoMessage() {} func (x *GetShareLinkReq) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 GetShareLinkReq.ProtoReflect.Descriptor instead. func (*GetShareLinkReq) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{16} } func (x *GetShareLinkReq) GetShortCode() string { if x != nil { return x.ShortCode } return "" } func (x *GetShareLinkReq) GetToken() string { if x != nil { return x.Token } return "" } type ClickShareLinkReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ShortCode string `protobuf:"bytes,1,opt,name=short_code,json=shortCode,proto3" json:"short_code,omitempty"` } func (x *ClickShareLinkReq) Reset() { *x = ClickShareLinkReq{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ClickShareLinkReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ClickShareLinkReq) ProtoMessage() {} func (x *ClickShareLinkReq) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 ClickShareLinkReq.ProtoReflect.Descriptor instead. func (*ClickShareLinkReq) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{17} } func (x *ClickShareLinkReq) GetShortCode() string { if x != nil { return x.ShortCode } return "" } type ConfirmShareLinkReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ShortCode string `protobuf:"bytes,1,opt,name=short_code,json=shortCode,proto3" json:"short_code,omitempty"` Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` FactoryTenantId string `protobuf:"bytes,3,opt,name=factory_tenant_id,json=factoryTenantId,proto3" json:"factory_tenant_id,omitempty"` } func (x *ConfirmShareLinkReq) Reset() { *x = ConfirmShareLinkReq{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConfirmShareLinkReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConfirmShareLinkReq) ProtoMessage() {} func (x *ConfirmShareLinkReq) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 ConfirmShareLinkReq.ProtoReflect.Descriptor instead. func (*ConfirmShareLinkReq) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{18} } func (x *ConfirmShareLinkReq) GetShortCode() string { if x != nil { return x.ShortCode } return "" } func (x *ConfirmShareLinkReq) GetToken() string { if x != nil { return x.Token } return "" } func (x *ConfirmShareLinkReq) GetFactoryTenantId() string { if x != nil { return x.FactoryTenantId } return "" } type RejectShareLinkReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ShortCode string `protobuf:"bytes,1,opt,name=short_code,json=shortCode,proto3" json:"short_code,omitempty"` Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` RejectReason string `protobuf:"bytes,3,opt,name=reject_reason,json=rejectReason,proto3" json:"reject_reason,omitempty"` } func (x *RejectShareLinkReq) Reset() { *x = RejectShareLinkReq{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RejectShareLinkReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*RejectShareLinkReq) ProtoMessage() {} func (x *RejectShareLinkReq) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 RejectShareLinkReq.ProtoReflect.Descriptor instead. func (*RejectShareLinkReq) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{19} } func (x *RejectShareLinkReq) GetShortCode() string { if x != nil { return x.ShortCode } return "" } func (x *RejectShareLinkReq) GetToken() string { if x != nil { return x.Token } return "" } func (x *RejectShareLinkReq) GetRejectReason() string { if x != nil { return x.RejectReason } return "" } type InboundRecordInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RecordId string `protobuf:"bytes,1,opt,name=record_id,json=recordId,proto3" json:"record_id,omitempty"` TenantId string `protobuf:"bytes,2,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"` PlanId string `protobuf:"bytes,3,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` ProductId string `protobuf:"bytes,4,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"` BatchNo string `protobuf:"bytes,5,opt,name=batch_no,json=batchNo,proto3" json:"batch_no,omitempty"` Quantity string `protobuf:"bytes,6,opt,name=quantity,proto3" json:"quantity,omitempty"` Rolls int64 `protobuf:"varint,7,opt,name=rolls,proto3" json:"rolls,omitempty"` PricePerMeter string `protobuf:"bytes,8,opt,name=price_per_meter,json=pricePerMeter,proto3" json:"price_per_meter,omitempty"` OperatorId string `protobuf:"bytes,9,opt,name=operator_id,json=operatorId,proto3" json:"operator_id,omitempty"` Remark string `protobuf:"bytes,10,opt,name=remark,proto3" json:"remark,omitempty"` CreatedAt string `protobuf:"bytes,11,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` } func (x *InboundRecordInfo) Reset() { *x = InboundRecordInfo{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InboundRecordInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*InboundRecordInfo) ProtoMessage() {} func (x *InboundRecordInfo) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 InboundRecordInfo.ProtoReflect.Descriptor instead. func (*InboundRecordInfo) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{20} } func (x *InboundRecordInfo) GetRecordId() string { if x != nil { return x.RecordId } return "" } func (x *InboundRecordInfo) GetTenantId() string { if x != nil { return x.TenantId } return "" } func (x *InboundRecordInfo) GetPlanId() string { if x != nil { return x.PlanId } return "" } func (x *InboundRecordInfo) GetProductId() string { if x != nil { return x.ProductId } return "" } func (x *InboundRecordInfo) GetBatchNo() string { if x != nil { return x.BatchNo } return "" } func (x *InboundRecordInfo) GetQuantity() string { if x != nil { return x.Quantity } return "" } func (x *InboundRecordInfo) GetRolls() int64 { if x != nil { return x.Rolls } return 0 } func (x *InboundRecordInfo) GetPricePerMeter() string { if x != nil { return x.PricePerMeter } return "" } func (x *InboundRecordInfo) GetOperatorId() string { if x != nil { return x.OperatorId } return "" } func (x *InboundRecordInfo) GetRemark() string { if x != nil { return x.Remark } return "" } func (x *InboundRecordInfo) GetCreatedAt() string { if x != nil { return x.CreatedAt } return "" } type CreateInboundReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TenantId string `protobuf:"bytes,1,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"` PlanId string `protobuf:"bytes,2,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` ProductId string `protobuf:"bytes,3,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"` BatchNo string `protobuf:"bytes,4,opt,name=batch_no,json=batchNo,proto3" json:"batch_no,omitempty"` Quantity string `protobuf:"bytes,5,opt,name=quantity,proto3" json:"quantity,omitempty"` Rolls int64 `protobuf:"varint,6,opt,name=rolls,proto3" json:"rolls,omitempty"` PricePerMeter string `protobuf:"bytes,7,opt,name=price_per_meter,json=pricePerMeter,proto3" json:"price_per_meter,omitempty"` OperatorId string `protobuf:"bytes,8,opt,name=operator_id,json=operatorId,proto3" json:"operator_id,omitempty"` Remark string `protobuf:"bytes,9,opt,name=remark,proto3" json:"remark,omitempty"` } func (x *CreateInboundReq) Reset() { *x = CreateInboundReq{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateInboundReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateInboundReq) ProtoMessage() {} func (x *CreateInboundReq) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 CreateInboundReq.ProtoReflect.Descriptor instead. func (*CreateInboundReq) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{21} } func (x *CreateInboundReq) GetTenantId() string { if x != nil { return x.TenantId } return "" } func (x *CreateInboundReq) GetPlanId() string { if x != nil { return x.PlanId } return "" } func (x *CreateInboundReq) GetProductId() string { if x != nil { return x.ProductId } return "" } func (x *CreateInboundReq) GetBatchNo() string { if x != nil { return x.BatchNo } return "" } func (x *CreateInboundReq) GetQuantity() string { if x != nil { return x.Quantity } return "" } func (x *CreateInboundReq) GetRolls() int64 { if x != nil { return x.Rolls } return 0 } func (x *CreateInboundReq) GetPricePerMeter() string { if x != nil { return x.PricePerMeter } return "" } func (x *CreateInboundReq) GetOperatorId() string { if x != nil { return x.OperatorId } return "" } func (x *CreateInboundReq) GetRemark() string { if x != nil { return x.Remark } return "" } type ListInboundReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TenantId string `protobuf:"bytes,1,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"` PlanId string `protobuf:"bytes,2,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` Page int64 `protobuf:"varint,3,opt,name=page,proto3" json:"page,omitempty"` PageSize int64 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` } func (x *ListInboundReq) Reset() { *x = ListInboundReq{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListInboundReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListInboundReq) ProtoMessage() {} func (x *ListInboundReq) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 ListInboundReq.ProtoReflect.Descriptor instead. func (*ListInboundReq) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{22} } func (x *ListInboundReq) GetTenantId() string { if x != nil { return x.TenantId } return "" } func (x *ListInboundReq) GetPlanId() string { if x != nil { return x.PlanId } return "" } func (x *ListInboundReq) GetPage() int64 { if x != nil { return x.Page } return 0 } func (x *ListInboundReq) GetPageSize() int64 { if x != nil { return x.PageSize } return 0 } type ListInboundResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` List []*InboundRecordInfo `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"` } func (x *ListInboundResp) Reset() { *x = ListInboundResp{} if protoimpl.UnsafeEnabled { mi := &file_rpc_production_production_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListInboundResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListInboundResp) ProtoMessage() {} func (x *ListInboundResp) ProtoReflect() protoreflect.Message { mi := &file_rpc_production_production_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 ListInboundResp.ProtoReflect.Descriptor instead. func (*ListInboundResp) Descriptor() ([]byte, []int) { return file_rpc_production_production_proto_rawDescGZIP(), []int{23} } func (x *ListInboundResp) GetTotal() int64 { if x != nil { return x.Total } return 0 } func (x *ListInboundResp) GetList() []*InboundRecordInfo { if x != nil { return x.List } return nil } var File_rpc_production_production_proto protoreflect.FileDescriptor var file_rpc_production_production_proto_rawDesc = []byte{ 0x0a, 0x1f, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x18, 0x0a, 0x06, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xdd, 0x06, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2f, 0x0a, 0x14, 0x79, 0x61, 0x72, 0x6e, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x79, 0x61, 0x72, 0x6e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x50, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3a, 0x0a, 0x0b, 0x79, 0x61, 0x72, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x59, 0x61, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x79, 0x61, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x73, 0x12, 0x40, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x65, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x65, 0x70, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0xc1, 0x04, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2f, 0x0a, 0x14, 0x79, 0x61, 0x72, 0x6e, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x79, 0x61, 0x72, 0x6e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x50, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x39, 0x0a, 0x0b, 0x79, 0x61, 0x72, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x59, 0x61, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x52, 0x0a, 0x79, 0x61, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x65, 0x70, 0x52, 0x65, 0x71, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x65, 0x70, 0x73, 0x22, 0xbd, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x62, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x2f, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x22, 0x45, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xe2, 0x01, 0x0a, 0x0d, 0x59, 0x61, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x79, 0x61, 0x72, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x79, 0x61, 0x72, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x0c, 0x59, 0x61, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x79, 0x61, 0x72, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x79, 0x61, 0x72, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb1, 0x02, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x65, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x65, 0x70, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x65, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x65, 0x70, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x64, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x65, 0x70, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x65, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x65, 0x70, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x68, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x65, 0x70, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x65, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0xf9, 0x03, 0x0a, 0x0d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x69, 0x64, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x68, 0x69, 0x64, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x76, 0x0a, 0x11, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x6c, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x12, 0x2d, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x22, 0xd8, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x69, 0x64, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x68, 0x69, 0x64, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x22, 0x46, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x32, 0x0a, 0x11, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x76, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x6e, 0x0a, 0x12, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xd2, 0x02, 0x0a, 0x11, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6e, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x63, 0x65, 0x50, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x95, 0x02, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x63, 0x65, 0x50, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x77, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x5a, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x32, 0xdd, 0x07, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5b, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x46, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x52, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x6c, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x6c, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x42, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x44, 0x0a, 0x0f, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x65, 0x70, 0x12, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x65, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_rpc_production_production_proto_rawDescOnce sync.Once file_rpc_production_production_proto_rawDescData = file_rpc_production_production_proto_rawDesc ) func file_rpc_production_production_proto_rawDescGZIP() []byte { file_rpc_production_production_proto_rawDescOnce.Do(func() { file_rpc_production_production_proto_rawDescData = protoimpl.X.CompressGZIP(file_rpc_production_production_proto_rawDescData) }) return file_rpc_production_production_proto_rawDescData } var file_rpc_production_production_proto_msgTypes = make([]protoimpl.MessageInfo, 24) var file_rpc_production_production_proto_goTypes = []interface{}{ (*IdResp)(nil), // 0: production.IdResp (*Empty)(nil), // 1: production.Empty (*ProductionPlanInfo)(nil), // 2: production.ProductionPlanInfo (*CreateProductionPlanReq)(nil), // 3: production.CreateProductionPlanReq (*ListProductionPlanReq)(nil), // 4: production.ListProductionPlanReq (*ListProductionPlanResp)(nil), // 5: production.ListProductionPlanResp (*GetProductionPlanReq)(nil), // 6: production.GetProductionPlanReq (*ConfirmPlanReq)(nil), // 7: production.ConfirmPlanReq (*YarnRatioInfo)(nil), // 8: production.YarnRatioInfo (*YarnRatioReq)(nil), // 9: production.YarnRatioReq (*ProcessStepInfo)(nil), // 10: production.ProcessStepInfo (*ProcessStepReq)(nil), // 11: production.ProcessStepReq (*CompleteStepReq)(nil), // 12: production.CompleteStepReq (*ShareLinkInfo)(nil), // 13: production.ShareLinkInfo (*ShareLinkPlanView)(nil), // 14: production.ShareLinkPlanView (*CreateShareLinkReq)(nil), // 15: production.CreateShareLinkReq (*GetShareLinkReq)(nil), // 16: production.GetShareLinkReq (*ClickShareLinkReq)(nil), // 17: production.ClickShareLinkReq (*ConfirmShareLinkReq)(nil), // 18: production.ConfirmShareLinkReq (*RejectShareLinkReq)(nil), // 19: production.RejectShareLinkReq (*InboundRecordInfo)(nil), // 20: production.InboundRecordInfo (*CreateInboundReq)(nil), // 21: production.CreateInboundReq (*ListInboundReq)(nil), // 22: production.ListInboundReq (*ListInboundResp)(nil), // 23: production.ListInboundResp } var file_rpc_production_production_proto_depIdxs = []int32{ 8, // 0: production.ProductionPlanInfo.yarn_ratios:type_name -> production.YarnRatioInfo 10, // 1: production.ProductionPlanInfo.process_steps:type_name -> production.ProcessStepInfo 20, // 2: production.ProductionPlanInfo.inbound_records:type_name -> production.InboundRecordInfo 9, // 3: production.CreateProductionPlanReq.yarn_ratios:type_name -> production.YarnRatioReq 11, // 4: production.CreateProductionPlanReq.process_steps:type_name -> production.ProcessStepReq 2, // 5: production.ListProductionPlanResp.list:type_name -> production.ProductionPlanInfo 2, // 6: production.ShareLinkPlanView.plan:type_name -> production.ProductionPlanInfo 13, // 7: production.ShareLinkPlanView.link:type_name -> production.ShareLinkInfo 20, // 8: production.ListInboundResp.list:type_name -> production.InboundRecordInfo 3, // 9: production.ProductionService.CreateProductionPlan:input_type -> production.CreateProductionPlanReq 4, // 10: production.ProductionService.ListProductionPlan:input_type -> production.ListProductionPlanReq 6, // 11: production.ProductionService.GetProductionPlan:input_type -> production.GetProductionPlanReq 7, // 12: production.ProductionService.ConfirmPlan:input_type -> production.ConfirmPlanReq 15, // 13: production.ProductionService.CreateShareLink:input_type -> production.CreateShareLinkReq 16, // 14: production.ProductionService.GetShareLink:input_type -> production.GetShareLinkReq 16, // 15: production.ProductionService.GetShareLinkPlanView:input_type -> production.GetShareLinkReq 17, // 16: production.ProductionService.ClickShareLink:input_type -> production.ClickShareLinkReq 18, // 17: production.ProductionService.ConfirmShareLink:input_type -> production.ConfirmShareLinkReq 19, // 18: production.ProductionService.RejectShareLink:input_type -> production.RejectShareLinkReq 12, // 19: production.ProductionService.CompleteStep:input_type -> production.CompleteStepReq 21, // 20: production.ProductionService.CreateInbound:input_type -> production.CreateInboundReq 22, // 21: production.ProductionService.ListInbound:input_type -> production.ListInboundReq 0, // 22: production.ProductionService.CreateProductionPlan:output_type -> production.IdResp 5, // 23: production.ProductionService.ListProductionPlan:output_type -> production.ListProductionPlanResp 2, // 24: production.ProductionService.GetProductionPlan:output_type -> production.ProductionPlanInfo 1, // 25: production.ProductionService.ConfirmPlan:output_type -> production.Empty 13, // 26: production.ProductionService.CreateShareLink:output_type -> production.ShareLinkInfo 13, // 27: production.ProductionService.GetShareLink:output_type -> production.ShareLinkInfo 14, // 28: production.ProductionService.GetShareLinkPlanView:output_type -> production.ShareLinkPlanView 1, // 29: production.ProductionService.ClickShareLink:output_type -> production.Empty 1, // 30: production.ProductionService.ConfirmShareLink:output_type -> production.Empty 1, // 31: production.ProductionService.RejectShareLink:output_type -> production.Empty 1, // 32: production.ProductionService.CompleteStep:output_type -> production.Empty 0, // 33: production.ProductionService.CreateInbound:output_type -> production.IdResp 23, // 34: production.ProductionService.ListInbound:output_type -> production.ListInboundResp 22, // [22:35] is the sub-list for method output_type 9, // [9:22] is the sub-list for method input_type 9, // [9:9] is the sub-list for extension type_name 9, // [9:9] is the sub-list for extension extendee 0, // [0:9] is the sub-list for field type_name } func init() { file_rpc_production_production_proto_init() } func file_rpc_production_production_proto_init() { if File_rpc_production_production_proto != nil { return } if !protoimpl.UnsafeEnabled { file_rpc_production_production_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IdResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Empty); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductionPlanInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateProductionPlanReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListProductionPlanReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListProductionPlanResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetProductionPlanReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfirmPlanReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*YarnRatioInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*YarnRatioReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProcessStepInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProcessStepReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CompleteStepReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShareLinkInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShareLinkPlanView); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateShareLinkReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetShareLinkReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClickShareLinkReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfirmShareLinkReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RejectShareLinkReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InboundRecordInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateInboundReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListInboundReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_production_production_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListInboundResp); 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_rpc_production_production_proto_rawDesc, NumEnums: 0, NumMessages: 24, NumExtensions: 0, NumServices: 1, }, GoTypes: file_rpc_production_production_proto_goTypes, DependencyIndexes: file_rpc_production_production_proto_depIdxs, MessageInfos: file_rpc_production_production_proto_msgTypes, }.Build() File_rpc_production_production_proto = out.File file_rpc_production_production_proto_rawDesc = nil file_rpc_production_production_proto_goTypes = nil file_rpc_production_production_proto_depIdxs = nil }