use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TransferRequest {
pub amount: String,
pub client_oid: String,
pub currency: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub from_account_tag: Option<String>,
pub from_account_type: AccountType,
pub from_user_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub to_account_tag: Option<String>,
pub to_account_type: AccountType,
pub to_user_id: Option<String>,
#[serde(rename = "type")]
pub transfer_request_type: TransferType,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum AccountType {
Contract,
Isolated,
#[serde(rename = "ISOLATED_V2")]
IsolatedV2,
Main,
Margin,
#[serde(rename = "MARGIN_V2")]
MarginV2,
Trade,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum TransferType {
Internal,
#[serde(rename = "PARENT_TO_SUB")]
ParentToSub,
#[serde(rename = "SUB_TO_PARENT")]
SubToParent,
}
#[derive(Serialize, Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
pub struct TransferData {
pub order_id: String,
}