finance_query/models/corporate/
fund_profile.rs1use serde::{Deserialize, Serialize};
2
3use crate::models::quote::FormattedValue;
4
5#[derive(Default, Debug, Clone, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8#[non_exhaustive]
9pub struct FundProfile {
10 #[serde(default)]
12 pub max_age: Option<i64>,
13
14 #[serde(default)]
16 pub style_box_url: Option<String>,
17
18 #[serde(default)]
20 pub family: Option<String>,
21
22 #[serde(default)]
24 pub category_name: Option<String>,
25
26 #[serde(default)]
28 pub legal_type: Option<String>,
29
30 #[serde(default)]
32 pub management_info: Option<ManagementInfo>,
33
34 #[serde(default)]
36 pub fees_expenses_investment: Option<FeesExpenses>,
37
38 #[serde(default)]
40 pub fees_expenses_investment_cat: Option<FeesExpensesCat>,
41
42 #[serde(default)]
44 pub brokerages: Option<Vec<String>>,
45}
46
47#[derive(Debug, Clone, Serialize, Deserialize)]
49#[serde(rename_all = "camelCase")]
50pub struct ManagementInfo {
51 #[serde(default)]
53 pub manager_name: Option<String>,
54
55 #[serde(default)]
57 pub manager_bio: Option<String>,
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(rename_all = "camelCase")]
63pub struct FeesExpenses {
64 #[serde(default)]
66 pub annual_report_expense_ratio: Option<FormattedValue<f64>>,
67
68 #[serde(default)]
70 pub annual_holdings_turnover: Option<FormattedValue<f64>>,
71
72 #[serde(default)]
74 pub total_net_assets: Option<FormattedValue<f64>>,
75
76 #[serde(default)]
78 pub projection_values: Option<serde_json::Value>,
79}
80
81#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(rename_all = "camelCase")]
84pub struct FeesExpensesCat {
85 #[serde(default)]
87 pub annual_report_expense_ratio: Option<FormattedValue<f64>>,
88
89 #[serde(default)]
91 pub annual_holdings_turnover: Option<FormattedValue<f64>>,
92
93 #[serde(default)]
95 pub total_net_assets: Option<FormattedValue<f64>>,
96
97 #[serde(default)]
99 pub projection_values_cat: Option<serde_json::Value>,
100}