#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Operation {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "status")]
pub status: crate::models::OperationStatus,
#[serde(rename = "trades", skip_serializing_if = "Option::is_none")]
pub trades: Option<Vec<crate::models::OperationTrade>>,
#[serde(rename = "commission", skip_serializing_if = "Option::is_none")]
pub commission: Option<crate::models::MoneyAmount>,
#[serde(rename = "currency")]
pub currency: crate::models::Currency,
#[serde(rename = "payment")]
pub payment: f64,
#[serde(rename = "price", skip_serializing_if = "Option::is_none")]
pub price: Option<f64>,
#[serde(rename = "quantity", skip_serializing_if = "Option::is_none")]
pub quantity: Option<i32>,
#[serde(rename = "quantityExecuted", skip_serializing_if = "Option::is_none")]
pub quantity_executed: Option<i32>,
#[serde(rename = "figi", skip_serializing_if = "Option::is_none")]
pub figi: Option<String>,
#[serde(rename = "instrumentType", skip_serializing_if = "Option::is_none")]
pub instrument_type: Option<crate::models::InstrumentType>,
#[serde(rename = "isMarginCall")]
pub is_margin_call: bool,
#[serde(rename = "date")]
pub date: String,
#[serde(rename = "operationType", skip_serializing_if = "Option::is_none")]
pub operation_type: Option<crate::models::OperationTypeWithCommission>,
}
impl Operation {
pub fn new(id: String, status: crate::models::OperationStatus, currency: crate::models::Currency, payment: f64, is_margin_call: bool, date: String) -> Operation {
Operation {
id,
status,
trades: None,
commission: None,
currency,
payment,
price: None,
quantity: None,
quantity_executed: None,
figi: None,
instrument_type: None,
is_margin_call,
date,
operation_type: None,
}
}
}