use crate::common::time::Timestamp;
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
pub struct Auction {
pub t: Option<Timestamp>,
pub x: Option<String>,
pub p: Option<f64>,
pub s: Option<u64>,
pub c: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
pub struct DailyAuction {
pub d: Option<String>,
pub o: Vec<Auction>,
pub c: Vec<Auction>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
pub struct Bar {
pub t: Option<Timestamp>,
pub o: Option<f64>,
pub h: Option<f64>,
pub l: Option<f64>,
pub c: Option<f64>,
pub v: Option<u64>,
pub n: Option<u64>,
pub vw: Option<f64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
pub struct Quote {
pub t: Option<Timestamp>,
pub bx: Option<String>,
pub bp: Option<f64>,
pub bs: Option<u64>,
pub ax: Option<String>,
pub ap: Option<f64>,
#[serde(rename = "as")]
pub r#as: Option<u64>,
pub c: Option<Vec<String>>,
pub z: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
pub struct Trade {
pub t: Option<Timestamp>,
pub x: Option<String>,
pub p: Option<f64>,
pub s: Option<u64>,
pub i: Option<u64>,
pub c: Option<Vec<String>>,
pub z: Option<String>,
pub u: Option<String>,
}
#[allow(non_snake_case)]
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
pub struct Snapshot {
pub latestTrade: Option<Trade>,
pub latestQuote: Option<Quote>,
pub minuteBar: Option<Bar>,
pub dailyBar: Option<Bar>,
pub prevDailyBar: Option<Bar>,
}