use serde::{Deserialize, Serialize};
use crate::types::{
Change, Cik, CountryCode, CurrencyCode, Cusip, Date, ExchangeCode, Isin, MarketCapitalization,
MarketValue, Price, Ticker, Volume,
};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SymbolSearchResult {
pub symbol: Ticker,
pub name: String,
pub currency: CurrencyCode,
pub exchange_full_name: String,
pub exchange: ExchangeCode,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct NameSearchResult {
pub symbol: Ticker,
pub name: String,
pub currency: CurrencyCode,
pub exchange_full_name: String,
pub exchange: ExchangeCode,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CikSearchResult {
pub symbol: Ticker,
pub company_name: String,
pub cik: Cik,
pub exchange_full_name: String,
pub exchange: ExchangeCode,
pub currency: CurrencyCode,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CusipSearchResult {
pub symbol: Ticker,
pub company_name: String,
pub cusip: Cusip,
pub market_cap: MarketCapitalization,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct IsinSearchResult {
pub symbol: Ticker,
pub name: String,
pub isin: Isin,
pub market_cap: MarketCapitalization,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ExchangeVariant {
pub symbol: Ticker,
pub price: Price,
pub beta: MarketValue,
pub vol_avg: Volume,
#[serde(rename = "mktCap")]
pub market_cap: MarketCapitalization,
pub last_div: MarketValue,
pub range: String,
pub changes: Change,
pub company_name: String,
pub currency: CurrencyCode,
pub cik: Cik,
pub isin: Isin,
pub cusip: Cusip,
pub exchange: String,
pub exchange_short_name: ExchangeCode,
pub industry: String,
pub website: String,
pub description: String,
pub ceo: String,
pub sector: String,
pub country: CountryCode,
pub full_time_employees: String,
pub phone: String,
pub address: String,
pub city: String,
pub state: String,
pub zip: String,
pub dcf_diff: MarketValue,
pub dcf: MarketValue,
pub image: String,
pub ipo_date: Date,
pub default_image: bool,
pub is_etf: bool,
pub is_actively_trading: bool,
pub is_adr: bool,
pub is_fund: bool,
}