/*
* 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,
}
}
}