oanda_v20_openapi/models/
account.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Account {
17 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
19 pub id: Option<String>,
20 #[serde(rename = "alias", skip_serializing_if = "Option::is_none")]
22 pub alias: Option<String>,
23 #[serde(rename = "currency", skip_serializing_if = "Option::is_none")]
24 pub currency: Option<models::AccountCurrency>,
25 #[serde(rename = "balance", skip_serializing_if = "Option::is_none")]
27 pub balance: Option<String>,
28 #[serde(rename = "createdByUserID", skip_serializing_if = "Option::is_none")]
30 pub created_by_user_id: Option<i32>,
31 #[serde(rename = "createdTime", skip_serializing_if = "Option::is_none")]
33 pub created_time: Option<String>,
34 #[serde(rename = "guaranteedStopLossOrderMode", skip_serializing_if = "Option::is_none")]
35 pub guaranteed_stop_loss_order_mode: Option<models::AccountGuaranteedStopLossOrderMode>,
36 #[serde(rename = "pl", skip_serializing_if = "Option::is_none")]
38 pub pl: Option<String>,
39 #[serde(rename = "resettablePL", skip_serializing_if = "Option::is_none")]
41 pub resettable_pl: Option<String>,
42 #[serde(rename = "resettablePLTime", skip_serializing_if = "Option::is_none")]
44 pub resettable_pl_time: Option<String>,
45 #[serde(rename = "financing", skip_serializing_if = "Option::is_none")]
47 pub financing: Option<String>,
48 #[serde(rename = "commission", skip_serializing_if = "Option::is_none")]
50 pub commission: Option<String>,
51 #[serde(rename = "guaranteedExecutionFees", skip_serializing_if = "Option::is_none")]
53 pub guaranteed_execution_fees: Option<String>,
54 #[serde(rename = "marginRate", skip_serializing_if = "Option::is_none")]
56 pub margin_rate: Option<String>,
57 #[serde(rename = "marginCallEnterTime", skip_serializing_if = "Option::is_none")]
59 pub margin_call_enter_time: Option<String>,
60 #[serde(rename = "marginCallExtensionCount", skip_serializing_if = "Option::is_none")]
62 pub margin_call_extension_count: Option<i32>,
63 #[serde(rename = "lastMarginCallExtensionTime", skip_serializing_if = "Option::is_none")]
65 pub last_margin_call_extension_time: Option<String>,
66 #[serde(rename = "openTradeCount", skip_serializing_if = "Option::is_none")]
68 pub open_trade_count: Option<i32>,
69 #[serde(rename = "openPositionCount", skip_serializing_if = "Option::is_none")]
71 pub open_position_count: Option<i32>,
72 #[serde(rename = "pendingOrderCount", skip_serializing_if = "Option::is_none")]
74 pub pending_order_count: Option<i32>,
75 #[serde(rename = "hedgingEnabled", skip_serializing_if = "Option::is_none")]
77 pub hedging_enabled: Option<bool>,
78 #[serde(rename = "lastOrderFillTimestamp", skip_serializing_if = "Option::is_none")]
80 pub last_order_fill_timestamp: Option<String>,
81 #[serde(rename = "lastTransactionId", skip_serializing_if = "Option::is_none")]
83 pub last_transaction_id: Option<String>,
84 #[serde(rename = "unrealizedPL", skip_serializing_if = "Option::is_none")]
86 pub unrealized_pl: Option<String>,
87 #[serde(rename = "NAV", skip_serializing_if = "Option::is_none")]
89 pub nav: Option<String>,
90 #[serde(rename = "marginUsed", skip_serializing_if = "Option::is_none")]
92 pub margin_used: Option<String>,
93 #[serde(rename = "marginAvailable", skip_serializing_if = "Option::is_none")]
95 pub margin_available: Option<String>,
96 #[serde(rename = "positionValue", skip_serializing_if = "Option::is_none")]
98 pub position_value: Option<String>,
99 #[serde(rename = "marginCloseoutUnrealizedPL", skip_serializing_if = "Option::is_none")]
101 pub margin_closeout_unrealized_pl: Option<String>,
102 #[serde(rename = "marginCloseoutNAV", skip_serializing_if = "Option::is_none")]
104 pub margin_closeout_nav: Option<String>,
105 #[serde(rename = "marginCloseoutMarginUsed", skip_serializing_if = "Option::is_none")]
107 pub margin_closeout_margin_used: Option<String>,
108 #[serde(rename = "marginCloseoutPercent", skip_serializing_if = "Option::is_none")]
110 pub margin_closeout_percent: Option<String>,
111 #[serde(rename = "marginCloseoutPositionValue", skip_serializing_if = "Option::is_none")]
113 pub margin_closeout_position_value: Option<String>,
114 #[serde(rename = "withdrawalLimit", skip_serializing_if = "Option::is_none")]
116 pub withdrawal_limit: Option<String>,
117 #[serde(rename = "marginCallMarginUsed", skip_serializing_if = "Option::is_none")]
119 pub margin_call_margin_used: Option<String>,
120 #[serde(rename = "marginCallPercent", skip_serializing_if = "Option::is_none")]
122 pub margin_call_percent: Option<String>,
123 #[serde(rename = "trades", skip_serializing_if = "Option::is_none")]
125 pub trades: Option<Vec<models::TradeSummary>>,
126 #[serde(rename = "positions", skip_serializing_if = "Option::is_none")]
128 pub positions: Option<Vec<models::Position>>,
129 #[serde(rename = "orders", skip_serializing_if = "Option::is_none")]
131 pub orders: Option<Vec<models::Order>>,
132}
133
134impl Account {
135 pub fn new() -> Account {
137 Account {
138 id: None,
139 alias: None,
140 currency: None,
141 balance: None,
142 created_by_user_id: None,
143 created_time: None,
144 guaranteed_stop_loss_order_mode: None,
145 pl: None,
146 resettable_pl: None,
147 resettable_pl_time: None,
148 financing: None,
149 commission: None,
150 guaranteed_execution_fees: None,
151 margin_rate: None,
152 margin_call_enter_time: None,
153 margin_call_extension_count: None,
154 last_margin_call_extension_time: None,
155 open_trade_count: None,
156 open_position_count: None,
157 pending_order_count: None,
158 hedging_enabled: None,
159 last_order_fill_timestamp: None,
160 last_transaction_id: None,
161 unrealized_pl: None,
162 nav: None,
163 margin_used: None,
164 margin_available: None,
165 position_value: None,
166 margin_closeout_unrealized_pl: None,
167 margin_closeout_nav: None,
168 margin_closeout_margin_used: None,
169 margin_closeout_percent: None,
170 margin_closeout_position_value: None,
171 withdrawal_limit: None,
172 margin_call_margin_used: None,
173 margin_call_percent: None,
174 trades: None,
175 positions: None,
176 orders: None,
177 }
178 }
179}
180