use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Liquidation {
#[serde(rename = "id")]
pub id: i64,
#[serde(rename = "market_id")]
pub market_id: i32,
#[serde(rename = "type")]
pub r#type: Type,
#[serde(rename = "trade")]
pub trade: Box<models::LiqTrade>,
#[serde(rename = "info")]
pub info: Box<models::LiquidationInfo>,
#[serde(rename = "executed_at")]
pub executed_at: i64,
}
impl Liquidation {
pub fn new(
id: i64,
market_id: i32,
r#type: Type,
trade: models::LiqTrade,
info: models::LiquidationInfo,
executed_at: i64,
) -> Liquidation {
Liquidation {
id,
market_id,
r#type,
trade: Box::new(trade),
info: Box::new(info),
executed_at,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "partial")]
Partial,
#[serde(rename = "deleverage")]
Deleverage,
}
impl Default for Type {
fn default() -> Type {
Self::Partial
}
}