use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ESGScore {
pub symbol: String,
#[serde(rename = "companyName")]
pub company_name: Option<String>,
#[serde(rename = "ESGRiskRating")]
pub esg_risk_rating: Option<f64>,
#[serde(rename = "ESGRiskLevel")]
pub esg_risk_level: Option<String>,
#[serde(rename = "environmentRiskScore")]
pub environment_risk_score: Option<f64>,
#[serde(rename = "governanceRiskScore")]
pub governance_risk_score: Option<f64>,
#[serde(rename = "socialRiskScore")]
pub social_risk_score: Option<f64>,
#[serde(rename = "ratingMonth")]
pub rating_month: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct USPTOPatents {
pub symbol: String,
pub data: Vec<PatentApplication>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PatentApplication {
#[serde(rename = "applicationNumber")]
pub application_number: String,
#[serde(rename = "companyFilingName")]
pub company_filing_name: Vec<String>,
#[serde(rename = "filingDate")]
pub filing_date: String,
#[serde(rename = "publicationDate")]
pub publication_date: Option<String>,
#[serde(rename = "patentType")]
pub patent_type: String,
pub url: String,
#[serde(rename = "patentNumber")]
pub patent_number: Option<String>,
#[serde(rename = "filingStatus")]
pub filing_status: String,
#[serde(rename = "patentDescription")]
pub patent_description: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct VisaApplications {
pub symbol: String,
pub data: Vec<VisaApplication>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct VisaApplication {
pub year: i32,
pub quarter: i32,
pub symbol: String,
#[serde(rename = "caseNumber")]
pub case_number: String,
#[serde(rename = "caseStatus")]
pub case_status: String,
#[serde(rename = "receivedDate")]
pub received_date: String,
#[serde(rename = "visaClass")]
pub visa_class: String,
#[serde(rename = "jobTitle")]
pub job_title: String,
#[serde(rename = "socCode")]
pub soc_code: Option<String>,
#[serde(rename = "fullTimePosition")]
pub full_time_position: String,
#[serde(rename = "beginDate")]
pub begin_date: String,
#[serde(rename = "endDate")]
pub end_date: String,
#[serde(rename = "employerName")]
pub employer_name: String,
#[serde(rename = "worksiteAddress")]
pub worksite_address: Option<String>,
#[serde(rename = "worksiteCity")]
pub worksite_city: Option<String>,
#[serde(rename = "worksiteCounty")]
pub worksite_county: Option<String>,
#[serde(rename = "worksiteState")]
pub worksite_state: Option<String>,
#[serde(rename = "worksitePostalCode")]
pub worksite_postal_code: Option<String>,
#[serde(rename = "wageRangeFrom")]
pub wage_range_from: Option<f64>,
#[serde(rename = "wageRangeTo")]
pub wage_range_to: Option<f64>,
#[serde(rename = "wageUnitOfPay")]
pub wage_unit_of_pay: Option<String>,
#[serde(rename = "wageLevel")]
pub wage_level: Option<String>,
#[serde(rename = "h1bDependent")]
pub h1b_dependent: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SupplyChainRelationship {
pub symbol: Option<String>,
pub name: Option<String>,
pub country: Option<String>,
#[serde(rename = "oneMonthCorrelation")]
pub one_month_correlation: Option<f64>,
#[serde(rename = "oneYearCorrelation")]
pub one_year_correlation: Option<f64>,
#[serde(rename = "sixMonthCorrelation")]
pub six_month_correlation: Option<f64>,
#[serde(rename = "threeMonthCorrelation")]
pub three_month_correlation: Option<f64>,
#[serde(rename = "twoWeekCorrelation")]
pub two_week_correlation: Option<f64>,
#[serde(rename = "twoYearCorrelation")]
pub two_year_correlation: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SupplyChainData {
pub symbol: String,
pub data: Vec<SupplyChainRelationship>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Executive {
pub name: Option<String>,
pub age: Option<i64>,
pub title: Option<String>,
pub since: Option<String>,
pub sex: Option<String>,
pub compensation: Option<i64>,
pub currency: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CompanyExecutives {
pub symbol: String,
pub executive: Vec<Executive>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CongressionalTrade {
pub symbol: String,
#[serde(rename = "transactionDate")]
pub transaction_date: String,
#[serde(rename = "transactionAmount")]
pub transaction_amount: String,
pub name: String,
#[serde(rename = "ownedBy")]
pub owned_by: String,
pub position: String,
#[serde(rename = "assetName")]
pub asset_name: Option<String>,
#[serde(rename = "filingDate")]
pub filing_date: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CongressionalTrading {
pub symbol: String,
pub data: Vec<CongressionalTrade>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LobbyingData {
pub symbol: String,
pub name: Option<String>,
pub description: Option<String>,
pub country: Option<String>,
pub year: i32,
pub period: String,
pub income: f64,
pub expenses: f64,
#[serde(rename = "clientId")]
pub client_id: Option<String>,
#[serde(rename = "registrantId")]
pub registrant_id: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Lobbying {
pub symbol: String,
pub data: Vec<LobbyingData>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct USASpendingData {
pub symbol: String,
#[serde(rename = "recipientName")]
pub recipient_name: Option<String>,
#[serde(rename = "recipientParentName")]
pub recipient_parent_name: Option<String>,
#[serde(rename = "awardDescription")]
pub award_description: Option<String>,
pub country: Option<String>,
#[serde(rename = "actionDate")]
pub action_date: String,
#[serde(rename = "totalValue")]
pub total_value: f64,
#[serde(rename = "performanceStartDate")]
pub performance_start_date: Option<String>,
#[serde(rename = "performanceEndDate")]
pub performance_end_date: Option<String>,
#[serde(rename = "awardingAgencyName")]
pub awarding_agency_name: Option<String>,
#[serde(rename = "awardingSubAgencyName")]
pub awarding_sub_agency_name: Option<String>,
#[serde(rename = "awardingOfficeName")]
pub awarding_office_name: Option<String>,
#[serde(rename = "performanceCountry")]
pub performance_country: Option<String>,
#[serde(rename = "performanceCity")]
pub performance_city: Option<String>,
#[serde(rename = "performanceCounty")]
pub performance_county: Option<String>,
#[serde(rename = "performanceState")]
pub performance_state: Option<String>,
#[serde(rename = "performanceZipCode")]
pub performance_zip_code: Option<String>,
#[serde(rename = "awardType")]
pub award_type: Option<String>,
#[serde(rename = "naicsCode")]
pub naics_code: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct USASpending {
pub symbol: String,
pub data: Vec<USASpendingData>,
}