use serde::Deserialize;
use crate::model::NumberString;
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct RiskState {
#[serde(default)]
pub at_risk: String,
#[serde(default)]
pub ts: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct SimulatedMargin {
#[serde(default)]
pub imr: NumberString,
#[serde(default)]
pub mmr: NumberString,
#[serde(default)]
pub mr: NumberString,
#[serde(default)]
pub notional_usd: NumberString,
#[serde(default)]
pub details: Vec<SimulatedMarginDetail>,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct SimulatedMarginDetail {
#[serde(default)]
pub inst_id: String,
#[serde(default)]
pub pos: NumberString,
#[serde(default)]
pub imr: NumberString,
#[serde(default)]
pub mmr: NumberString,
#[serde(default)]
pub upl: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct Greek {
#[serde(default)]
pub ccy: String,
#[serde(rename = "deltaBS", default)]
pub delta_bs: NumberString,
#[serde(rename = "deltaPA", default)]
pub delta_pa: NumberString,
#[serde(rename = "gammaBS", default)]
pub gamma_bs: NumberString,
#[serde(rename = "thetaBS", default)]
pub theta_bs: NumberString,
#[serde(rename = "vegaBS", default)]
pub vega_bs: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct AccountPositionTier {
#[serde(default)]
pub inst_type: String,
#[serde(default)]
pub uly: String,
#[serde(default)]
pub inst_family: String,
#[serde(default)]
pub pos_type: String,
#[serde(default)]
pub min_sz: NumberString,
#[serde(default)]
pub max_sz: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct PositionBuilderResult {
#[serde(default)]
pub acct_lv: String,
#[serde(default)]
pub adj_eq: NumberString,
#[serde(default)]
pub imr: NumberString,
#[serde(default)]
pub mmr: NumberString,
#[serde(default)]
pub mr: NumberString,
#[serde(default)]
pub pos_data: Vec<PositionBuilderPosition>,
#[serde(default)]
pub asset_data: Vec<PositionBuilderAsset>,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct PositionBuilderPosition {
#[serde(default)]
pub inst_type: String,
#[serde(default)]
pub inst_id: String,
#[serde(default)]
pub pos: NumberString,
#[serde(default)]
pub avg_px: NumberString,
#[serde(default)]
pub upl: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct PositionBuilderAsset {
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub eq: NumberString,
}