use serde::{Deserialize, Serialize};
use super::FormattedValue;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FundProfile {
#[serde(default)]
pub max_age: Option<i64>,
#[serde(default)]
pub style_box_url: Option<String>,
#[serde(default)]
pub family: Option<String>,
#[serde(default)]
pub category_name: Option<String>,
#[serde(default)]
pub legal_type: Option<String>,
#[serde(default)]
pub management_info: Option<ManagementInfo>,
#[serde(default)]
pub fees_expenses_investment: Option<FeesExpenses>,
#[serde(default)]
pub fees_expenses_investment_cat: Option<FeesExpensesCat>,
#[serde(default)]
pub brokerages: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ManagementInfo {
#[serde(default)]
pub manager_name: Option<String>,
#[serde(default)]
pub manager_bio: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FeesExpenses {
#[serde(default)]
pub annual_report_expense_ratio: Option<FormattedValue<f64>>,
#[serde(default)]
pub annual_holdings_turnover: Option<FormattedValue<f64>>,
#[serde(default)]
pub total_net_assets: Option<FormattedValue<f64>>,
#[serde(default)]
pub projection_values: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FeesExpensesCat {
#[serde(default)]
pub annual_report_expense_ratio: Option<FormattedValue<f64>>,
#[serde(default)]
pub annual_holdings_turnover: Option<FormattedValue<f64>>,
#[serde(default)]
pub total_net_assets: Option<FormattedValue<f64>>,
#[serde(default)]
pub projection_values_cat: Option<serde_json::Value>,
}