// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.25.0 // protoc v3.11.4 // source: mtp2.proto package pb import ( proto "github.com/golang/protobuf/proto" 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) ) // This is a compile-time assertion that a sufficiently up-to-date version // of the legacy proto package is being used. const _ = proto.ProtoPackageIsVersion4 //交易规则信息子集 type TradeRule struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RuleID *uint32 `protobuf:"varint,1,opt,name=RuleID" json:"RuleID,omitempty"` // 交易规则ID ParamValue *float64 `protobuf:"fixed64,2,opt,name=ParamValue" json:"ParamValue,omitempty"` // 参数值 } func (x *TradeRule) Reset() { *x = TradeRule{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TradeRule) String() string { return protoimpl.X.MessageStringOf(x) } func (*TradeRule) ProtoMessage() {} func (x *TradeRule) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 TradeRule.ProtoReflect.Descriptor instead. func (*TradeRule) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{0} } func (x *TradeRule) GetRuleID() uint32 { if x != nil && x.RuleID != nil { return *x.RuleID } return 0 } func (x *TradeRule) GetParamValue() float64 { if x != nil && x.ParamValue != nil { return *x.ParamValue } return 0 } //交易规则信息 type TradeRuleInfoStruct struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AccountID *uint64 `protobuf:"varint,1,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 GoodsID *uint32 `protobuf:"varint,2,opt,name=GoodsID" json:"GoodsID,omitempty"` // 商品id TradeRules []*TradeRule `protobuf:"bytes,3,rep,name=TradeRules" json:"TradeRules,omitempty"` // 交易规则 } func (x *TradeRuleInfoStruct) Reset() { *x = TradeRuleInfoStruct{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TradeRuleInfoStruct) String() string { return protoimpl.X.MessageStringOf(x) } func (*TradeRuleInfoStruct) ProtoMessage() {} func (x *TradeRuleInfoStruct) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 TradeRuleInfoStruct.ProtoReflect.Descriptor instead. func (*TradeRuleInfoStruct) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{1} } func (x *TradeRuleInfoStruct) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *TradeRuleInfoStruct) GetGoodsID() uint32 { if x != nil && x.GoodsID != nil { return *x.GoodsID } return 0 } func (x *TradeRuleInfoStruct) GetTradeRules() []*TradeRule { if x != nil { return x.TradeRules } return nil } // 日期类型定义 type Date struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DateStr *string `protobuf:"bytes,1,opt,name=DateStr" json:"DateStr,omitempty"` // 日期时间 } func (x *Date) Reset() { *x = Date{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Date) String() string { return protoimpl.X.MessageStringOf(x) } func (*Date) ProtoMessage() {} func (x *Date) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 Date.ProtoReflect.Descriptor instead. func (*Date) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{2} } func (x *Date) GetDateStr() string { if x != nil && x.DateStr != nil { return *x.DateStr } return "" } // ERMS2_ARBITRAGESTRATEGY 期现套利策略表 type Erms2ArbitrageStrategy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields //mkey: 1 ASApplyId *uint64 `protobuf:"varint,1,opt,name=ASApplyId" json:"ASApplyId,omitempty"` // 策略申请ID(702+Unix秒时间戳(10位)+xxxxxx) ASNo *string `protobuf:"bytes,2,opt,name=ASNo" json:"ASNo,omitempty"` // 策略编号 BizType *uint32 `protobuf:"varint,3,opt,name=BizType" json:"BizType,omitempty"` // 业务类型 - 1:正向套利 -1:反向套利 UserId *uint32 `protobuf:"varint,4,opt,name=UserId" json:"UserId,omitempty"` // 所属机构 DeliveryGoodsId *uint32 `protobuf:"varint,5,opt,name=DeliveryGoodsId" json:"DeliveryGoodsId,omitempty"` // 现货品种ID GoodsGroupId *uint32 `protobuf:"varint,6,opt,name=GoodsGroupId" json:"GoodsGroupId,omitempty"` // 期货品种ID SpotQuota *float64 `protobuf:"fixed64,7,opt,name=SpotQuota" json:"SpotQuota,omitempty"` // 现货额度 FutureQuote *float64 `protobuf:"fixed64,8,opt,name=FutureQuote" json:"FutureQuote,omitempty"` // 期货额度 ApplyBasis *float64 `protobuf:"fixed64,9,opt,name=ApplyBasis" json:"ApplyBasis,omitempty"` // 申请基差 StrategyStatus *uint32 `protobuf:"varint,10,opt,name=StrategyStatus" json:"StrategyStatus,omitempty"` // 策略状态 - 0:未结束 1:已结束 Remark *string `protobuf:"bytes,11,opt,name=Remark" json:"Remark,omitempty"` // 备注 MarketId *uint32 `protobuf:"varint,12,opt,name=MarketId" json:"MarketId,omitempty"` // 市场ID TradeDate *string `protobuf:"bytes,13,opt,name=TradeDate" json:"TradeDate,omitempty"` // 交易日(yyyyMMdd) CloseTradeDate *string `protobuf:"bytes,14,opt,name=CloseTradeDate" json:"CloseTradeDate,omitempty"` // 完结交易日(yyyyMMdd) UsedQuota *float64 `protobuf:"fixed64,15,opt,name=UsedQuota" json:"UsedQuota,omitempty"` // 已占用资金 FutureQty *float64 `protobuf:"fixed64,16,opt,name=FutureQty" json:"FutureQty,omitempty"` // 期货持仓数量 FutureAvgPrice *float64 `protobuf:"fixed64,17,opt,name=FutureAvgPrice" json:"FutureAvgPrice,omitempty"` // 期货建仓均价 FuturePL *float64 `protobuf:"fixed64,18,opt,name=FuturePL" json:"FuturePL,omitempty"` // 期货总盈亏[结算更新] PricedSpotQty *float64 `protobuf:"fixed64,19,opt,name=PricedSpotQty" json:"PricedSpotQty,omitempty"` // 已定价现货数量 PricedSpotQtyNoTax *float64 `protobuf:"fixed64,20,opt,name=PricedSpotQtyNoTax" json:"PricedSpotQtyNoTax,omitempty"` // 已定价现货不含税数量 SpotavgPrice *float64 `protobuf:"fixed64,21,opt,name=SpotavgPrice" json:"SpotavgPrice,omitempty"` // 现货均价 SpotPL *float64 `protobuf:"fixed64,22,opt,name=SpotPL" json:"SpotPL,omitempty"` // 现货总盈亏[结算更新] NetExposure *float64 `protobuf:"fixed64,23,opt,name=NetExposure" json:"NetExposure,omitempty"` // 单笔业务头寸净敞口 = 期货持仓数量 + 已定价现货不含税数量 NetExposureRate *float64 `protobuf:"fixed64,24,opt,name=NetExposureRate" json:"NetExposureRate,omitempty"` // 净敞口比例 - 0:未结束 = (NetExposure/PriceSpotQtyNoTax) ; 已结束为0 TotalPL *float64 `protobuf:"fixed64,25,opt,name=TotalPL" json:"TotalPL,omitempty"` // 业务合计损益 = FuturePL + SpotPL [结算更新] OpenBasis *float64 `protobuf:"fixed64,26,opt,name=OpenBasis" json:"OpenBasis,omitempty"` // 建仓基差 CurBasis *float64 `protobuf:"fixed64,27,opt,name=CurBasis" json:"CurBasis,omitempty"` // 当前基差[结算更新] BasisChangePL *float64 `protobuf:"fixed64,28,opt,name=BasisChangePL" json:"BasisChangePL,omitempty"` // 基差变动损益[结算更新] NetExposurePL *float64 `protobuf:"fixed64,29,opt,name=NetExposurePL" json:"NetExposurePL,omitempty"` // 净敞口损益 = TotalPL - BasisChangePL[结算更新] SpotUsedQuota *float64 `protobuf:"fixed64,30,opt,name=SpotUsedQuota" json:"SpotUsedQuota,omitempty"` // 现货占用资金 FutureOpenQty *float64 `protobuf:"fixed64,31,opt,name=FutureOpenQty" json:"FutureOpenQty,omitempty"` // 期货开仓数量 FutureOpenAmount *float64 `protobuf:"fixed64,32,opt,name=FutureOpenAmount" json:"FutureOpenAmount,omitempty"` // 期货开仓金额 FutureCloseQty *float64 `protobuf:"fixed64,33,opt,name=FutureCloseQty" json:"FutureCloseQty,omitempty"` // 期货平仓数量 FutureCloseAmount *float64 `protobuf:"fixed64,34,opt,name=FutureCloseAmount" json:"FutureCloseAmount,omitempty"` // 期货平仓金额 SpotBuyAmount *float64 `protobuf:"fixed64,35,opt,name=SpotBuyAmount" json:"SpotBuyAmount,omitempty"` // 现货采购金额 SpotBuyQty *float64 `protobuf:"fixed64,36,opt,name=SpotBuyQty" json:"SpotBuyQty,omitempty"` // 现货采购数量 SpotSellAmount *float64 `protobuf:"fixed64,37,opt,name=SpotSellAmount" json:"SpotSellAmount,omitempty"` // 现货销售金额 SpotSellQty *float64 `protobuf:"fixed64,38,opt,name=SpotSellQty" json:"SpotSellQty,omitempty"` // 现货销售数量 UpDatetime *Date `protobuf:"bytes,39,opt,name=UpDatetime" json:"UpDatetime,omitempty"` // 更新时间 ASName *string `protobuf:"bytes,40,opt,name=ASName" json:"ASName,omitempty"` // 策略名称 } func (x *Erms2ArbitrageStrategy) Reset() { *x = Erms2ArbitrageStrategy{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Erms2ArbitrageStrategy) String() string { return protoimpl.X.MessageStringOf(x) } func (*Erms2ArbitrageStrategy) ProtoMessage() {} func (x *Erms2ArbitrageStrategy) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 Erms2ArbitrageStrategy.ProtoReflect.Descriptor instead. func (*Erms2ArbitrageStrategy) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{3} } func (x *Erms2ArbitrageStrategy) GetASApplyId() uint64 { if x != nil && x.ASApplyId != nil { return *x.ASApplyId } return 0 } func (x *Erms2ArbitrageStrategy) GetASNo() string { if x != nil && x.ASNo != nil { return *x.ASNo } return "" } func (x *Erms2ArbitrageStrategy) GetBizType() uint32 { if x != nil && x.BizType != nil { return *x.BizType } return 0 } func (x *Erms2ArbitrageStrategy) GetUserId() uint32 { if x != nil && x.UserId != nil { return *x.UserId } return 0 } func (x *Erms2ArbitrageStrategy) GetDeliveryGoodsId() uint32 { if x != nil && x.DeliveryGoodsId != nil { return *x.DeliveryGoodsId } return 0 } func (x *Erms2ArbitrageStrategy) GetGoodsGroupId() uint32 { if x != nil && x.GoodsGroupId != nil { return *x.GoodsGroupId } return 0 } func (x *Erms2ArbitrageStrategy) GetSpotQuota() float64 { if x != nil && x.SpotQuota != nil { return *x.SpotQuota } return 0 } func (x *Erms2ArbitrageStrategy) GetFutureQuote() float64 { if x != nil && x.FutureQuote != nil { return *x.FutureQuote } return 0 } func (x *Erms2ArbitrageStrategy) GetApplyBasis() float64 { if x != nil && x.ApplyBasis != nil { return *x.ApplyBasis } return 0 } func (x *Erms2ArbitrageStrategy) GetStrategyStatus() uint32 { if x != nil && x.StrategyStatus != nil { return *x.StrategyStatus } return 0 } func (x *Erms2ArbitrageStrategy) GetRemark() string { if x != nil && x.Remark != nil { return *x.Remark } return "" } func (x *Erms2ArbitrageStrategy) GetMarketId() uint32 { if x != nil && x.MarketId != nil { return *x.MarketId } return 0 } func (x *Erms2ArbitrageStrategy) GetTradeDate() string { if x != nil && x.TradeDate != nil { return *x.TradeDate } return "" } func (x *Erms2ArbitrageStrategy) GetCloseTradeDate() string { if x != nil && x.CloseTradeDate != nil { return *x.CloseTradeDate } return "" } func (x *Erms2ArbitrageStrategy) GetUsedQuota() float64 { if x != nil && x.UsedQuota != nil { return *x.UsedQuota } return 0 } func (x *Erms2ArbitrageStrategy) GetFutureQty() float64 { if x != nil && x.FutureQty != nil { return *x.FutureQty } return 0 } func (x *Erms2ArbitrageStrategy) GetFutureAvgPrice() float64 { if x != nil && x.FutureAvgPrice != nil { return *x.FutureAvgPrice } return 0 } func (x *Erms2ArbitrageStrategy) GetFuturePL() float64 { if x != nil && x.FuturePL != nil { return *x.FuturePL } return 0 } func (x *Erms2ArbitrageStrategy) GetPricedSpotQty() float64 { if x != nil && x.PricedSpotQty != nil { return *x.PricedSpotQty } return 0 } func (x *Erms2ArbitrageStrategy) GetPricedSpotQtyNoTax() float64 { if x != nil && x.PricedSpotQtyNoTax != nil { return *x.PricedSpotQtyNoTax } return 0 } func (x *Erms2ArbitrageStrategy) GetSpotavgPrice() float64 { if x != nil && x.SpotavgPrice != nil { return *x.SpotavgPrice } return 0 } func (x *Erms2ArbitrageStrategy) GetSpotPL() float64 { if x != nil && x.SpotPL != nil { return *x.SpotPL } return 0 } func (x *Erms2ArbitrageStrategy) GetNetExposure() float64 { if x != nil && x.NetExposure != nil { return *x.NetExposure } return 0 } func (x *Erms2ArbitrageStrategy) GetNetExposureRate() float64 { if x != nil && x.NetExposureRate != nil { return *x.NetExposureRate } return 0 } func (x *Erms2ArbitrageStrategy) GetTotalPL() float64 { if x != nil && x.TotalPL != nil { return *x.TotalPL } return 0 } func (x *Erms2ArbitrageStrategy) GetOpenBasis() float64 { if x != nil && x.OpenBasis != nil { return *x.OpenBasis } return 0 } func (x *Erms2ArbitrageStrategy) GetCurBasis() float64 { if x != nil && x.CurBasis != nil { return *x.CurBasis } return 0 } func (x *Erms2ArbitrageStrategy) GetBasisChangePL() float64 { if x != nil && x.BasisChangePL != nil { return *x.BasisChangePL } return 0 } func (x *Erms2ArbitrageStrategy) GetNetExposurePL() float64 { if x != nil && x.NetExposurePL != nil { return *x.NetExposurePL } return 0 } func (x *Erms2ArbitrageStrategy) GetSpotUsedQuota() float64 { if x != nil && x.SpotUsedQuota != nil { return *x.SpotUsedQuota } return 0 } func (x *Erms2ArbitrageStrategy) GetFutureOpenQty() float64 { if x != nil && x.FutureOpenQty != nil { return *x.FutureOpenQty } return 0 } func (x *Erms2ArbitrageStrategy) GetFutureOpenAmount() float64 { if x != nil && x.FutureOpenAmount != nil { return *x.FutureOpenAmount } return 0 } func (x *Erms2ArbitrageStrategy) GetFutureCloseQty() float64 { if x != nil && x.FutureCloseQty != nil { return *x.FutureCloseQty } return 0 } func (x *Erms2ArbitrageStrategy) GetFutureCloseAmount() float64 { if x != nil && x.FutureCloseAmount != nil { return *x.FutureCloseAmount } return 0 } func (x *Erms2ArbitrageStrategy) GetSpotBuyAmount() float64 { if x != nil && x.SpotBuyAmount != nil { return *x.SpotBuyAmount } return 0 } func (x *Erms2ArbitrageStrategy) GetSpotBuyQty() float64 { if x != nil && x.SpotBuyQty != nil { return *x.SpotBuyQty } return 0 } func (x *Erms2ArbitrageStrategy) GetSpotSellAmount() float64 { if x != nil && x.SpotSellAmount != nil { return *x.SpotSellAmount } return 0 } func (x *Erms2ArbitrageStrategy) GetSpotSellQty() float64 { if x != nil && x.SpotSellQty != nil { return *x.SpotSellQty } return 0 } func (x *Erms2ArbitrageStrategy) GetUpDatetime() *Date { if x != nil { return x.UpDatetime } return nil } func (x *Erms2ArbitrageStrategy) GetASName() string { if x != nil && x.ASName != nil { return *x.ASName } return "" } // ERMCP_AREASPOT 企业现货表 type ErmcpAreaSpot struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields //mkey: 1 2 WrStandardID *uint32 `protobuf:"varint,1,opt,name=WrStandardID" json:"WrStandardID,omitempty"` // 现货商品ID AreaUserID *uint32 `protobuf:"varint,2,opt,name=AreaUserID" json:"AreaUserID,omitempty"` // 所属机构 OriBuyPlanQty *float64 `protobuf:"fixed64,3,opt,name=OriBuyPlanQty" json:"OriBuyPlanQty,omitempty"` // 期初采购计划数量 OriBuyPricedQty *float64 `protobuf:"fixed64,4,opt,name=OriBuyPricedQty" json:"OriBuyPricedQty,omitempty"` // 期初采购合同已定价数量 OriSellPlanQty *float64 `protobuf:"fixed64,5,opt,name=OriSellPlanQty" json:"OriSellPlanQty,omitempty"` // 期初销售计划数量 OriSellPricedQty *float64 `protobuf:"fixed64,6,opt,name=OriSellPricedQty" json:"OriSellPricedQty,omitempty"` // 期初销售合同已定价数量 BuyPlanQty *float64 `protobuf:"fixed64,7,opt,name=BuyPlanQty" json:"BuyPlanQty,omitempty"` // 采购计划数量 BuyPricedQty *float64 `protobuf:"fixed64,8,opt,name=BuyPricedQty" json:"BuyPricedQty,omitempty"` // 采购合同已定价数量 SellPlanQty *float64 `protobuf:"fixed64,9,opt,name=SellPlanQty" json:"SellPlanQty,omitempty"` // 销售计划数量 SellPricedQty *float64 `protobuf:"fixed64,10,opt,name=SellPricedQty" json:"SellPricedQty,omitempty"` // 销售合同已定价数量 TotalSpotQty *float64 `protobuf:"fixed64,11,opt,name=TotalSpotQty" json:"TotalSpotQty,omitempty"` // 现货头寸总量 = (销售计划数量 - 销售已定价数量) - (采购计划数量 - 采购已定价数量) UpdateTime *Date `protobuf:"bytes,12,opt,name=UpdateTime" json:"UpdateTime,omitempty"` // 更新时间 } func (x *ErmcpAreaSpot) Reset() { *x = ErmcpAreaSpot{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ErmcpAreaSpot) String() string { return protoimpl.X.MessageStringOf(x) } func (*ErmcpAreaSpot) ProtoMessage() {} func (x *ErmcpAreaSpot) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ErmcpAreaSpot.ProtoReflect.Descriptor instead. func (*ErmcpAreaSpot) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{4} } func (x *ErmcpAreaSpot) GetWrStandardID() uint32 { if x != nil && x.WrStandardID != nil { return *x.WrStandardID } return 0 } func (x *ErmcpAreaSpot) GetAreaUserID() uint32 { if x != nil && x.AreaUserID != nil { return *x.AreaUserID } return 0 } func (x *ErmcpAreaSpot) GetOriBuyPlanQty() float64 { if x != nil && x.OriBuyPlanQty != nil { return *x.OriBuyPlanQty } return 0 } func (x *ErmcpAreaSpot) GetOriBuyPricedQty() float64 { if x != nil && x.OriBuyPricedQty != nil { return *x.OriBuyPricedQty } return 0 } func (x *ErmcpAreaSpot) GetOriSellPlanQty() float64 { if x != nil && x.OriSellPlanQty != nil { return *x.OriSellPlanQty } return 0 } func (x *ErmcpAreaSpot) GetOriSellPricedQty() float64 { if x != nil && x.OriSellPricedQty != nil { return *x.OriSellPricedQty } return 0 } func (x *ErmcpAreaSpot) GetBuyPlanQty() float64 { if x != nil && x.BuyPlanQty != nil { return *x.BuyPlanQty } return 0 } func (x *ErmcpAreaSpot) GetBuyPricedQty() float64 { if x != nil && x.BuyPricedQty != nil { return *x.BuyPricedQty } return 0 } func (x *ErmcpAreaSpot) GetSellPlanQty() float64 { if x != nil && x.SellPlanQty != nil { return *x.SellPlanQty } return 0 } func (x *ErmcpAreaSpot) GetSellPricedQty() float64 { if x != nil && x.SellPricedQty != nil { return *x.SellPricedQty } return 0 } func (x *ErmcpAreaSpot) GetTotalSpotQty() float64 { if x != nil && x.TotalSpotQty != nil { return *x.TotalSpotQty } return 0 } func (x *ErmcpAreaSpot) GetUpdateTime() *Date { if x != nil { return x.UpdateTime } return nil } // ERMCP_AREAEXPOSURE 企业敞口表 type ErmcpAreaExposure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields //mkey: 1 2 //nkey: 1 MiddleGoodsID *uint32 `protobuf:"varint,1,opt,name=MiddleGoodsID" json:"MiddleGoodsID,omitempty"` // 套保品种 AreaUserID *uint32 `protobuf:"varint,2,opt,name=AreaUserID" json:"AreaUserID,omitempty"` // 所属机构 OriBuyPlanQty *float64 `protobuf:"fixed64,3,opt,name=OriBuyPlanQty" json:"OriBuyPlanQty,omitempty"` // 期初采购计划数量 OriBuyPricedQty *float64 `protobuf:"fixed64,4,opt,name=OriBuyPricedQty" json:"OriBuyPricedQty,omitempty"` // 期初采购合同已定价数量 OriSellPlanQty *float64 `protobuf:"fixed64,5,opt,name=OriSellPlanQty" json:"OriSellPlanQty,omitempty"` // 期初销售计划数量 OriSellPricedQty *float64 `protobuf:"fixed64,6,opt,name=OriSellPricedQty" json:"OriSellPricedQty,omitempty"` // 期初销售合同已定价数量 OriBuyFutureQty *uint64 `protobuf:"varint,7,opt,name=OriBuyFutureQty" json:"OriBuyFutureQty,omitempty"` // 期初买入期货数量 OriSellFutureQty *uint64 `protobuf:"varint,8,opt,name=OriSellFutureQty" json:"OriSellFutureQty,omitempty"` // 期初卖出期货数量 BuyPlanQty *float64 `protobuf:"fixed64,9,opt,name=BuyPlanQty" json:"BuyPlanQty,omitempty"` // 采购计划数量 BuyPricedQty *float64 `protobuf:"fixed64,10,opt,name=BuyPricedQty" json:"BuyPricedQty,omitempty"` // 采购合同已定价数量 SellPlanQty *float64 `protobuf:"fixed64,11,opt,name=SellPlanQty" json:"SellPlanQty,omitempty"` // 销售计划数量 SellPricedQty *float64 `protobuf:"fixed64,12,opt,name=SellPricedQty" json:"SellPricedQty,omitempty"` // 销售合同已定价数量 BuyFutureQty *float64 `protobuf:"fixed64,13,opt,name=BuyFutureQty" json:"BuyFutureQty,omitempty"` // 买入期货数量 SellFutureQty *float64 `protobuf:"fixed64,14,opt,name=SellFutureQty" json:"SellFutureQty,omitempty"` // 卖出期货数量 TotalSpotQty *float64 `protobuf:"fixed64,15,opt,name=TotalSpotQty" json:"TotalSpotQty,omitempty"` // 现货头寸总量 TotalFutureQty *float64 `protobuf:"fixed64,16,opt,name=TotalFutureQty" json:"TotalFutureQty,omitempty"` // 期货头寸总量 TotalExposure *float64 `protobuf:"fixed64,17,opt,name=TotalExposure" json:"TotalExposure,omitempty"` // 实时总敞口 TotalHedgeRatio *float64 `protobuf:"fixed64,18,opt,name=TotalHedgeRatio" json:"TotalHedgeRatio,omitempty"` // 总套保比率 TotalNeedHedgeQty *float64 `protobuf:"fixed64,19,opt,name=TotalNeedHedgeQty" json:"TotalNeedHedgeQty,omitempty"` // 应套保总量 NeedHedgeExposoure *float64 `protobuf:"fixed64,20,opt,name=NeedHedgeExposoure" json:"NeedHedgeExposoure,omitempty"` // 应套保敞口 NeedHedgeRatio *float64 `protobuf:"fixed64,21,opt,name=NeedHedgeRatio" json:"NeedHedgeRatio,omitempty"` // 应套保比率 UpdateTime *Date `protobuf:"bytes,22,opt,name=UpdateTime" json:"UpdateTime,omitempty"` // 更新时间 } func (x *ErmcpAreaExposure) Reset() { *x = ErmcpAreaExposure{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ErmcpAreaExposure) String() string { return protoimpl.X.MessageStringOf(x) } func (*ErmcpAreaExposure) ProtoMessage() {} func (x *ErmcpAreaExposure) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ErmcpAreaExposure.ProtoReflect.Descriptor instead. func (*ErmcpAreaExposure) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{5} } func (x *ErmcpAreaExposure) GetMiddleGoodsID() uint32 { if x != nil && x.MiddleGoodsID != nil { return *x.MiddleGoodsID } return 0 } func (x *ErmcpAreaExposure) GetAreaUserID() uint32 { if x != nil && x.AreaUserID != nil { return *x.AreaUserID } return 0 } func (x *ErmcpAreaExposure) GetOriBuyPlanQty() float64 { if x != nil && x.OriBuyPlanQty != nil { return *x.OriBuyPlanQty } return 0 } func (x *ErmcpAreaExposure) GetOriBuyPricedQty() float64 { if x != nil && x.OriBuyPricedQty != nil { return *x.OriBuyPricedQty } return 0 } func (x *ErmcpAreaExposure) GetOriSellPlanQty() float64 { if x != nil && x.OriSellPlanQty != nil { return *x.OriSellPlanQty } return 0 } func (x *ErmcpAreaExposure) GetOriSellPricedQty() float64 { if x != nil && x.OriSellPricedQty != nil { return *x.OriSellPricedQty } return 0 } func (x *ErmcpAreaExposure) GetOriBuyFutureQty() uint64 { if x != nil && x.OriBuyFutureQty != nil { return *x.OriBuyFutureQty } return 0 } func (x *ErmcpAreaExposure) GetOriSellFutureQty() uint64 { if x != nil && x.OriSellFutureQty != nil { return *x.OriSellFutureQty } return 0 } func (x *ErmcpAreaExposure) GetBuyPlanQty() float64 { if x != nil && x.BuyPlanQty != nil { return *x.BuyPlanQty } return 0 } func (x *ErmcpAreaExposure) GetBuyPricedQty() float64 { if x != nil && x.BuyPricedQty != nil { return *x.BuyPricedQty } return 0 } func (x *ErmcpAreaExposure) GetSellPlanQty() float64 { if x != nil && x.SellPlanQty != nil { return *x.SellPlanQty } return 0 } func (x *ErmcpAreaExposure) GetSellPricedQty() float64 { if x != nil && x.SellPricedQty != nil { return *x.SellPricedQty } return 0 } func (x *ErmcpAreaExposure) GetBuyFutureQty() float64 { if x != nil && x.BuyFutureQty != nil { return *x.BuyFutureQty } return 0 } func (x *ErmcpAreaExposure) GetSellFutureQty() float64 { if x != nil && x.SellFutureQty != nil { return *x.SellFutureQty } return 0 } func (x *ErmcpAreaExposure) GetTotalSpotQty() float64 { if x != nil && x.TotalSpotQty != nil { return *x.TotalSpotQty } return 0 } func (x *ErmcpAreaExposure) GetTotalFutureQty() float64 { if x != nil && x.TotalFutureQty != nil { return *x.TotalFutureQty } return 0 } func (x *ErmcpAreaExposure) GetTotalExposure() float64 { if x != nil && x.TotalExposure != nil { return *x.TotalExposure } return 0 } func (x *ErmcpAreaExposure) GetTotalHedgeRatio() float64 { if x != nil && x.TotalHedgeRatio != nil { return *x.TotalHedgeRatio } return 0 } func (x *ErmcpAreaExposure) GetTotalNeedHedgeQty() float64 { if x != nil && x.TotalNeedHedgeQty != nil { return *x.TotalNeedHedgeQty } return 0 } func (x *ErmcpAreaExposure) GetNeedHedgeExposoure() float64 { if x != nil && x.NeedHedgeExposoure != nil { return *x.NeedHedgeExposoure } return 0 } func (x *ErmcpAreaExposure) GetNeedHedgeRatio() float64 { if x != nil && x.NeedHedgeRatio != nil { return *x.NeedHedgeRatio } return 0 } func (x *ErmcpAreaExposure) GetUpdateTime() *Date { if x != nil { return x.UpdateTime } return nil } // GoodsMarginCfgStruct 商品保证金配置 type GoodsMarginCfgStruct struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GoodsID *uint32 `protobuf:"varint,1,opt,name=GoodsID" json:"GoodsID,omitempty"` // 商品ID CustomerTypeID *uint32 `protobuf:"varint,2,opt,name=CustomerTypeID" json:"CustomerTypeID,omitempty"` // 投资者客户类型 MarginAlgorithm *uint32 `protobuf:"varint,3,opt,name=MarginAlgorithm" json:"MarginAlgorithm,omitempty"` // 保证金计算方式 MarketMarginValue *float64 `protobuf:"fixed64,4,opt,name=MarketMarginValue" json:"MarketMarginValue,omitempty"` // 即市保证金值 ReckonMarginValue *float64 `protobuf:"fixed64,5,opt,name=ReckonMarginValue" json:"ReckonMarginValue,omitempty"` // 结算保证金值 LockMarginValue *float64 `protobuf:"fixed64,6,opt,name=LockMarginValue" json:"LockMarginValue,omitempty"` // 锁仓保证金 RealMarginValue *float64 `protobuf:"fixed64,7,opt,name=RealMarginValue" json:"RealMarginValue,omitempty"` // 实付比例 RealMarginAlgorithm *uint32 `protobuf:"varint,8,opt,name=RealMarginAlgorithm" json:"RealMarginAlgorithm,omitempty"` // 实付保证金计算方式 IsDefault *uint32 `protobuf:"varint,9,opt,name=IsDefault" json:"IsDefault,omitempty"` // 是否默认标志位 } func (x *GoodsMarginCfgStruct) Reset() { *x = GoodsMarginCfgStruct{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoodsMarginCfgStruct) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoodsMarginCfgStruct) ProtoMessage() {} func (x *GoodsMarginCfgStruct) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 GoodsMarginCfgStruct.ProtoReflect.Descriptor instead. func (*GoodsMarginCfgStruct) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{6} } func (x *GoodsMarginCfgStruct) GetGoodsID() uint32 { if x != nil && x.GoodsID != nil { return *x.GoodsID } return 0 } func (x *GoodsMarginCfgStruct) GetCustomerTypeID() uint32 { if x != nil && x.CustomerTypeID != nil { return *x.CustomerTypeID } return 0 } func (x *GoodsMarginCfgStruct) GetMarginAlgorithm() uint32 { if x != nil && x.MarginAlgorithm != nil { return *x.MarginAlgorithm } return 0 } func (x *GoodsMarginCfgStruct) GetMarketMarginValue() float64 { if x != nil && x.MarketMarginValue != nil { return *x.MarketMarginValue } return 0 } func (x *GoodsMarginCfgStruct) GetReckonMarginValue() float64 { if x != nil && x.ReckonMarginValue != nil { return *x.ReckonMarginValue } return 0 } func (x *GoodsMarginCfgStruct) GetLockMarginValue() float64 { if x != nil && x.LockMarginValue != nil { return *x.LockMarginValue } return 0 } func (x *GoodsMarginCfgStruct) GetRealMarginValue() float64 { if x != nil && x.RealMarginValue != nil { return *x.RealMarginValue } return 0 } func (x *GoodsMarginCfgStruct) GetRealMarginAlgorithm() uint32 { if x != nil && x.RealMarginAlgorithm != nil { return *x.RealMarginAlgorithm } return 0 } func (x *GoodsMarginCfgStruct) GetIsDefault() uint32 { if x != nil && x.IsDefault != nil { return *x.IsDefault } return 0 } var File_mtp2_proto protoreflect.FileDescriptor var file_mtp2_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x6d, 0x74, 0x70, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x43, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7c, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0a, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x20, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x22, 0xea, 0x0a, 0x0a, 0x16, 0x45, 0x72, 0x6d, 0x73, 0x32, 0x41, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x53, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x53, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x41, 0x53, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x41, 0x53, 0x4e, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x42, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x42, 0x61, 0x73, 0x69, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x42, 0x61, 0x73, 0x69, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x55, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x41, 0x76, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x41, 0x76, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x50, 0x4c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x50, 0x4c, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x4e, 0x6f, 0x54, 0x61, 0x78, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x4e, 0x6f, 0x54, 0x61, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x70, 0x6f, 0x74, 0x61, 0x76, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x53, 0x70, 0x6f, 0x74, 0x61, 0x76, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x70, 0x6f, 0x74, 0x50, 0x4c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x53, 0x70, 0x6f, 0x74, 0x50, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x4e, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4e, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x4e, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x4c, 0x18, 0x19, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x4c, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x73, 0x69, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x4f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x73, 0x69, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75, 0x72, 0x42, 0x61, 0x73, 0x69, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x43, 0x75, 0x72, 0x42, 0x61, 0x73, 0x69, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x61, 0x73, 0x69, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x4c, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x42, 0x61, 0x73, 0x69, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x4c, 0x12, 0x24, 0x0a, 0x0d, 0x4e, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x50, 0x4c, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x4e, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x50, 0x4c, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x70, 0x6f, 0x74, 0x55, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x53, 0x70, 0x6f, 0x74, 0x55, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x20, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x51, 0x74, 0x79, 0x18, 0x21, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x51, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x70, 0x6f, 0x74, 0x42, 0x75, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x53, 0x70, 0x6f, 0x74, 0x42, 0x75, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x70, 0x6f, 0x74, 0x42, 0x75, 0x79, 0x51, 0x74, 0x79, 0x18, 0x24, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x53, 0x70, 0x6f, 0x74, 0x42, 0x75, 0x79, 0x51, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x70, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x53, 0x70, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x70, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x6c, 0x51, 0x74, 0x79, 0x18, 0x26, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x53, 0x70, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x6c, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0a, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x41, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd1, 0x03, 0x0a, 0x0d, 0x45, 0x72, 0x6d, 0x63, 0x70, 0x41, 0x72, 0x65, 0x61, 0x53, 0x70, 0x6f, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x72, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x57, 0x72, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xf5, 0x06, 0x0a, 0x11, 0x45, 0x72, 0x6d, 0x63, 0x70, 0x41, 0x72, 0x65, 0x61, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x75, 0x79, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x42, 0x75, 0x79, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x48, 0x65, 0x64, 0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x48, 0x65, 0x64, 0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65, 0x51, 0x74, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65, 0x51, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x28, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x82, 0x03, 0x0a, 0x14, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x43, 0x66, 0x67, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x52, 0x65, 0x63, 0x6b, 0x6f, 0x6e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x52, 0x65, 0x63, 0x6b, 0x6f, 0x6e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4c, 0x6f, 0x63, 0x6b, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x4c, 0x6f, 0x63, 0x6b, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x52, 0x65, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x52, 0x65, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x52, 0x65, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x49, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, } var ( file_mtp2_proto_rawDescOnce sync.Once file_mtp2_proto_rawDescData = file_mtp2_proto_rawDesc ) func file_mtp2_proto_rawDescGZIP() []byte { file_mtp2_proto_rawDescOnce.Do(func() { file_mtp2_proto_rawDescData = protoimpl.X.CompressGZIP(file_mtp2_proto_rawDescData) }) return file_mtp2_proto_rawDescData } var file_mtp2_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_mtp2_proto_goTypes = []interface{}{ (*TradeRule)(nil), // 0: pb.TradeRule (*TradeRuleInfoStruct)(nil), // 1: pb.TradeRuleInfoStruct (*Date)(nil), // 2: pb.Date (*Erms2ArbitrageStrategy)(nil), // 3: pb.Erms2ArbitrageStrategy (*ErmcpAreaSpot)(nil), // 4: pb.ErmcpAreaSpot (*ErmcpAreaExposure)(nil), // 5: pb.ErmcpAreaExposure (*GoodsMarginCfgStruct)(nil), // 6: pb.GoodsMarginCfgStruct } var file_mtp2_proto_depIdxs = []int32{ 0, // 0: pb.TradeRuleInfoStruct.TradeRules:type_name -> pb.TradeRule 2, // 1: pb.Erms2ArbitrageStrategy.UpDatetime:type_name -> pb.Date 2, // 2: pb.ErmcpAreaSpot.UpdateTime:type_name -> pb.Date 2, // 3: pb.ErmcpAreaExposure.UpdateTime:type_name -> pb.Date 4, // [4:4] is the sub-list for method output_type 4, // [4:4] is the sub-list for method input_type 4, // [4:4] is the sub-list for extension type_name 4, // [4:4] is the sub-list for extension extendee 0, // [0:4] is the sub-list for field type_name } func init() { file_mtp2_proto_init() } func file_mtp2_proto_init() { if File_mtp2_proto != nil { return } if !protoimpl.UnsafeEnabled { file_mtp2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TradeRule); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TradeRuleInfoStruct); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Date); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Erms2ArbitrageStrategy); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ErmcpAreaSpot); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ErmcpAreaExposure); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoodsMarginCfgStruct); 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_mtp2_proto_rawDesc, NumEnums: 0, NumMessages: 7, NumExtensions: 0, NumServices: 0, }, GoTypes: file_mtp2_proto_goTypes, DependencyIndexes: file_mtp2_proto_depIdxs, MessageInfos: file_mtp2_proto_msgTypes, }.Build() File_mtp2_proto = out.File file_mtp2_proto_rawDesc = nil file_mtp2_proto_goTypes = nil file_mtp2_proto_depIdxs = nil }