use serde::Deserialize;
#[derive(Debug, Clone, Deserialize)]
pub struct MarginWindowMeasure {
pub margin_window_type: String,
pub margin_level: String,
pub initial_margin: String,
pub maintenance_margin: String,
pub liquidation_buffer_percentage: String,
pub total_hold: String,
pub futures_buying_power: String,
}
#[derive(Debug, Clone, Deserialize)]
pub struct FcmBalanceSummary {
pub futures_buying_power: String,
pub total_usd_balance: String,
pub cbi_usd_balance: String,
pub cfm_usd_balance: String,
pub total_open_orders_hold_amount: String,
pub unrealized_pnl: String,
pub daily_realized_pnl: String,
pub initial_margin: String,
pub available_margin: String,
pub liquidation_threshold: String,
pub liquidation_buffer_amount: String,
pub liquidation_buffer_percentage: String,
pub intraday_margin_window_measure: MarginWindowMeasure,
pub overnight_margin_window_measure: MarginWindowMeasure,
}
#[derive(Debug, Clone, Deserialize)]
pub struct FuturesBalanceEvent {
#[serde(rename = "type")]
pub event_type: String,
pub fcm_balance_summary: FcmBalanceSummary,
}
#[derive(Debug, Clone, Deserialize)]
pub struct FuturesBalanceMessage {
pub channel: String,
pub client_id: String,
pub timestamp: String,
pub sequence_num: i64,
pub events: Vec<FuturesBalanceEvent>,
}