syntax = "proto3";

package market.v2.trade;

message Response {
  int32 code = 1;
  string msg = 2;
  string status = 3;
  int64 ts = 4;
  string ch = 5;
  KlineList klinelist = 21;
  TradeDepthVO tradedepthvo = 22;
  TradeDetailList tradedetaillist = 23;
  TradeAreaPair tradeareapair = 24;
  MainPair mainpair = 25;
  RecommendPair recommendpair = 26;
  UpPair uppair = 27;
  AmtPair amtpair = 28;
  StarPair starpair = 29;
  TradeTickerVO tradetickervo = 30;
  EntrustVO entrustvo = 31;
  UserAssetBalance userassetbalance = 32;
  MarketTickerList markettickerlist = 33;
  MarginCrossAssetVO margincrossassetvo = 35;
  MarginIsolatedAssetVO marginisolatedassetvo = 36;
  NewListingPair newlistingpair = 37;
  Chgdistributions chgdistributions = 38;
  MarketZones marketzones = 39;
  KlineOrders klineorders = 40;
  NotificationPush notificationpush = 41;
  TradeHotListing tradehotlisting = 42;
  CtcGoingOrderNum ctcgoingordernum = 43;
  MultiChange multichange = 44;
  Heatmap heatmap = 45;
  DownPair downpair = 46;
  HeatVol heatvol = 47;
  CurrencyRate currencyrate = 48;
  MarketMonit marketmonit = 34;
}

message KlineList {}

message TradeDepthVO {
  // 买方深度信息
  message Bids {
    // Bids的具体字段未在提供的JavaScript代码中指定，需要根据实际序列化逻辑定义。
  }

  // 卖方深度信息
  message Asks {
    // 卖方深度数据
    message AskData {
      // AskData的具体字段未在提供的JavaScript代码中指定，需要根据实际序列化逻辑定义。
    }

    // 卖方深度数据列表
    repeated AskData askdataList = 1;
  }

  // 买方深度信息
  Bids bids = 1;

  // 卖方深度信息
  Asks asks = 2;

  // 最新成交价格
  string last = 3;

  // 开盘价格
  string open = 4;

  // CNY价格
  string cny = 5;

  // 净值
  string netvalue = 6;

  // 买入或卖出的CNY价格
  string buyorsellcnyprice = 7;

  // 是否转换为法定货币
  bool isfiatconvert = 8;

  // 是否显示风险提示
  bool isrisktip = 9;
}

message TradeDetailList {
  repeated TradeDetailInfo list = 1;
}
// 交易详情列表
message TradeDetailInfo {
  int64 tradeid = 1;      // 交易ID
  string amount = 2;      // 数量
  string ts = 3;          // 时间戳
  string price = 4;       // 价格
  string direction = 5;   // 方向
}

message TradeAreaPair {
  repeated TradeAreaPairInfo listList = 1;
}

message TradeAreaPairInfo {
  int32 tradeid = 1;
  string cny = 2;
  string buy = 3;
  string lever = 4;
  string sell = 5;
  string last = 6;
  string volume = 7;
  string change = 8;
  string high = 9;
  string low = 10;
  string isopen = 11;
  string open = 12;
  string amount = 13;
  bool isfiatconvert = 14;
}

// 定义mainpair中的消息类型
message MainPair {
  repeated MainPairInfo listList = 1; // 使用repeated关键字表示数组
}

// 定义PairInfo消息类型
message MainPairInfo {
  int32 tradeId = 1;
  string cny = 2;
  string totalamount = 3;
  string last = 4;
  string volume = 5;
  string change = 6;
}


message RecommendPair {
  repeated RecommendPairInfo listList = 1; // 使用repeated关键字表示数组
}

// 定义PairInfo消息类型
message RecommendPairInfo {
  int32 tradeId = 1;
  string cny = 2; // 假设cny是浮点数
  string totalamount = 3; // 假设totalamount是浮点数
  string last = 4; // 假设last是浮点数
  string volume = 5; // 假设volume是浮点数
  string change = 6; // 假设change是浮点数
}


message UpPair {}

message AmtPair {}

message StarPair {}

message TradeTickerVO {
  int32 tradeid = 1;
  string high = 2;
  string open = 3;
  string low = 4;
  string close = 5;
  string volume = 6;
  string change = 7;
  string cny = 8;
  string last = 9;
  string netvalue = 10;
  string amount = 11;
  bool isfiatconvert = 12;
}

message EntrustVO {
  int64 id = 1;
  int32 tradeid = 2;
  int64 entrusttime = 3;
  string buycoinshortname = 4;
  string sellcoinshortname = 5;
  int32 type = 6;
  int32 direction = 7;
  int32 matchtype = 8;
  string pricetype = 9;
  string entrustprice = 10;
  string count = 11;
  string successcount = 12;
  string averageprice = 13;
  int32 status = 14;
  bool history = 15;
  int64 pushversion = 16;
  bool remove = 17;
  string amount = 18;
  string marketunit = 19;
  string funds = 20;
  string leftfunds = 21;
  string triggerprice = 22;
  string marginmode = 23;
  string margintrademode = 24;
  bool forcedliquidation = 25;
  string remark = 26;
  string successamount = 27;
  int32 tradearea = 28;
  string fee = 29;
  string trailingdelta = 30;
  string activationprice = 31;
  int64 activationtime = 32;
  int32 triggersign = 33;
  string orderid = 34;
}

message UserAssetBalance {
  string usdtassets = 1;
  string usdtavailableassets = 2;
  string totalassets = 3;
  string btcassets = 4;
  repeated  UserWallet userwalletlist = 5;
}

message UserWallet {
  repeated UserWalletPairInfo listList = 1;
}
message UserWalletPairInfo{
  int32 coinid = 1;
  string totalAmount = 2;
  string total = 3;
  string frozen = 4;
  string borrow = 5;
  string coinname = 6;
  string shortName = 7;
  bool withdraw = 8;
  bool recharge = 9;
  string usdtprice = 10;
  string price = 11;
  int32 sortid = 12;
}

message MarketTickerList {}

message MarketMonit {
  int64 id = 1;
  string indexkey = 2;
  int32 scope = 3;
  int32 tradeid = 4;
  string tradecode = 5;
  string indexbase = 6;
  string quote = 7;
  string lever = 8;
  string chg = 9;
  string last = 10;
  string cny = 11;
  string createtime = 12;
  string biztype = 13;
  string contracttype = 14;
  int64 liquidationdate = 15;
  int64 movetime = 16;
}

message MarginCrossAssetVO {}

message MarginIsolatedAssetVO {}

message NewListingPair {}

message Chgdistributions {
  int64 upnum = 1;
  int64 flatnum = 2;
  int64 downnum = 3;
  repeated DistributionPb list = 4;
}

message DistributionPb {
  string name = 1;
  int32 chgType = 2;
  int64 num = 3;
}

message MarketZones {}

message KlineOrders {}

message NotificationPush {
  int32 userid = 1;
  string title = 2;
  string body = 3;
  int32 badge = 4;
  string group = 5;
  map<string, string> extrasMap = 6;
}

message TradeHotListing {}

message CtcGoingOrderNum {
  int32 ordernum = 1;
}

message MultiChange {}

message Heatmap {}

message DownPair {}

message HeatVol {}

message CurrencyRate {}
