/*
 * Binance Derivatives Trading Options WebSocket Market Streams
 *
 * OpenAPI Specification for the Binance Derivatives Trading Options WebSocket Market Streams
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

#![allow(unused_imports)]
use crate::derivatives_trading_options::websocket_streams::models;
use serde::{Deserialize, Deserializer, Serialize, de::Error};
use serde_json::Value;

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct OrderTradeUpdateOInner {
    #[serde(rename = "T", skip_serializing_if = "Option::is_none")]
    pub t_uppercase: Option<i64>,
    #[serde(rename = "t", skip_serializing_if = "Option::is_none")]
    pub t: Option<i64>,
    #[serde(rename = "s", skip_serializing_if = "Option::is_none")]
    pub s: Option<String>,
    #[serde(rename = "c", skip_serializing_if = "Option::is_none")]
    pub c: Option<String>,
    #[serde(rename = "oid", skip_serializing_if = "Option::is_none")]
    pub oid: Option<String>,
    #[serde(rename = "p", skip_serializing_if = "Option::is_none")]
    pub p: Option<String>,
    #[serde(rename = "q", skip_serializing_if = "Option::is_none")]
    pub q: Option<String>,
    #[serde(rename = "stp", skip_serializing_if = "Option::is_none")]
    pub stp: Option<i64>,
    #[serde(rename = "r", skip_serializing_if = "Option::is_none")]
    pub r: Option<bool>,
    #[serde(rename = "po", skip_serializing_if = "Option::is_none")]
    pub po: Option<bool>,
    #[serde(rename = "S", skip_serializing_if = "Option::is_none")]
    pub s_uppercase: Option<String>,
    #[serde(rename = "e", skip_serializing_if = "Option::is_none")]
    pub e: Option<String>,
    #[serde(rename = "ec", skip_serializing_if = "Option::is_none")]
    pub ec: Option<String>,
    #[serde(rename = "f", skip_serializing_if = "Option::is_none")]
    pub f: Option<String>,
    #[serde(rename = "tif", skip_serializing_if = "Option::is_none")]
    pub tif: Option<String>,
    #[serde(rename = "oty", skip_serializing_if = "Option::is_none")]
    pub oty: Option<String>,
    #[serde(rename = "fi", skip_serializing_if = "Option::is_none")]
    pub fi: Option<Vec<models::OrderTradeUpdateOInnerFiInner>>,
}

impl OrderTradeUpdateOInner {
    #[must_use]
    pub fn new() -> OrderTradeUpdateOInner {
        OrderTradeUpdateOInner {
            t_uppercase: None,
            t: None,
            s: None,
            c: None,
            oid: None,
            p: None,
            q: None,
            stp: None,
            r: None,
            po: None,
            s_uppercase: None,
            e: None,
            ec: None,
            f: None,
            tif: None,
            oty: None,
            fi: None,
        }
    }
}
