package models

var (
	Pre24hrTicker = "24hrTicker" //ticker推送前缀,推送格式:<symbol>@24hrTicker
	PreTrade      = "trade"      //最新成交推送前缀 <symbol>@trade
	PreKline      = "kline"      //k线推送前缀 <symbol>@kline_<interval>
	PreDepth      = "depth"      //深度推送前缀 <symbol>@depth<levels>
	PreDepth35    = "depth35"    //35深度推送前缀 <symbol>@depth<levels>
	PreMarkPrice  = "markPrice"  //最新标记价 <symbol>@markPrice
	TickerArr     = "ticker@arr" //所有24小时行情
	PreErr        = "err"
)

type PushFive struct {
	Type   int        `json:"type"`   //类型
	Num    string     `json:"num"`    //买卖总数量
	Symbol string     `json:"symbol"` //交易对，比如BTC-USDT
	Data   [][]string `json:"data"`   //数据
}

type PushAll struct {
	Event string     `json:"e"`
	Data  []WsTicker `json:"data"`
}
type PushKline struct {
	Type   int        `json:"type"`
	Symbol string     `json:"symbol"` //交易对，比如BTC-USDT
	Data   [][]string `json:"data"`
}

type WsWsTickerBase struct {
	Event  string   `json:"e"`
	Symbol string   `json:"s"`    //交易对，比如BTC-USDT
	Data   WsTicker `json:"data"` //
}

// WsTicker 24小时行情推送
type WsTicker struct {
	E           int64  `json:"-"`   //时间戳
	Symbol      string `json:"s"`   //symbol,BTC-USDT
	Close       string `json:"c"`   //收盘价格，也是最新价格
	Open        string `json:"o"`   //开盘价格
	High        string `json:"h"`   //最高价格
	Low         string `json:"l"`   //最低价格
	Volume      string `json:"v"`   //成交量
	QuoteVolume string `json:"q"`   //成交额
	Change      string `json:"chg"` //涨幅
	RatePrice   string `json:"rp"`  //最新价格等于多少usdt

}

type WsBase struct {
	Event  string      `json:"e"`
	Symbol string      `json:"s"`    //交易对，比如BTC-USDT
	Data   interface{} `json:"data"` //
}

type WsTrade struct {
	Price    string `json:"p"` //成交价格
	Quantity string `json:"q"` //成交数量
	DealTime string `json:"t"` //时间撮
	Market   string `json:"m"` //1是买方主动触发交易，2卖方主动触发交易
}

type BaseKline struct {
	Event  string  `json:"e"`    //事件
	Symbol string  `json:"s"`    //交易对，比如BTC-USDT
	Data   WsKline `json:"data"` //k线数据
}

type WsKline struct {
	Line        string `json:"i"`    // K线间隔,比如1m
	LineTime    string `json:"t"`    // k线时间撮
	Open        string `json:"o"`    // 这根K线期间第一笔成交价
	Close       string `json:"c"`    // 这根K线期间末一笔成交价
	High        string `json:"h"`    // 这根K线期间最高成交价
	Low         string `json:"l"`    // 这根K线期间最低成交价
	Volume      string `json:"v"`    // 这根K线期间成交量
	QuoteVolume string `json:"q"`    // 这根K线期间成交额
	Chg         string `json:"chg"`  // 涨幅
	Ampl        string `json:"ampl"` // 震幅
}

type WsFive struct {
	Event  string     `json:"e"`   //事件
	Symbol string     `json:"s"`   //比如BTC-USDT
	Bid    [][]string `json:"bid"` //买盘口
	Ask    [][]string `json:"ask"` //卖盘口
}

type WsMarkPrice struct {
	Event  string                 `json:"e"`
	Symbol string                 `json:"s"`
	Data   map[string]interface{} `json:"data"`
}
