use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BondProfile {
pub isin: Option<String>,
pub cusip: Option<String>,
pub figi: Option<String>,
pub coupon: Option<f64>,
#[serde(rename = "maturityDate")]
pub maturity_date: Option<String>,
#[serde(rename = "offeringPrice")]
pub offering_price: Option<f64>,
#[serde(rename = "issueDate")]
pub issue_date: Option<String>,
#[serde(rename = "bondType")]
pub bond_type: Option<String>,
#[serde(rename = "debtType")]
pub debt_type: Option<String>,
#[serde(rename = "industryGroup")]
pub industry_group: Option<String>,
#[serde(rename = "industrySubGroup")]
pub industry_sub_group: Option<String>,
pub asset: Option<String>,
#[serde(rename = "assetType")]
pub asset_type: Option<String>,
#[serde(rename = "datedDate")]
pub dated_date: Option<String>,
#[serde(rename = "firstCouponDate")]
pub first_coupon_date: Option<String>,
#[serde(rename = "originalOffering")]
pub original_offering: Option<f64>,
#[serde(rename = "amountOutstanding")]
pub amount_outstanding: Option<f64>,
#[serde(rename = "paymentFrequency")]
pub payment_frequency: Option<String>,
#[serde(rename = "securityLevel")]
pub security_level: Option<String>,
pub callable: Option<bool>,
#[serde(rename = "couponType")]
pub coupon_type: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BondPrice {
pub symbol: Option<String>,
#[serde(rename = "c")]
pub current_price: Option<f64>,
#[serde(rename = "t")]
pub timestamp: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BondTickData {
#[serde(rename = "s")]
pub symbol: String,
pub skip: i64,
pub count: i64,
pub total: i64,
#[serde(rename = "v")]
pub volume: Vec<f64>,
#[serde(rename = "p")]
pub price: Vec<f64>,
#[serde(rename = "t")]
pub timestamp: Vec<i64>,
#[serde(rename = "x")]
pub exchange: Vec<String>,
#[serde(rename = "c")]
pub conditions: Option<Vec<Vec<String>>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct YieldCurvePoint {
#[serde(rename = "d")]
pub date: String,
#[serde(rename = "v")]
pub value: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BondYieldCurve {
pub code: String,
pub data: Vec<YieldCurvePoint>,
}