/*
 * OpenAPI
 *
 * OpenAPI
 *
 * The version of the OpenAPI document: 0.0.1
 *
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct TradeFillMessageDataDInner {
    /// Trade identifier.
    #[serde(rename = "id")]
    pub id: uuid::Uuid,
    /// Trade price.
    #[serde(rename = "px")]
    pub px: rust_decimal::Decimal,
    /// Trade size.
    #[serde(rename = "sz")]
    pub sz: rust_decimal::Decimal,
    #[serde(rename = "sd")]
    pub sd: models::OrderSide,
    /// Related subaccount identifiers.
    #[serde(rename = "sids")]
    pub sids: Vec<uuid::Uuid>,
}

impl TradeFillMessageDataDInner {
    pub fn new(
        id: uuid::Uuid,
        px: rust_decimal::Decimal,
        sz: rust_decimal::Decimal,
        sd: models::OrderSide,
        sids: Vec<uuid::Uuid>,
    ) -> TradeFillMessageDataDInner {
        TradeFillMessageDataDInner {
            id,
            px,
            sz,
            sd,
            sids,
        }
    }
}
