use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Earnings {
#[serde(default)]
pub default_methodology: Option<String>,
#[serde(default)]
pub earnings_chart: Option<EarningsChart>,
#[serde(default)]
pub financials_chart: Option<FinancialsChart>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct EarningsChart {
#[serde(default)]
pub quarterly: Vec<QuarterlyEarnings>,
#[serde(default)]
pub current_quarter_estimate: Option<crate::models::quote::FormattedValue<f64>>,
#[serde(default)]
pub current_quarter_estimate_date: Option<String>,
#[serde(default)]
pub current_quarter_estimate_year: Option<i32>,
#[serde(default)]
pub current_fiscal_quarter: Option<String>,
#[serde(default)]
pub current_calendar_quarter: Option<String>,
#[serde(default)]
pub earnings_date: Vec<crate::models::quote::FormattedValue<i64>>,
#[serde(default)]
pub is_earnings_date_estimate: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct QuarterlyEarnings {
#[serde(default)]
pub date: Option<String>,
#[serde(default)]
pub actual: Option<crate::models::quote::FormattedValue<f64>>,
#[serde(default)]
pub estimate: Option<crate::models::quote::FormattedValue<f64>>,
#[serde(default)]
pub difference: Option<String>,
#[serde(default)]
pub surprise_pct: Option<String>,
#[serde(default)]
pub calendar_quarter: Option<String>,
#[serde(default)]
pub fiscal_quarter: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FinancialsChart {
#[serde(default)]
pub yearly: Vec<YearlyFinancials>,
#[serde(default)]
pub quarterly: Vec<QuarterlyFinancials>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct YearlyFinancials {
#[serde(default)]
pub date: Option<i64>,
#[serde(default)]
pub revenue: Option<crate::models::quote::FormattedValue<i64>>,
#[serde(default)]
pub earnings: Option<crate::models::quote::FormattedValue<i64>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct QuarterlyFinancials {
#[serde(default)]
pub date: Option<String>,
#[serde(default)]
pub revenue: Option<crate::models::quote::FormattedValue<i64>>,
#[serde(default)]
pub earnings: Option<crate::models::quote::FormattedValue<i64>>,
}