Skip to main content

finance_query/models/corporate/
asset_profile.rs

1//! Asset Profile Module
2//!
3//! Contains company information including address, sector, officers, and risk metrics.
4
5use serde::{Deserialize, Serialize};
6
7/// Company asset profile and information
8#[derive(Default, Debug, Clone, Serialize, Deserialize)]
9#[serde(rename_all = "camelCase")]
10#[non_exhaustive]
11pub struct AssetProfile {
12    /// Street address line 1
13    #[serde(default)]
14    pub address1: Option<String>,
15
16    /// Street address line 2
17    #[serde(default)]
18    pub address2: Option<String>,
19
20    /// Street address line 3
21    #[serde(default)]
22    pub address3: Option<String>,
23
24    /// City
25    #[serde(default)]
26    pub city: Option<String>,
27
28    /// State or province
29    #[serde(default)]
30    pub state: Option<String>,
31
32    /// Postal/ZIP code
33    #[serde(default)]
34    pub zip: Option<String>,
35
36    /// Country
37    #[serde(default)]
38    pub country: Option<String>,
39
40    /// Phone number
41    #[serde(default)]
42    pub phone: Option<String>,
43
44    /// Fax number
45    #[serde(default)]
46    pub fax: Option<String>,
47
48    /// Company website
49    #[serde(default)]
50    pub website: Option<String>,
51
52    /// Industry
53    #[serde(default)]
54    pub industry: Option<String>,
55
56    /// Industry key (machine-readable)
57    #[serde(default)]
58    pub industry_key: Option<String>,
59
60    /// Industry disp (display name)
61    #[serde(default)]
62    pub industry_disp: Option<String>,
63
64    /// Sector
65    #[serde(default)]
66    pub sector: Option<String>,
67
68    /// Sector key (machine-readable)
69    #[serde(default)]
70    pub sector_key: Option<String>,
71
72    /// Sector disp (display name)
73    #[serde(default)]
74    pub sector_disp: Option<String>,
75
76    /// Long business summary
77    #[serde(default)]
78    pub long_business_summary: Option<String>,
79
80    /// Number of full-time employees
81    #[serde(default)]
82    pub full_time_employees: Option<i64>,
83
84    /// List of company officers
85    #[serde(default)]
86    pub company_officers: Vec<CompanyOfficer>,
87
88    /// Audit risk score (1-10)
89    #[serde(default)]
90    pub audit_risk: Option<i32>,
91
92    /// Board risk score (1-10)
93    #[serde(default)]
94    pub board_risk: Option<i32>,
95
96    /// Compensation risk score (1-10)
97    #[serde(default)]
98    pub compensation_risk: Option<i32>,
99
100    /// Shareholder rights risk score (1-10)
101    #[serde(default)]
102    pub shareholder_rights_risk: Option<i32>,
103
104    /// Overall risk score (1-10)
105    #[serde(default)]
106    pub overall_risk: Option<i32>,
107
108    /// Governance epoch date
109    #[serde(default)]
110    pub governance_epoch_date: Option<i64>,
111
112    /// Compensation as of epoch date
113    #[serde(default)]
114    pub compensation_as_of_epoch_date: Option<i64>,
115
116    /// Maximum age of this data in seconds
117    #[serde(default)]
118    pub max_age: Option<i64>,
119}
120
121/// Company officer information
122#[derive(Default, Debug, Clone, Serialize, Deserialize)]
123#[serde(rename_all = "camelCase")]
124#[non_exhaustive]
125pub struct CompanyOfficer {
126    /// Maximum age of this data in seconds
127    #[serde(default)]
128    pub max_age: Option<i64>,
129
130    /// Officer's name
131    #[serde(default)]
132    pub name: Option<String>,
133
134    /// Officer's age
135    #[serde(default)]
136    pub age: Option<i32>,
137
138    /// Officer's title/position
139    #[serde(default)]
140    pub title: Option<String>,
141
142    /// Year the officer was born
143    #[serde(default)]
144    pub year_born: Option<i32>,
145
146    /// Fiscal year for compensation data
147    #[serde(default)]
148    pub fiscal_year: Option<i32>,
149
150    /// Total compensation/pay
151    #[serde(default)]
152    pub total_pay: Option<crate::models::quote::FormattedValue<i64>>,
153
154    /// Value of exercised options
155    #[serde(default)]
156    pub exercised_value: Option<crate::models::quote::FormattedValue<i64>>,
157
158    /// Value of unexercised options
159    #[serde(default)]
160    pub unexercised_value: Option<crate::models::quote::FormattedValue<i64>>,
161}