use crate::common::time::Timestamp;
#[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<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 c: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
pub struct Greeks {
pub delta: Option<f64>,
pub gamma: Option<f64>,
pub rho: Option<f64>,
pub theta: Option<f64>,
pub vega: Option<f64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
#[allow(non_snake_case)]
pub struct Snapshot {
pub latestTrade: Option<Trade>,
pub latestQuote: Option<Quote>,
pub minuteBar: Option<Bar>,
pub dailyBar: Option<Bar>,
pub prevDailyBar: Option<Bar>,
pub greeks: Option<Greeks>,
pub impliedVolatility: Option<f64>,
}