use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct MarketOrderTransaction {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<i32>,
#[serde(rename = "time", skip_serializing_if = "Option::is_none")]
pub time: Option<String>,
#[serde(rename = "userID", skip_serializing_if = "Option::is_none")]
pub user_id: Option<i32>,
#[serde(rename = "accountID", skip_serializing_if = "Option::is_none")]
pub account_id: Option<String>,
#[serde(rename = "batchID", skip_serializing_if = "Option::is_none")]
pub batch_id: Option<i32>,
#[serde(rename = "requestID", skip_serializing_if = "Option::is_none")]
pub request_id: Option<String>,
#[serde(rename = "type", skip_serializing_if = "Option::is_none")]
pub r#type: Option<models::TransactionType>,
#[serde(rename = "instrument", skip_serializing_if = "Option::is_none")]
pub instrument: Option<models::InstrumentName>,
#[serde(rename = "units", skip_serializing_if = "Option::is_none")]
pub units: Option<f64>,
#[serde(rename = "timeInForce", skip_serializing_if = "Option::is_none")]
pub time_in_force: Option<models::MarketOrderTradeClose>,
#[serde(rename = "priceBound", skip_serializing_if = "Option::is_none")]
pub price_bound: Option<f64>,
#[serde(rename = "positionFill", skip_serializing_if = "Option::is_none")]
pub position_fill: Option<models::MarketOrderPositionFill>,
#[serde(rename = "tradeClose", skip_serializing_if = "Option::is_none")]
pub trade_close: Option<Box<models::MarketOrderTradeClose>>,
#[serde(rename = "longPositionCloseout", skip_serializing_if = "Option::is_none")]
pub long_position_closeout: Option<Box<models::MarketOrderPositionCloseout>>,
#[serde(rename = "shortPositionCloseout", skip_serializing_if = "Option::is_none")]
pub short_position_closeout: Option<Box<models::MarketOrderPositionCloseout>>,
#[serde(rename = "marginCloseout", skip_serializing_if = "Option::is_none")]
pub margin_closeout: Option<Box<models::MarketOrderMarginCloseout>>,
#[serde(rename = "delayedTradeClose", skip_serializing_if = "Option::is_none")]
pub delayed_trade_close: Option<Box<models::MarketOrderDelayedTradeClose>>,
#[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
pub reason: Option<models::MarketOrderReason>,
#[serde(rename = "clientExtensions", skip_serializing_if = "Option::is_none")]
pub client_extensions: Option<Box<models::ClientExtensions>>,
#[serde(rename = "takeProfitOnFill", skip_serializing_if = "Option::is_none")]
pub take_profit_on_fill: Option<Box<models::TakeProfitDetails>>,
#[serde(rename = "stopLossOnFill", skip_serializing_if = "Option::is_none")]
pub stop_loss_on_fill: Option<Box<models::StopLossDetails>>,
#[serde(rename = "trailingStopLossOnFill", skip_serializing_if = "Option::is_none")]
pub trailing_stop_loss_on_fill: Option<Box<models::TrailingStopLossDetails>>,
#[serde(rename = "tradeClientExtensions", skip_serializing_if = "Option::is_none")]
pub trade_client_extensions: Option<Box<models::ClientExtensions>>,
}
impl MarketOrderTransaction {
pub fn new() -> MarketOrderTransaction {
MarketOrderTransaction {
id: None,
time: None,
user_id: None,
account_id: None,
batch_id: None,
request_id: None,
r#type: None,
instrument: None,
units: None,
time_in_force: None,
price_bound: None,
position_fill: None,
trade_close: None,
long_position_closeout: None,
short_position_closeout: None,
margin_closeout: None,
delayed_trade_close: None,
reason: None,
client_extensions: None,
take_profit_on_fill: None,
stop_loss_on_fill: None,
trailing_stop_loss_on_fill: None,
trade_client_extensions: None,
}
}
}