bluefin_api 1.8.0

Bluefin API
Documentation
/*
 * Bluefin API
 *
 * Bluefin API
 *
 * The version of the OpenAPI document: 1.0.0
 * 
 * Generated by: https://openapi-generator.tech
 */

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

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Position {
    /// Market address.
    #[serde(rename = "symbol")]
    pub symbol: String,
    /// Average entry price determined by a simple average of all entry prices resulting in this position size (e9 format).
    #[serde(rename = "avgEntryPriceE9")]
    pub avg_entry_price_e9: String,
    /// Isolated position leverage (e9 format).
    #[serde(rename = "clientSetLeverageE9")]
    pub client_set_leverage_e9: String,
    /// Liquidation price (e9 format).
    #[serde(rename = "liquidationPriceE9")]
    pub liquidation_price_e9: String,
    /// Mark price (e9 format).
    #[serde(rename = "markPriceE9")]
    pub mark_price_e9: String,
    /// Notional value (e9 format).
    #[serde(rename = "notionalValueE9")]
    pub notional_value_e9: String,
    /// Position size (e9 format).
    #[serde(rename = "sizeE9")]
    pub size_e9: String,
    /// Unrealized profit (e9 format).
    #[serde(rename = "unrealizedPnlE9")]
    pub unrealized_pnl_e9: String,
    #[serde(rename = "side")]
    pub side: models::PositionSide,
    /// Initial margin required with current mark price (e9 format).
    #[serde(rename = "marginRequiredE9")]
    pub margin_required_e9: String,
    /// Maintenance margin required with current mark price (e9 format).
    #[serde(rename = "maintenanceMarginE9")]
    pub maintenance_margin_e9: String,
    /// If the position is isolated.
    #[serde(rename = "isIsolated")]
    pub is_isolated: bool,
    /// Margin value present if margin type is isolated (e9 format).
    #[serde(rename = "isolatedMarginE9")]
    pub isolated_margin_e9: String,
    /// Last update time.
    #[serde(rename = "updatedAtMillis")]
    pub updated_at_millis: i64,
    /// Total funding rate payment (e9 format).
    #[serde(rename = "fundingRatePaymentAllTimeE9")]
    pub funding_rate_payment_all_time_e9: String,
    /// Funding rate payment since last position change (e9 format).
    #[serde(rename = "fundingRatePaymentSinceChangeE9")]
    pub funding_rate_payment_since_change_e9: String,
    /// Funding rate payment since position opened (e9 format).
    #[serde(rename = "fundingRatePaymentSinceOpenedE9")]
    pub funding_rate_payment_since_opened_e9: String,
}

impl Position {
    pub fn new(symbol: String, avg_entry_price_e9: String, client_set_leverage_e9: String, liquidation_price_e9: String, mark_price_e9: String, notional_value_e9: String, size_e9: String, unrealized_pnl_e9: String, side: models::PositionSide, margin_required_e9: String, maintenance_margin_e9: String, is_isolated: bool, isolated_margin_e9: String, updated_at_millis: i64, funding_rate_payment_all_time_e9: String, funding_rate_payment_since_change_e9: String, funding_rate_payment_since_opened_e9: String) -> Position {
        Position {
            symbol,
            avg_entry_price_e9,
            client_set_leverage_e9,
            liquidation_price_e9,
            mark_price_e9,
            notional_value_e9,
            size_e9,
            unrealized_pnl_e9,
            side,
            margin_required_e9,
            maintenance_margin_e9,
            is_isolated,
            isolated_margin_e9,
            updated_at_millis,
            funding_rate_payment_all_time_e9,
            funding_rate_payment_since_change_e9,
            funding_rate_payment_since_opened_e9,
        }
    }
}