finance_query/models/lookup/
quote.rs

1//! Lookup Quote Model
2//!
3//! Represents individual symbol results from the lookup endpoint
4
5use serde::{Deserialize, Serialize};
6
7/// A quote/document result from symbol lookup
8#[derive(Debug, Clone, Serialize, Deserialize)]
9#[cfg_attr(feature = "dataframe", derive(crate::ToDataFrame))]
10#[non_exhaustive]
11#[serde(rename_all = "camelCase")]
12pub struct LookupQuote {
13    /// Stock symbol
14    pub symbol: String,
15    /// Short name
16    #[serde(skip_serializing_if = "Option::is_none")]
17    pub short_name: Option<String>,
18    /// Long name
19    #[serde(skip_serializing_if = "Option::is_none")]
20    pub long_name: Option<String>,
21    /// Quote type (EQUITY, ETF, MUTUALFUND, INDEX, FUTURE, CURRENCY, CRYPTOCURRENCY)
22    #[serde(skip_serializing_if = "Option::is_none")]
23    pub quote_type: Option<String>,
24    /// Exchange code
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub exchange: Option<String>,
27    /// Exchange display name
28    #[serde(skip_serializing_if = "Option::is_none")]
29    pub exch_disp: Option<String>,
30    /// Type display name
31    #[serde(skip_serializing_if = "Option::is_none")]
32    pub type_disp: Option<String>,
33    /// Industry classification
34    #[serde(skip_serializing_if = "Option::is_none")]
35    pub industry: Option<String>,
36    /// Sector classification
37    #[serde(skip_serializing_if = "Option::is_none")]
38    pub sector: Option<String>,
39    /// Current/last price
40    #[serde(skip_serializing_if = "Option::is_none")]
41    pub regular_market_price: Option<f64>,
42    /// Price change
43    #[serde(skip_serializing_if = "Option::is_none")]
44    pub regular_market_change: Option<f64>,
45    /// Price change percent
46    #[serde(skip_serializing_if = "Option::is_none")]
47    pub regular_market_change_percent: Option<f64>,
48    /// Previous close price
49    #[serde(skip_serializing_if = "Option::is_none")]
50    pub regular_market_previous_close: Option<f64>,
51    /// Company logo URL (populated when include_logo=true)
52    #[serde(skip_serializing_if = "Option::is_none")]
53    pub logo_url: Option<String>,
54    /// Company logo URL (alternate, populated when include_logo=true)
55    #[serde(skip_serializing_if = "Option::is_none")]
56    pub company_logo_url: Option<String>,
57}