finance_query/models/corporate/
earnings_trend.rs1use serde::{Deserialize, Serialize};
6
7#[derive(Default, Debug, Clone, Serialize, Deserialize)]
9#[serde(rename_all = "camelCase")]
10#[non_exhaustive]
11pub struct EarningsTrend {
12 #[serde(default)]
14 pub default_methodology: Option<String>,
15
16 #[serde(default)]
18 pub max_age: Option<i64>,
19
20 #[serde(default)]
22 pub trend: Vec<EarningsTrendPeriod>,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(rename_all = "camelCase")]
28pub struct EarningsTrendPeriod {
29 #[serde(default)]
31 pub end_date: Option<String>,
32
33 #[serde(default)]
35 pub earnings_estimate: Option<EarningsEstimate>,
36
37 #[serde(default)]
39 pub revenue_estimate: Option<RevenueEstimate>,
40
41 #[serde(default)]
43 pub eps_trend: Option<EpsTrend>,
44
45 #[serde(default)]
47 pub eps_revisions: Option<EpsRevisions>,
48}
49
50#[derive(Debug, Clone, Serialize, Deserialize)]
52#[serde(rename_all = "camelCase")]
53pub struct EarningsEstimate {
54 #[serde(default)]
56 pub avg: Option<crate::models::quote::FormattedValue<f64>>,
57
58 #[serde(default)]
60 pub low: Option<crate::models::quote::FormattedValue<f64>>,
61
62 #[serde(default)]
64 pub high: Option<crate::models::quote::FormattedValue<f64>>,
65
66 #[serde(default)]
68 pub year_ago_eps: Option<crate::models::quote::FormattedValue<f64>>,
69
70 #[serde(default)]
72 pub number_of_analysts: Option<crate::models::quote::FormattedValue<i64>>,
73
74 #[serde(default)]
76 pub growth: Option<crate::models::quote::FormattedValue<f64>>,
77
78 #[serde(default)]
80 pub earnings_currency: Option<String>,
81}
82
83#[derive(Debug, Clone, Serialize, Deserialize)]
85#[serde(rename_all = "camelCase")]
86pub struct RevenueEstimate {
87 #[serde(default)]
89 pub avg: Option<crate::models::quote::FormattedValue<i64>>,
90
91 #[serde(default)]
93 pub low: Option<crate::models::quote::FormattedValue<i64>>,
94
95 #[serde(default)]
97 pub high: Option<crate::models::quote::FormattedValue<i64>>,
98
99 #[serde(default)]
101 pub number_of_analysts: Option<crate::models::quote::FormattedValue<i64>>,
102
103 #[serde(default)]
105 pub year_ago_revenue: Option<crate::models::quote::FormattedValue<i64>>,
106
107 #[serde(default)]
109 pub growth: Option<crate::models::quote::FormattedValue<f64>>,
110}
111
112#[derive(Debug, Clone, Serialize, Deserialize)]
114#[serde(rename_all = "camelCase")]
115pub struct EpsTrend {
116 #[serde(default)]
118 pub current: Option<crate::models::quote::FormattedValue<f64>>,
119
120 #[serde(default)]
122 #[serde(rename = "7daysAgo")]
123 pub seven_days_ago: Option<crate::models::quote::FormattedValue<f64>>,
124
125 #[serde(default)]
127 #[serde(rename = "30daysAgo")]
128 pub thirty_days_ago: Option<crate::models::quote::FormattedValue<f64>>,
129
130 #[serde(default)]
132 #[serde(rename = "60daysAgo")]
133 pub sixty_days_ago: Option<crate::models::quote::FormattedValue<f64>>,
134
135 #[serde(default)]
137 #[serde(rename = "90daysAgo")]
138 pub ninety_days_ago: Option<crate::models::quote::FormattedValue<f64>>,
139}
140
141#[derive(Debug, Clone, Serialize, Deserialize)]
143#[serde(rename_all = "camelCase")]
144pub struct EpsRevisions {
145 #[serde(default)]
147 pub up_last7days: Option<crate::models::quote::FormattedValue<i64>>,
148
149 #[serde(default)]
151 pub up_last30days: Option<crate::models::quote::FormattedValue<i64>>,
152
153 #[serde(default)]
155 #[serde(rename = "downLast7Days")]
156 pub down_last7_days: Option<crate::models::quote::FormattedValue<i64>>,
157
158 #[serde(default)]
160 pub down_last30days: Option<crate::models::quote::FormattedValue<i64>>,
161
162 #[serde(default)]
164 pub down_last90days: Option<crate::models::quote::FormattedValue<i64>>,
165
166 #[serde(default)]
168 pub eps_revisions_currency: Option<String>,
169}