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