use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SectorPerformance {
pub sector: String,
pub changes_percentage: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SectorHistorical {
pub date: String,
#[serde(rename = "technologyChangesPercentage")]
pub technology_changes_percentage: Option<f64>,
#[serde(rename = "healthcareChangesPercentage")]
pub healthcare_changes_percentage: Option<f64>,
#[serde(rename = "financialServicesChangesPercentage")]
pub financial_services_changes_percentage: Option<f64>,
#[serde(rename = "consumerCyclicalChangesPercentage")]
pub consumer_cyclical_changes_percentage: Option<f64>,
#[serde(rename = "industrialsChangesPercentage")]
pub industrials_changes_percentage: Option<f64>,
#[serde(rename = "energyChangesPercentage")]
pub energy_changes_percentage: Option<f64>,
#[serde(rename = "basicMaterialsChangesPercentage")]
pub basic_materials_changes_percentage: Option<f64>,
#[serde(rename = "consumerDefensiveChangesPercentage")]
pub consumer_defensive_changes_percentage: Option<f64>,
#[serde(rename = "realEstateChangesPercentage")]
pub real_estate_changes_percentage: Option<f64>,
#[serde(rename = "communicationServicesChangesPercentage")]
pub communication_services_changes_percentage: Option<f64>,
#[serde(rename = "utilitiesChangesPercentage")]
pub utilities_changes_percentage: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MarketHours {
pub stock_exchange_name: Option<String>,
pub stock_market_hours: Option<MarketHourDetails>,
#[serde(default)]
pub stock_market_holidays: Vec<Holiday>,
pub is_the_stock_market_open: Option<bool>,
pub is_the_stock_market_holiday: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MarketHourDetails {
pub open_time: Option<String>,
pub close_time: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Holiday {
pub year: Option<i32>,
pub holiday: Option<String>,
pub date: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct StockMover {
pub symbol: String,
pub name: Option<String>,
pub price: Option<f64>,
pub change: Option<f64>,
pub changes_percentage: Option<f64>,
pub volume: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PrePostMarket {
pub symbol: String,
pub pre_market_price: Option<f64>,
pub pre_market_change: Option<f64>,
pub pre_market_change_percentage: Option<f64>,
pub after_hours_price: Option<f64>,
pub after_hours_change: Option<f64>,
pub after_hours_change_percentage: Option<f64>,
}