use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
pub struct TickerOkxResDto {
#[serde(rename = "instType")]
pub inst_type: String,
#[serde(rename = "instId")]
pub inst_id: String,
pub last: String,
#[serde(rename = "lastSz")]
pub last_sz: String,
#[serde(rename = "askPx")]
pub ask_px: String,
#[serde(rename = "askSz")]
pub ask_sz: String,
#[serde(rename = "bidPx")]
pub bid_px: String,
#[serde(rename = "bidSz")]
pub bid_sz: String,
pub open24h: String,
pub high24h: String,
pub low24h: String,
#[serde(rename = "volCcy24h")]
pub vol_ccy24h: String,
pub vol24h: String,
#[serde(rename = "sodUtc0")]
pub sod_utc0: String,
#[serde(rename = "sodUtc8")]
pub sod_utc8: String,
pub ts: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CandleOkxRespDto {
pub ts: String,
pub o: String,
pub h: String,
pub l: String,
pub c: String,
pub v: String,
pub vol_ccy: String,
pub vol_ccy_quote: String,
pub confirm: String,
}
impl CandleOkxRespDto {
pub fn from_vec(v: Vec<String>) -> Self {
Self {
ts: v[0].clone(),
o: v[1].clone(),
h: v[2].clone(),
l: v[3].clone(),
c: v[4].clone(),
v: v[5].clone(),
vol_ccy: v[6].clone(),
vol_ccy_quote: v[7].clone(),
confirm: v[8].clone(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Depth {
#[serde(rename = "instId")]
pub inst_id: String,
pub asks: Vec<Vec<String>>,
pub bids: Vec<Vec<String>>,
pub ts: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct InstrumentOkxResDto {
#[serde(rename = "instType")]
pub inst_type: String,
#[serde(rename = "instId")]
pub inst_id: String,
#[serde(rename = "uly", skip_serializing_if = "Option::is_none")]
pub underlying: Option<String>,
#[serde(rename = "baseCcy", skip_serializing_if = "Option::is_none")]
pub base_currency: Option<String>,
#[serde(rename = "quoteCcy", skip_serializing_if = "Option::is_none")]
pub quote_currency: Option<String>,
#[serde(rename = "tickSz")]
pub tick_size: String,
#[serde(rename = "lotSz")]
pub lot_size: String,
#[serde(rename = "minSz")]
pub min_size: String,
pub state: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TradeOkxResDto {
#[serde(rename = "instId")]
pub inst_id: String,
#[serde(rename = "tradeId")]
pub trade_id: String,
#[serde(rename = "px")]
pub px: String,
#[serde(rename = "sz")]
pub sz: String,
pub side: String,
pub ts: String,
}