1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct EsgScore {
9 pub symbol: String,
11 pub company_name: Option<String>,
13 pub esg_score: Option<f64>,
15 pub environment_score: Option<f64>,
17 pub social_score: Option<f64>,
19 pub governance_score: Option<f64>,
21 pub esg_performance: Option<String>,
23 pub date: Option<String>,
25 pub industry: Option<String>,
27 pub year: Option<String>,
29 pub form_type: Option<String>,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
35#[serde(rename_all = "camelCase")]
36pub struct EsgRiskRating {
37 pub symbol: String,
39 pub company_name: Option<String>,
41 pub industry: Option<String>,
43 pub year: Option<String>,
45 pub esg_risk_score: Option<f64>,
47 pub industry_rank: Option<String>,
49 pub esg_risk_percentile: Option<f64>,
51 pub esg_risk_level: Option<String>,
53 pub environment_risk_score: Option<f64>,
55 pub governance_risk_score: Option<f64>,
57 pub social_risk_score: Option<f64>,
59}
60
61#[derive(Debug, Clone, Serialize, Deserialize)]
63#[serde(rename_all = "camelCase")]
64pub struct EsgBenchmark {
65 pub year: Option<String>,
67 pub industry: Option<String>,
69 pub esg_benchmark: Option<f64>,
71 pub environment_benchmark: Option<f64>,
73 pub social_benchmark: Option<f64>,
75 pub governance_benchmark: Option<f64>,
77}
78
79#[derive(Debug, Clone, Serialize, Deserialize)]
81#[serde(rename_all = "camelCase")]
82pub struct CongressionalTrading {
83 pub disclosure_date: Option<String>,
85 pub transaction_date: Option<String>,
87 pub representative: Option<String>,
89 pub transaction: Option<String>,
91 pub ticker: Option<String>,
93 pub asset_description: Option<String>,
95 pub asset_type: Option<String>,
97 pub amount: Option<String>,
99 pub house: Option<String>,
101 pub party: Option<String>,
103 pub state: Option<String>,
105 pub district: Option<String>,
107}
108
109#[derive(Debug, Clone, Serialize, Deserialize)]
111#[serde(rename_all = "camelCase")]
112pub struct SenateTrading {
113 pub disclosure_date: Option<String>,
115 pub transaction_date: Option<String>,
117 pub senator: Option<String>,
119 pub transaction_type: Option<String>,
121 pub ticker: Option<String>,
123 pub asset_description: Option<String>,
125 pub asset_type: Option<String>,
127 pub amount: Option<String>,
129 pub party: Option<String>,
131 pub state: Option<String>,
133 pub date_received: Option<String>,
135}
136
137#[derive(Debug, Clone, Serialize, Deserialize)]
139#[serde(rename_all = "camelCase")]
140pub struct SocialSentiment {
141 pub date: String,
143 pub symbol: String,
145 pub stocktwits_posts: Option<i32>,
147 pub twitter_posts: Option<i32>,
149 pub twitter_comments: Option<i32>,
151 pub twitter_likes: Option<i32>,
153 pub twitter_sentiment: Option<f64>,
155 pub stocktwits_sentiment: Option<f64>,
157 pub general_sentiment: Option<String>,
159}