use serde::{Deserialize, Serialize};
use crate::{order_configuration::OrderConfiguration, prelude::EditHistory};
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Order {
pub order_id: String,
pub product_id: String,
pub user_id: String,
pub order_configuration: OrderConfiguration,
pub side: String, pub client_order_id: String,
pub status: String, pub time_in_force: Option<String>, pub created_time: String, pub completion_percentage: String,
pub filled_size: Option<String>,
pub average_filled_price: String,
pub fee: Option<String>, pub number_of_fills: String,
pub filled_value: Option<String>,
pub pending_cancel: bool,
pub size_in_quote: bool,
pub total_fees: String,
pub size_inclusive_of_fees: bool,
pub total_value_after_fees: String,
pub trigger_status: Option<String>, pub order_type: Option<String>, pub reject_reason: Option<String>, pub settled: bool,
pub product_type: Option<String>, pub reject_message: Option<String>,
pub cancel_message: Option<String>,
pub order_placement_source: Option<String>, pub outstanding_hold_amount: Option<String>,
pub is_liquidation: bool,
pub last_fill_time: Option<String>, pub edit_history: Option<Vec<EditHistory>>,
pub leverage: Option<String>,
pub margin_type: Option<String>, pub retail_portfolio_id: Option<String>,
}