use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EarningsRelease {
pub symbol: Option<String>,
pub date: Option<String>,
pub hour: Option<String>,
pub year: Option<i64>,
pub quarter: Option<i64>,
#[serde(rename = "epsEstimate")]
pub eps_estimate: Option<f64>,
#[serde(rename = "epsActual")]
pub eps_actual: Option<f64>,
#[serde(rename = "revenueEstimate")]
pub revenue_estimate: Option<f64>,
#[serde(rename = "revenueActual")]
pub revenue_actual: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EarningsCalendar {
#[serde(rename = "earningsCalendar")]
pub earnings_calendar: Vec<EarningsRelease>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EconomicEvent {
pub actual: Option<f64>,
pub prev: Option<f64>,
pub country: Option<String>,
pub unit: Option<String>,
pub estimate: Option<f64>,
pub event: Option<String>,
pub impact: Option<String>,
pub time: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EconomicCalendar {
#[serde(rename = "economicCalendar")]
pub economic_calendar: Vec<EconomicEvent>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IPOEvent {
pub symbol: Option<String>,
pub date: Option<String>,
pub exchange: Option<String>,
pub name: Option<String>,
pub status: Option<String>,
pub price: Option<String>,
#[serde(rename = "numberOfShares")]
pub number_of_shares: Option<f64>,
#[serde(rename = "totalSharesValue")]
pub total_shares_value: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IPOCalendar {
#[serde(rename = "ipoCalendar")]
pub ipo_calendar: Vec<IPOEvent>,
}