use serde::Deserialize;
use crate::model::{InstType, NumberString, PositionSide, TradeMode};
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct AccountConfig {
#[serde(default)]
pub uid: String,
#[serde(default)]
pub acct_lv: String,
#[serde(default)]
pub pos_mode: String,
#[serde(default)]
pub greeks_type: String,
#[serde(default)]
pub auto_loan: bool,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct SetPositionModeResult {
#[serde(default)]
pub pos_mode: String,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct LeverageInfo {
#[serde(default)]
pub inst_id: String,
pub mgn_mode: TradeMode,
pub pos_side: PositionSide,
#[serde(default)]
pub lever: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct MaxOrderSize {
pub inst_id: String,
#[serde(default)]
pub max_buy: NumberString,
#[serde(default)]
pub max_sell: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct MaxAvailableSize {
pub inst_id: String,
#[serde(default)]
pub avail_buy: NumberString,
#[serde(default)]
pub avail_sell: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct FeeRate {
pub inst_type: InstType,
#[serde(default)]
pub inst_id: String,
#[serde(default)]
pub category: String,
#[serde(default)]
pub maker: NumberString,
#[serde(default)]
pub taker: NumberString,
#[serde(default)]
pub ts: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct MaxWithdrawal {
pub ccy: String,
#[serde(default)]
pub max_wd: NumberString,
#[serde(default)]
pub max_wd_ex: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct AdjustMarginResult {
#[serde(default)]
pub inst_id: String,
#[serde(default)]
pub pos_side: String,
#[serde(default)]
pub amt: NumberString,
#[serde(rename = "type", default)]
pub adjustment_type: String,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct AccountInstrument {
#[serde(default)]
pub inst_type: String,
#[serde(default)]
pub inst_id: String,
#[serde(default)]
pub uly: String,
#[serde(default)]
pub inst_family: String,
#[serde(default)]
pub base_ccy: String,
#[serde(default)]
pub quote_ccy: String,
#[serde(default)]
pub settle_ccy: String,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct SetGreeksResult {
#[serde(default)]
pub greeks_type: String,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct SetIsolatedModeResult {
#[serde(default)]
pub iso_mode: String,
#[serde(rename = "type", default)]
pub mode_type: String,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct SetAutoLoanResult {
#[serde(default)]
pub auto_loan: String,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct SetAccountLevelResult {
#[serde(default)]
pub acct_lv: String,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct ActivateOptionResult {
#[serde(default)]
pub result: String,
}