use rust_decimal::Decimal;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Asset {
pub id: String,
pub class: String,
pub exchange: String,
pub symbol: String,
pub name: String,
pub status: String,
pub tradable: bool,
pub marginable: bool,
pub shortable: bool,
pub easy_to_borrow: bool,
pub fractionable: bool,
pub cusip: Option<String>,
#[serde(
default,
deserialize_with = "alpaca_core::decimal::deserialize_option_decimal_from_string_or_number",
serialize_with = "alpaca_core::decimal::number_contract::serialize_option_decimal"
)]
pub maintenance_margin_requirement: Option<Decimal>,
#[serde(
default,
deserialize_with = "alpaca_core::decimal::deserialize_option_decimal_from_string_or_number",
serialize_with = "alpaca_core::decimal::string_contract::serialize_option_decimal"
)]
pub margin_requirement_long: Option<Decimal>,
#[serde(
default,
deserialize_with = "alpaca_core::decimal::deserialize_option_decimal_from_string_or_number",
serialize_with = "alpaca_core::decimal::string_contract::serialize_option_decimal"
)]
pub margin_requirement_short: Option<Decimal>,
pub attributes: Option<Vec<String>>,
}