1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct BulkStockPrice {
9 pub symbol: Option<String>,
11 pub name: Option<String>,
13 pub price: Option<f64>,
15 pub change: Option<f64>,
17 pub changes_percentage: Option<f64>,
19 pub day_low: Option<f64>,
21 pub day_high: Option<f64>,
23 pub year_low: Option<f64>,
25 pub year_high: Option<f64>,
27 pub market_cap: Option<f64>,
29 pub pe: Option<f64>,
31 pub volume: Option<i64>,
33 pub avg_volume: Option<i64>,
35 pub exchange: Option<String>,
37 pub open: Option<f64>,
39 pub previous_close: Option<f64>,
41 pub eps: Option<f64>,
43 pub shares_outstanding: Option<i64>,
45 pub timestamp: Option<i64>,
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize)]
51#[serde(rename_all = "camelCase")]
52pub struct BulkFinancialStatement {
53 pub symbol: Option<String>,
55 pub date: Option<String>,
57 pub calendar_year: Option<String>,
59 pub period: Option<String>,
61 pub revenue: Option<f64>,
63 pub cost_of_revenue: Option<f64>,
65 pub gross_profit: Option<f64>,
67 pub operating_income: Option<f64>,
69 pub net_income: Option<f64>,
71 pub total_assets: Option<f64>,
73 pub total_liabilities: Option<f64>,
75 pub total_stockholders_equity: Option<f64>,
77 pub operating_cash_flow: Option<f64>,
79 pub free_cash_flow: Option<f64>,
81 pub total_debt: Option<f64>,
83 pub cash_and_cash_equivalents: Option<f64>,
85}
86
87#[derive(Debug, Clone, Serialize, Deserialize)]
89#[serde(rename_all = "camelCase")]
90pub struct BulkEtfHolding {
91 pub etf_symbol: Option<String>,
93 pub asset_symbol: Option<String>,
95 pub name: Option<String>,
97 pub shares_number: Option<f64>,
99 pub market_value: Option<f64>,
101 pub weight_percentage: Option<f64>,
103 pub updated: Option<String>,
105}
106
107#[derive(Debug, Clone, Serialize, Deserialize)]
109#[serde(rename_all = "camelCase")]
110pub struct BulkInsiderTrade {
111 pub filing_date: Option<String>,
113 pub transaction_date: Option<String>,
115 pub reporting_cik: Option<String>,
117 pub transaction_type: Option<String>,
119 pub securities_owned: Option<f64>,
121 pub company_cik: Option<String>,
123 pub company_name: Option<String>,
125 pub securities_transacted: Option<f64>,
127 pub price: Option<f64>,
129 pub security_name: Option<String>,
131 pub cik: Option<String>,
133 pub symbol: Option<String>,
135 pub transaction_value: Option<f64>,
137}
138
139#[derive(Debug, Clone, Serialize, Deserialize)]
141#[serde(rename_all = "camelCase")]
142pub struct BulkInstitutionalHolding {
143 pub date_reported: Option<String>,
145 pub cik: Option<String>,
147 pub name_of_issuer: Option<String>,
149 pub ticker_symbol: Option<String>,
151 pub cusip: Option<String>,
153 pub value: Option<f64>,
155 pub shares: Option<f64>,
157 pub put_call: Option<String>,
159 pub investment_discretion: Option<String>,
161 pub sole_voting_authority: Option<f64>,
163 pub shared_voting_authority: Option<f64>,
165 pub no_voting_authority: Option<f64>,
167}
168
169#[derive(Debug, Clone, Serialize, Deserialize)]
171#[serde(rename_all = "camelCase")]
172pub struct BulkEarningsEstimate {
173 pub symbol: Option<String>,
175 pub date: Option<String>,
177 pub estimated_revenue_low: Option<f64>,
179 pub estimated_revenue_high: Option<f64>,
181 pub estimated_revenue_avg: Option<f64>,
183 pub estimated_eps_avg: Option<f64>,
185 pub estimated_eps_high: Option<f64>,
187 pub estimated_eps_low: Option<f64>,
189 pub number_analyst_estimated_revenue: Option<i32>,
191 pub number_analyst_estimated_eps: Option<i32>,
193}
194
195#[derive(Debug, Clone, Serialize, Deserialize)]
197#[serde(rename_all = "camelCase")]
198pub struct BulkDataInfo {
199 pub dataset: Option<String>,
201 pub last_updated: Option<String>,
203 pub file_size: Option<i64>,
205 pub record_count: Option<i64>,
207 pub download_url: Option<String>,
209 pub format: Option<String>,
211 pub compression: Option<String>,
213 pub schema_version: Option<String>,
215}
216
217#[derive(Debug, Clone, Serialize, Deserialize)]
219#[serde(rename_all = "camelCase")]
220pub struct BulkHistoricalPricesMeta {
221 pub date_from: Option<String>,
223 pub date_to: Option<String>,
225 pub symbols_count: Option<i32>,
227 pub total_records: Option<i64>,
229 pub file_format: Option<String>,
231 pub estimated_size_mb: Option<f64>,
233}