use super::*;
pub type CongressTrading = Vec<CongressTradingEntry>;
pub type SenateTrading = Vec<TradingEntry>;
pub type HouseTrading = Vec<TradingEntry>;
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum Transaction {
Sale,
Purchase,
Exchange
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum CongressHouse {
Senate,
Representatives,
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct CongressTradingEntry {
pub report_date: Date,
pub house: CongressHouse,
#[serde(flatten)]
pub common: TradingEntry
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct TradingEntry {
#[serde(alias = "TransactionDate")]
#[serde(alias = "Date")]
pub transaction_date: Date,
pub ticker: Ticker,
#[serde(alias = "Senator")]
#[serde(alias = "Representative")]
pub representative: String,
pub transaction: Transaction,
pub amount: Option<f64>
}