use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SummaryProfile {
#[serde(skip_serializing_if = "Option::is_none")]
pub address1: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub city: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub company_officers: Option<Vec<Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub country: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub executive_team: Option<Vec<Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub full_time_employees: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub industry: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub industry_disp: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub industry_key: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ir_website: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub long_business_summary: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_age: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sector: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sector_disp: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sector_key: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub website: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub zip: Option<String>,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_deserialize_summary_profile() {
let json = r#"{
"address1": "One Apple Park Way",
"city": "Cupertino",
"companyOfficers": [],
"country": "United States",
"fullTimeEmployees": 166000,
"industry": "Consumer Electronics",
"industryDisp": "Consumer Electronics",
"industryKey": "consumer-electronics",
"phone": "(408) 996-1010",
"sector": "Technology",
"sectorDisp": "Technology",
"sectorKey": "technology",
"state": "CA",
"website": "https://www.apple.com",
"zip": "95014"
}"#;
let profile: SummaryProfile = serde_json::from_str(json).unwrap();
assert_eq!(profile.city.as_deref(), Some("Cupertino"));
assert_eq!(profile.sector_disp.as_deref(), Some("Technology"));
assert_eq!(profile.full_time_employees, Some(166000));
}
}