schwab_api/models/
account.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
5#[serde(rename_all = "camelCase")]
6pub struct Account {
7 pub securities_account: Option<SecuritiesAccount>,
8}
9
10#[derive(Debug, Clone, Serialize, Deserialize)]
11#[serde(rename_all = "camelCase")]
12pub struct SecuritiesAccount {
13 pub account_number: Option<String>,
14 pub round_trips: Option<i64>,
15 pub is_day_trader: Option<bool>,
16 pub is_closing_only_restricted: Option<bool>,
17 pub pfcb_flag: Option<bool>,
18 pub positions: Option<Vec<Position>>,
19 pub initial_balances: Option<serde_json::Value>,
21 pub current_balances: Option<serde_json::Value>,
22 pub projected_balances: Option<serde_json::Value>,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(rename_all = "camelCase")]
27pub struct Position {
28 pub short_quantity: Option<f64>,
29 pub average_price: Option<f64>,
30 pub current_day_profit_loss: Option<f64>,
31 pub current_day_profit_loss_percentage: Option<f64>,
32 pub long_quantity: Option<f64>,
33 pub settled_long_quantity: Option<f64>,
34 pub settled_short_quantity: Option<f64>,
35 pub aged_quantity: Option<f64>,
36 pub instrument: Option<AccountsInstrument>,
37 pub market_value: Option<f64>,
38 pub maintenance_requirement: Option<f64>,
39 pub average_long_price: Option<f64>,
40 pub average_short_price: Option<f64>,
41 pub tax_lot_average_long_price: Option<f64>,
42 pub tax_lot_average_short_price: Option<f64>,
43 pub long_open_profit_loss: Option<f64>,
44 pub short_open_profit_loss: Option<f64>,
45 pub previous_session_long_quantity: Option<f64>,
46 pub previous_session_short_quantity: Option<f64>,
47 pub current_day_cost: Option<f64>,
48}
49
50#[derive(Debug, Clone, Serialize, Deserialize)]
51#[serde(rename_all = "camelCase")]
52pub struct AccountsInstrument {
53 pub cusip: Option<String>,
54 pub symbol: Option<String>,
55 pub description: Option<String>,
56 pub instrument_id: Option<i64>,
57 pub net_change: Option<f64>,
58 pub r#type: Option<String>,
59}
60
61#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(rename_all = "camelCase")]
63pub struct MarginBalances {
64 pub available_funds: Option<f64>,
65 pub available_funds_non_marginable_trade: Option<f64>,
66 pub buying_power: Option<f64>,
67 pub buying_power_non_marginable_trade: Option<f64>,
68 pub day_trading_buying_power: Option<f64>,
69 pub day_trading_buying_power_call: Option<f64>,
70 pub equity: Option<f64>,
71 pub equity_percentage: Option<f64>,
72 pub long_margin_value: Option<f64>,
73 pub maintenance_call: Option<f64>,
74 pub maintenance_requirement: Option<f64>,
75 pub margin_balance: Option<f64>,
76 pub reg_t_call: Option<f64>,
77 pub short_balance: Option<f64>,
78 pub short_margin_value: Option<f64>,
79 pub sma: Option<f64>,
80 pub is_in_call: Option<f64>,
81 pub stock_buying_power: Option<f64>,
82 pub option_buying_power: Option<f64>,
83 pub accrued_interest: Option<f64>,
85 pub bond_value: Option<f64>,
86 pub cash_balance: Option<f64>,
87 pub cash_available_for_trading: Option<f64>,
88 pub liquidation_value: Option<f64>,
89 pub total_cash: Option<f64>,
90 pub account_value: Option<f64>,
91}