use crate::model::NumberString;
use serde::Deserialize;
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct FlexibleLoanCurrency {
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub min_loan: NumberString,
#[serde(default)]
pub max_loan: NumberString,
#[serde(default)]
pub rate: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct FlexibleLoanCollateralAsset {
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub min_collateral: NumberString,
#[serde(default)]
pub max_collateral: NumberString,
#[serde(default)]
pub discount_rate: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct FlexibleLoanMaxLoan {
#[serde(default)]
pub borrow_ccy: String,
#[serde(default)]
pub max_loan: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct FlexibleLoanMaxRedeem {
#[serde(default)]
pub collateral_ccy: String,
#[serde(default)]
pub max_redeem: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct FlexibleLoanOrder {
#[serde(default)]
pub ord_id: String,
#[serde(default)]
pub borrow_ccy: String,
#[serde(default)]
pub borrow_amt: NumberString,
#[serde(default)]
pub collateral_ccy: String,
#[serde(default)]
pub collateral_amt: NumberString,
#[serde(default)]
pub state: String,
#[serde(default)]
pub c_time: NumberString,
#[serde(default)]
pub u_time: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct FlexibleLoanInfo {
#[serde(default)]
pub ord_id: String,
#[serde(default)]
pub loan_to_value: NumberString,
#[serde(default)]
pub liquidation_ltv: NumberString,
#[serde(default)]
pub margin_call_ltv: NumberString,
#[serde(default)]
pub accrued_interest: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct FlexibleLoanHistory {
#[serde(default)]
pub ord_id: String,
#[serde(default, rename = "type")]
pub event_type: String,
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub amt: NumberString,
#[serde(default)]
pub ts: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct FlexibleLoanInterest {
#[serde(default)]
pub ord_id: String,
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub interest: NumberString,
#[serde(default)]
pub rate: NumberString,
#[serde(default)]
pub ts: NumberString,
}