use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct TradeDto {
#[serde(rename = "id")]
pub id: uuid::Uuid,
#[serde(rename = "takerOrderId")]
pub taker_order_id: uuid::Uuid,
#[serde(rename = "makerOrderId")]
pub maker_order_id: uuid::Uuid,
#[serde(rename = "takerClientOrderId", skip_serializing_if = "Option::is_none")]
pub taker_client_order_id: Option<String>,
#[serde(rename = "makerClientOrderId", skip_serializing_if = "Option::is_none")]
pub maker_client_order_id: Option<String>,
#[serde(rename = "makerFeeUsd")]
pub maker_fee_usd: String,
#[serde(rename = "takerFeeUsd")]
pub taker_fee_usd: String,
#[serde(rename = "price")]
pub price: String,
#[serde(rename = "filled")]
pub filled: String,
#[serde(rename = "makerSide")]
pub maker_side: models::OrderSide,
#[serde(rename = "takerSide")]
pub taker_side: models::OrderSide,
#[serde(rename = "productId")]
pub product_id: uuid::Uuid,
#[serde(rename = "createdAt")]
pub created_at: f64,
}
impl TradeDto {
pub fn new(
id: uuid::Uuid,
taker_order_id: uuid::Uuid,
maker_order_id: uuid::Uuid,
maker_fee_usd: String,
taker_fee_usd: String,
price: String,
filled: String,
maker_side: models::OrderSide,
taker_side: models::OrderSide,
product_id: uuid::Uuid,
created_at: f64,
) -> TradeDto {
TradeDto {
id,
taker_order_id,
maker_order_id,
taker_client_order_id: None,
maker_client_order_id: None,
maker_fee_usd,
taker_fee_usd,
price,
filled,
maker_side,
taker_side,
product_id,
created_at,
}
}
}