use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SubAccRequest {
pub expire: Option<Expire>,
pub ip_whitelist: Option<String>,
pub passphrase: String,
pub permission: Option<String>,
pub remark: String,
pub sub_name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Expire {
#[serde(rename = "-1")]
NeverExpire,
#[serde(rename = "180")]
T180day,
#[serde(rename = "30")]
T30day,
#[serde(rename = "360")]
T360day,
#[serde(rename = "90")]
T90day,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SubAccData {
pub api_key: String,
pub api_secret: String,
pub api_version: i64,
pub created_at: i64,
pub ip_whitelist: Option<String>,
pub passphrase: String,
pub permission: String,
pub remark: String,
pub sub_name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SubAccListData {
pub current_page: i64,
pub items: Vec<SubAccItem>,
pub page_size: i64,
pub total_num: i64,
pub total_page: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SubAccItem {
pub access: String,
pub created_at: i64,
pub hosted_status: Option<String>,
pub opened_trade_types: Vec<String>,
pub remarks: Option<String>,
pub status: i64,
pub sub_name: String,
pub trade_types: Vec<String>,
#[serde(rename = "type")]
pub item_type: i64,
pub uid: i64,
pub user_id: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SubAccBalance {
pub main_accounts: Vec<MainAccount>,
pub margin_accounts: Vec<MarginAccount>,
pub sub_name: String,
pub sub_user_id: String,
pub trade_accounts: Vec<TradeAccount>,
#[serde(rename = "tradeHFAccounts")]
pub trade_hf_accounts: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MainAccount {
pub available: Option<String>,
pub balance: Option<String>,
pub base_amount: Option<String>,
pub base_currency: Option<String>,
pub base_currency_price: Option<String>,
pub currency: Option<String>,
pub holds: Option<String>,
pub tag: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MarginAccount {
pub available: Option<String>,
pub balance: Option<String>,
pub base_amount: Option<String>,
pub base_currency: Option<String>,
pub base_currency_price: Option<String>,
pub currency: Option<String>,
pub holds: Option<String>,
pub tag: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TradeAccount {
pub available: Option<String>,
pub balance: Option<String>,
pub base_amount: Option<String>,
pub base_currency: Option<String>,
pub base_currency_price: Option<String>,
pub currency: Option<String>,
pub holds: Option<String>,
pub tag: Option<String>,
}