use serde::Serialize;
use crate::{common::test_support::AccountTypeWire, utils::tests::DateTimeUtcWire};
#[derive(Debug, Serialize, proptest_derive::Arbitrary)]
pub struct GetAccountBalancesResponseWire {
balances: GetAccountBalancesWire,
}
#[derive(Debug, Serialize, proptest_derive::Arbitrary)]
pub struct GetAccountBalancesWire {
option_short_value: f64,
total_equity: f64,
account_number: String,
account_type: AccountTypeWire,
close_pl: f64,
current_requirement: f64,
equity: f64,
long_market_value: f64,
market_value: f64,
open_pl: f64,
option_long_value: f64,
option_requirement: f64,
pending_orders_count: i32,
short_market_value: f64,
stock_long_value: f64,
total_cash: f64,
uncleared_funds: f64,
pending_cash: f64,
margin: MarginWire,
}
#[derive(Clone, Debug, Serialize, proptest_derive::Arbitrary)]
pub struct MarginWire {
fed_call: f64,
maintenance_call: f64,
option_buying_power: f64,
stock_buying_power: f64,
stock_short_value: f64,
sweep: f64,
}
#[derive(Clone, Debug, Serialize, proptest_derive::Arbitrary)]
pub struct PositionWire {
cost_basis: f64,
date_acquired: DateTimeUtcWire,
id: u32,
quantity: f64,
symbol: String,
}
#[derive(Clone, Debug, Serialize, proptest_derive::Arbitrary)]
pub struct GetAccountPositionsResponseWire {
positions: Vec<PositionWire>,
}