use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreateOrderRequest {
#[serde(rename = "signedFields")]
pub signed_fields: models::CreateOrderRequestSignedFields,
#[serde(rename = "signature")]
pub signature: String,
#[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 = "reduceOnly")]
pub reduce_only: bool,
#[serde(rename = "postOnly", skip_serializing_if = "Option::is_none")]
pub post_only: Option<bool>,
#[serde(rename = "timeInForce", skip_serializing_if = "Option::is_none")]
pub time_in_force: Option<models::OrderTimeInForce>,
#[serde(rename = "triggerPriceE9", skip_serializing_if = "Option::is_none")]
pub trigger_price_e9: Option<String>,
#[serde(rename = "selfTradePreventionType", skip_serializing_if = "Option::is_none")]
pub self_trade_prevention_type: Option<models::SelfTradePreventionType>,
#[serde(rename = "twapConfig", skip_serializing_if = "Option::is_none")]
pub twap_config: Option<models::CreateOrderRequestTwapConfig>,
}
impl CreateOrderRequest {
pub fn new(signed_fields: models::CreateOrderRequestSignedFields, signature: String, r#type: models::OrderType, reduce_only: bool) -> CreateOrderRequest {
CreateOrderRequest {
signed_fields,
signature,
client_order_id: None,
r#type,
reduce_only,
post_only: None,
time_in_force: None,
trigger_price_e9: None,
self_trade_prevention_type: None,
twap_config: None,
}
}
}