/*
* 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 Market {
/// Symbol of the market.
#[serde(rename = "symbol")]
pub symbol: String,
/// Market address.
#[serde(rename = "marketAddress")]
pub market_address: String,
#[serde(rename = "status")]
pub status: models::MarketStatus,
/// Base asset symbol.
#[serde(rename = "baseAssetSymbol")]
pub base_asset_symbol: String,
/// Base asset name.
#[serde(rename = "baseAssetName")]
pub base_asset_name: String,
/// Precision of the base asset.
#[serde(rename = "baseAssetDecimals")]
pub base_asset_decimals: i64,
/// Step size for the quantity (e9 format).
#[serde(rename = "stepSizeE9")]
pub step_size_e9: String,
/// Price increment size (e9 format).
#[serde(rename = "tickSizeE9")]
pub tick_size_e9: String,
/// Minimum order size (e9 format).
#[serde(rename = "minOrderQuantityE9")]
pub min_order_quantity_e9: String,
/// Maximum limit order size (e9 format).
#[serde(rename = "maxLimitOrderQuantityE9")]
pub max_limit_order_quantity_e9: String,
/// Maximum market order size (e9 format).
#[serde(rename = "maxMarketOrderQuantityE9")]
pub max_market_order_quantity_e9: String,
/// Minimum order price (e9 format).
#[serde(rename = "minOrderPriceE9")]
pub min_order_price_e9: String,
/// Maximum order price (e9 format).
#[serde(rename = "maxOrderPriceE9")]
pub max_order_price_e9: String,
/// Maintenance margin ratio (MMR, e9 format).
#[serde(rename = "maintenanceMarginRatioE9")]
pub maintenance_margin_ratio_e9: String,
/// Initial margin ratio (IMR), e9 format).
#[serde(rename = "initialMarginRatioE9")]
pub initial_margin_ratio_e9: String,
/// Insurance pool ratio (e9 format).
#[serde(rename = "insurancePoolRatioE9")]
pub insurance_pool_ratio_e9: String,
/// Default leverage (e9 format).
#[serde(rename = "defaultLeverageE9")]
pub default_leverage_e9: String,
/// Maximum notional value at current leverage. Index 0 is max notional value for leverage set to 1x, index 1 is for leverage 2x, etc...
#[serde(rename = "maxNotionalAtOpenE9")]
pub max_notional_at_open_e9: Vec<String>,
/// Minimum trade quantity allowed (e9 format).
#[serde(rename = "minTradeQuantityE9")]
pub min_trade_quantity_e9: String,
/// Max trade quantity allowed (e9 format).
#[serde(rename = "maxTradeQuantityE9")]
pub max_trade_quantity_e9: String,
/// Minimum trade price allowed (e9 format).
#[serde(rename = "minTradePriceE9")]
pub min_trade_price_e9: String,
/// Maximum trade price allowed (e9 format).
#[serde(rename = "maxTradePriceE9")]
pub max_trade_price_e9: String,
/// Maximum allowed funding rate (e9 format).
#[serde(rename = "maxFundingRateE9")]
pub max_funding_rate_e9: String,
/// Default maker fee (e9 format).
#[serde(rename = "defaultMakerFeeE9")]
pub default_maker_fee_e9: String,
/// Default taker fee (e9 format).
#[serde(rename = "defaultTakerFeeE9")]
pub default_taker_fee_e9: String,
/// Insurance pool address.
#[serde(rename = "insurancePoolAddress")]
pub insurance_pool_address: String,
/// Fee pool address.
#[serde(rename = "feePoolAddress")]
pub fee_pool_address: String,
/// The time when trading will start/have started on the market.
#[serde(rename = "tradingStartTimeAtMillis")]
pub trading_start_time_at_millis: String,
/// Maximum take bound for long positions (e9 format).
#[serde(rename = "mtbLongE9")]
pub mtb_long_e9: String,
/// Maximum take bound for short positions (e9 format).
#[serde(rename = "mtbShortE9")]
pub mtb_short_e9: String,
/// Delisting price (e9 format).
#[serde(rename = "delistingPriceE9")]
pub delisting_price_e9: String,
/// Indicates whether the market only allows isolated margin.
#[serde(rename = "isolatedOnly")]
pub isolated_only: bool,
}
impl Market {
pub fn new(symbol: String, market_address: String, status: models::MarketStatus, base_asset_symbol: String, base_asset_name: String, base_asset_decimals: i64, step_size_e9: String, tick_size_e9: String, min_order_quantity_e9: String, max_limit_order_quantity_e9: String, max_market_order_quantity_e9: String, min_order_price_e9: String, max_order_price_e9: String, maintenance_margin_ratio_e9: String, initial_margin_ratio_e9: String, insurance_pool_ratio_e9: String, default_leverage_e9: String, max_notional_at_open_e9: Vec<String>, min_trade_quantity_e9: String, max_trade_quantity_e9: String, min_trade_price_e9: String, max_trade_price_e9: String, max_funding_rate_e9: String, default_maker_fee_e9: String, default_taker_fee_e9: String, insurance_pool_address: String, fee_pool_address: String, trading_start_time_at_millis: String, mtb_long_e9: String, mtb_short_e9: String, delisting_price_e9: String, isolated_only: bool) -> Market {
Market {
symbol,
market_address,
status,
base_asset_symbol,
base_asset_name,
base_asset_decimals,
step_size_e9,
tick_size_e9,
min_order_quantity_e9,
max_limit_order_quantity_e9,
max_market_order_quantity_e9,
min_order_price_e9,
max_order_price_e9,
maintenance_margin_ratio_e9,
initial_margin_ratio_e9,
insurance_pool_ratio_e9,
default_leverage_e9,
max_notional_at_open_e9,
min_trade_quantity_e9,
max_trade_quantity_e9,
min_trade_price_e9,
max_trade_price_e9,
max_funding_rate_e9,
default_maker_fee_e9,
default_taker_fee_e9,
insurance_pool_address,
fee_pool_address,
trading_start_time_at_millis,
mtb_long_e9,
mtb_short_e9,
delisting_price_e9,
isolated_only,
}
}
}