fmp_rs/models/
market_hours.rs

1//! Models for market hours endpoints
2
3use serde::{Deserialize, Serialize};
4
5/// Market hours for a trading session
6#[derive(Debug, Clone, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct MarketHours {
9    /// Exchange name
10    pub exchange: Option<String>,
11    /// Stock exchange name
12    pub stock_exchange_name: Option<String>,
13    /// Stock market (e.g., "NYSE", "NASDAQ")
14    pub stock_market: Option<String>,
15    /// Current status (e.g., "open", "closed")
16    pub is_market_open: Option<bool>,
17    /// Market open time
18    pub opening_hour: Option<String>,
19    /// Market close time
20    pub closing_hour: Option<String>,
21    /// Current date and time
22    pub current_date_time: Option<String>,
23    /// Timezone
24    pub timezone: Option<String>,
25}
26
27/// Extended market hours information
28#[derive(Debug, Clone, Serialize, Deserialize)]
29#[serde(rename_all = "camelCase")]
30pub struct ExtendedMarketHours {
31    /// Exchange symbol
32    pub exchange: Option<String>,
33    /// Exchange name
34    pub name: Option<String>,
35    /// Market is open status
36    pub is_open: Option<bool>,
37    /// Regular session open time
38    pub market_open: Option<String>,
39    /// Regular session close time
40    pub market_close: Option<String>,
41    /// Pre-market open time
42    pub pre_market_open: Option<String>,
43    /// Pre-market close time
44    pub pre_market_close: Option<String>,
45    /// After hours open time
46    pub after_hours_open: Option<String>,
47    /// After hours close time
48    pub after_hours_close: Option<String>,
49    /// Timezone
50    pub timezone: Option<String>,
51    /// Current date time
52    pub current_date_time: Option<String>,
53}
54
55/// Market holiday information
56#[derive(Debug, Clone, Serialize, Deserialize)]
57#[serde(rename_all = "camelCase")]
58pub struct MarketHoliday {
59    /// Holiday date
60    pub date: Option<String>,
61    /// Holiday year
62    pub year: Option<i32>,
63    /// Holiday name
64    pub holiday: Option<String>,
65    /// Exchange
66    pub exchange: Option<String>,
67    /// Market status on holiday (e.g., "closed", "early_close")
68    pub market_status: Option<String>,
69    /// Early close time if applicable
70    pub early_close_time: Option<String>,
71}
72
73/// Exchange trading hours and status
74#[derive(Debug, Clone, Serialize, Deserialize)]
75#[serde(rename_all = "camelCase")]
76pub struct ExchangeHours {
77    /// Exchange symbol (e.g., "NYSE", "NASDAQ")
78    pub exchange: Option<String>,
79    /// Full exchange name
80    pub exchange_name: Option<String>,
81    /// Country
82    pub country: Option<String>,
83    /// Timezone
84    pub timezone: Option<String>,
85    /// Regular trading open time
86    pub market_open: Option<String>,
87    /// Regular trading close time  
88    pub market_close: Option<String>,
89    /// Pre-market start time
90    pub pre_market_start: Option<String>,
91    /// Pre-market end time
92    pub pre_market_end: Option<String>,
93    /// After hours start time
94    pub after_hours_start: Option<String>,
95    /// After hours end time
96    pub after_hours_end: Option<String>,
97    /// Current market status
98    pub is_open: Option<bool>,
99    /// Current date and time
100    pub current_time: Option<String>,
101    /// Day of week
102    pub day_of_week: Option<String>,
103}