use serde::Serialize;
#[derive(Debug, Clone, PartialEq, Serialize)]
pub struct RecommendationRow {
pub period: String,
pub strong_buy: u32,
pub buy: u32,
pub hold: u32,
pub sell: u32,
pub strong_sell: u32,
}
#[derive(Debug, Clone, PartialEq, Serialize)]
pub struct RecommendationSummary {
pub latest_period: Option<String>,
pub strong_buy: u32,
pub buy: u32,
pub hold: u32,
pub sell: u32,
pub strong_sell: u32,
pub mean: Option<f64>,
pub mean_key: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize)]
pub struct UpgradeDowngradeRow {
pub ts: i64,
pub firm: Option<String>,
pub from_grade: Option<String>,
pub to_grade: Option<String>,
pub action: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize)]
pub struct PriceTarget {
pub mean: Option<f64>,
pub high: Option<f64>,
pub low: Option<f64>,
pub number_of_analysts: Option<u32>,
}
#[derive(Debug, Clone, PartialEq, Serialize)]
pub struct EarningsTrendRow {
pub period: String,
pub growth: Option<f64>,
pub earnings_estimate_avg: Option<f64>,
pub earnings_estimate_low: Option<f64>,
pub earnings_estimate_high: Option<f64>,
pub earnings_estimate_year_ago_eps: Option<f64>,
pub earnings_estimate_num_analysts: Option<u32>,
pub earnings_estimate_growth: Option<f64>,
pub revenue_estimate_avg: Option<i64>,
pub revenue_estimate_low: Option<i64>,
pub revenue_estimate_high: Option<i64>,
pub revenue_estimate_year_ago_revenue: Option<i64>,
pub revenue_estimate_num_analysts: Option<u32>,
pub revenue_estimate_growth: Option<f64>,
pub eps_trend_current: Option<f64>,
pub eps_trend_7_days_ago: Option<f64>,
pub eps_trend_30_days_ago: Option<f64>,
pub eps_trend_60_days_ago: Option<f64>,
pub eps_trend_90_days_ago: Option<f64>,
pub eps_revisions_up_last_7_days: Option<u32>,
pub eps_revisions_up_last_30_days: Option<u32>,
pub eps_revisions_down_last_7_days: Option<u32>,
pub eps_revisions_down_last_30_days: Option<u32>,
}