use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct OrderDto {
#[serde(rename = "id")]
pub id: uuid::Uuid,
#[serde(rename = "clientOrderId", skip_serializing_if = "Option::is_none")]
pub client_order_id: Option<String>,
#[serde(rename = "type")]
pub r#type: models::OrderType,
#[serde(rename = "availableQuantity")]
pub available_quantity: String,
#[serde(rename = "quantity")]
pub quantity: String,
#[serde(rename = "side")]
pub side: models::OrderSide,
#[serde(rename = "productId")]
pub product_id: uuid::Uuid,
#[serde(rename = "subaccountId")]
pub subaccount_id: uuid::Uuid,
#[serde(rename = "status")]
pub status: models::OrderStatus,
#[serde(rename = "reduceOnly")]
pub reduce_only: bool,
#[serde(rename = "close")]
pub close: bool,
#[serde(rename = "updatedAt")]
pub updated_at: f64,
#[serde(rename = "createdAt")]
pub created_at: f64,
#[serde(rename = "sender")]
pub sender: String,
#[serde(rename = "price")]
pub price: String,
#[serde(rename = "filled")]
pub filled: String,
#[serde(rename = "stopPrice")]
pub stop_price: String,
#[serde(rename = "stopType", skip_serializing_if = "Option::is_none")]
pub stop_type: Option<models::StopTypeEnum>,
#[serde(rename = "stopPriceType", skip_serializing_if = "Option::is_none")]
pub stop_price_type: Option<models::StopPriceTypeEnum>,
#[serde(rename = "timeInForce", skip_serializing_if = "Option::is_none")]
pub time_in_force: Option<models::TimeInForce>,
#[serde(rename = "expiresAt")]
pub expires_at: f64,
#[serde(rename = "postOnly", skip_serializing_if = "Option::is_none")]
pub post_only: Option<bool>,
#[serde(
rename = "groupContingencyType",
skip_serializing_if = "Option::is_none"
)]
pub group_contingency_type: Option<models::GroupContingencyTypeEnum>,
#[serde(rename = "groupId", skip_serializing_if = "Option::is_none")]
pub group_id: Option<uuid::Uuid>,
#[serde(rename = "triggered")]
pub triggered: models::TriggeredEnum,
}
impl OrderDto {
pub fn new(
id: uuid::Uuid,
r#type: models::OrderType,
available_quantity: String,
quantity: String,
side: models::OrderSide,
product_id: uuid::Uuid,
subaccount_id: uuid::Uuid,
status: models::OrderStatus,
reduce_only: bool,
close: bool,
updated_at: f64,
created_at: f64,
sender: String,
price: String,
filled: String,
stop_price: String,
expires_at: f64,
triggered: models::TriggeredEnum,
) -> OrderDto {
OrderDto {
id,
client_order_id: None,
r#type,
available_quantity,
quantity,
side,
product_id,
subaccount_id,
status,
reduce_only,
close,
updated_at,
created_at,
sender,
price,
filled,
stop_price,
stop_type: None,
stop_price_type: None,
time_in_force: None,
expires_at,
post_only: None,
group_contingency_type: None,
group_id: None,
triggered,
}
}
}