use {
crate::models,
serde::{Deserialize, Serialize},
};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct OrderSummary {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "via")]
pub via: models::AccessType,
#[serde(rename = "side")]
pub side: Side,
#[serde(rename = "baseAmount")]
pub base_amount: String,
#[serde(rename = "quoteAmount", skip_serializing_if = "Option::is_none")]
pub quote_amount: Option<String>,
#[serde(rename = "baseAssetId")]
pub base_asset_id: String,
#[serde(rename = "quoteAssetId")]
pub quote_asset_id: String,
#[serde(rename = "status")]
pub status: models::OrderStatus,
#[serde(rename = "destination")]
pub destination: models::AccountReference,
#[serde(rename = "source", skip_serializing_if = "Option::is_none")]
pub source: Option<models::SettlementSourceAccount>,
#[serde(rename = "createdAt")]
pub created_at: String,
}
impl OrderSummary {
pub fn new(
id: String,
via: models::AccessType,
side: Side,
base_amount: String,
base_asset_id: String,
quote_asset_id: String,
status: models::OrderStatus,
destination: models::AccountReference,
created_at: String,
) -> OrderSummary {
OrderSummary {
id,
via,
side,
base_amount,
quote_amount: None,
base_asset_id,
quote_asset_id,
status,
destination,
source: None,
created_at,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Side {
#[serde(rename = "BUY")]
Buy,
#[serde(rename = "SELL")]
Sell,
}
impl Default for Side {
fn default() -> Side {
Self::Buy
}
}