use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MutualFundProfile {
pub name: Option<String>,
pub category: Option<String>,
#[serde(rename = "investmentSegment")]
pub investment_segment: Option<String>,
#[serde(rename = "totalNav")]
pub total_nav: Option<f64>,
#[serde(rename = "expenseRatio")]
pub expense_ratio: Option<f64>,
pub benchmark: Option<String>,
#[serde(rename = "inceptionDate")]
pub inception_date: Option<String>,
pub description: Option<String>,
#[serde(rename = "fundFamily")]
pub fund_family: Option<String>,
#[serde(rename = "fundCompany")]
pub fund_company: Option<String>,
pub manager: Option<String>,
pub status: Option<String>,
pub beta: Option<f64>,
#[serde(rename = "deferredLoad")]
pub deferred_load: Option<f64>,
#[serde(rename = "fee12b1")]
pub fee_12b1: Option<f64>,
#[serde(rename = "frontLoad")]
pub front_load: Option<f64>,
#[serde(rename = "iraMinInvestment")]
pub ira_min_investment: Option<f64>,
pub isin: Option<String>,
pub cusip: Option<String>,
#[serde(rename = "maxRedemptionFee")]
pub max_redemption_fee: Option<f64>,
#[serde(rename = "standardMinInvestment")]
pub standard_min_investment: Option<f64>,
pub turnover: Option<f64>,
#[serde(rename = "seriesId")]
pub series_id: Option<String>,
#[serde(rename = "seriesName")]
pub series_name: Option<String>,
#[serde(rename = "classId")]
pub class_id: Option<String>,
#[serde(rename = "className")]
pub class_name: Option<String>,
#[serde(rename = "sfdrClassification")]
pub sfdr_classification: Option<String>,
pub currency: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MutualFundHolding {
pub symbol: Option<String>,
pub name: Option<String>,
pub isin: Option<String>,
pub cusip: Option<String>,
pub share: Option<f64>,
pub percent: Option<f64>,
pub value: Option<f64>,
#[serde(rename = "assetType")]
pub asset_type: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MutualFundHoldings {
pub symbol: String,
#[serde(rename = "atDate")]
pub at_date: Option<String>,
#[serde(rename = "numberOfHoldings")]
pub number_of_holdings: Option<i64>,
pub holdings: Vec<MutualFundHolding>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MutualFundCountryExposure {
pub country: String,
pub exposure: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MutualFundCountryExposureData {
pub symbol: String,
#[serde(rename = "countryExposure")]
pub country_exposure: Vec<MutualFundCountryExposure>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MutualFundSectorExposure {
pub sector: String,
pub exposure: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MutualFundSectorExposureData {
pub symbol: String,
#[serde(rename = "sectorExposure")]
pub sector_exposure: Vec<MutualFundSectorExposure>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MutualFundEET {
pub isin: String,
pub data: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MutualFundEETPAI {
pub isin: String,
pub data: serde_json::Value,
}