use serde::Deserialize;
#[derive(Deserialize, Debug, Clone)]
pub struct KrakenTradeResponse {
pub channel: String,
#[serde(rename = "type")]
pub ty: String,
pub data: Vec<KrakenTradeData>,
}
#[derive(Deserialize, Debug, Clone)]
pub struct KrakenTradeData {
pub symbol: String,
pub side: String,
pub price: f64,
pub qty: f64,
#[serde(default)]
pub ord_type: String,
pub trade_id: u64,
pub timestamp: String,
}
impl KrakenTradeData {
pub fn timestamp_ms(&self) -> u64 {
chrono::DateTime::parse_from_rfc3339(&self.timestamp)
.map(|dt| dt.timestamp_millis() as u64)
.unwrap_or(0)
}
}