1use serde::Deserialize;
2use serde::Serialize;
3use std::fmt::Debug;
4
5use super::response::EnrichmentResponse;
6
7#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
8pub struct FinancialResponse {
9 pub smarty_key: String,
10 pub data_set_name: String,
11 pub data_subset_name: String,
12 pub attributes: FinancialAttributes,
13}
14
15impl EnrichmentResponse for FinancialResponse {
16 fn lookup_type() -> &'static str {
17 "property/financial"
18 }
19}
20
21#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
22#[serde(default)]
23pub struct FinancialAttributes {
24 pub assessed_improvement_percent: String,
25 pub assessed_improvement_value: String,
26 pub assessed_land_value: String,
27 pub assessed_value: String,
28 pub assessor_last_update: String,
29 pub assessor_taxroll_update: String,
30 pub contact_city: String,
31 pub contact_crrt: String,
32 pub contact_full_address: String,
33 pub contact_house_number: String,
34 pub contact_mail_info_format: String,
35 pub contact_mail_info_privacy: String,
36 pub contact_mailing_county: String,
37 pub contact_mailing_fips: String,
38 pub contact_post_direction: String,
39 pub contact_pre_direction: String,
40 pub contact_state: String,
41 pub contact_street_name: String,
42 pub contact_suffix: String,
43 pub contact_unit_designator: String,
44 pub contact_value: String,
45 pub contact_zip: String,
46 pub contact_zip4: String,
47 pub deed_document_page: String,
48 pub deed_document_book: String,
49 pub deed_document_number: String,
50 pub deed_owner_first_name: String,
51 pub deed_owner_first_name2: String,
52 pub deed_owner_first_name3: String,
53 pub deed_owner_first_name4: String,
54 pub deed_owner_full_name: String,
55 pub deed_owner_full_name2: String,
56 pub deed_owner_full_name3: String,
57 pub deed_owner_full_name4: String,
58 pub deed_owner_last_name: String,
59 pub deed_owner_last_name2: String,
60 pub deed_owner_last_name3: String,
61 pub deed_owner_last_name4: String,
62 pub deed_owner_middle_name: String,
63 pub deed_owner_middle_name2: String,
64 pub deed_owner_middle_name3: String,
65 pub deed_owner_middle_name4: String,
66 pub deed_owner_suffix: String,
67 pub deed_owner_suffix2: String,
68 pub deed_owner_suffix3: String,
69 pub deed_owner_suffix4: String,
70 pub deed_sale_date: String,
71 pub deed_sale_price: String,
72 pub deed_transaction_id: String,
73 pub disabled_tax_exemption: String,
74 pub financial_history: Vec<FinancialHistory>,
75 pub first_name: String,
76 pub first_name_2: String,
77 pub first_name_3: String,
78 pub first_name_4: String,
79 pub homeowner_tax_exemption: String,
80 pub last_name: String,
81 pub last_name_2: String,
82 pub last_name_3: String,
83 pub last_name_4: String,
84 pub market_improvement_percent: String,
85 pub market_improvement_value: String,
86 pub market_land_value: String,
87 pub market_value_year: String,
88 pub match_type: String,
89 pub middle_name: String,
90 pub middle_name_2: String,
91 pub middle_name_3: String,
92 pub middle_name_4: String,
93 pub other_tax_exemption: String,
94 pub owner_full_name: String,
95 pub owner_full_name_2: String,
96 pub owner_full_name_3: String,
97 pub owner_full_name_4: String,
98 pub ownership_transfer_date: String,
99 pub ownership_transfer_doc_number: String,
100 pub ownership_transfer_transaction_id: String,
101 pub ownership_type: String,
102 pub ownership_type_2: String,
103 pub previous_assessed_value: String,
104 pub prior_sale_amount: String,
105 pub prior_sale_date: String,
106 pub sale_amount: String,
107 pub sale_date: String,
108 pub senior_tax_exemption: String,
109 pub suffix: String,
110 pub suffix_2: String,
111 pub suffix_3: String,
112 pub suffix_4: String,
113 pub tax_assess_year: String,
114 pub tax_billed_amount: String,
115 pub tax_delinquent_year: String,
116 pub tax_fiscal_year: String,
117 pub tax_rate_area: String,
118 pub total_market_value: String,
119 pub trust_description: String,
120 pub veteran_tax_exemption: String,
121 pub widow_tax_exemption: String,
122}
123
124#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
125#[serde(default)]
126pub struct FinancialHistory {
127 pub code_title_company: String,
128 pub document_type_description: String,
129 pub instrument_date: String,
130 pub interest_rate_type_2: String,
131 pub lender_address: String,
132 pub lender_address_2: String,
133 pub lender_city: String,
134 pub lender_city_2: String,
135 pub lender_code_2: String,
136 pub lender_first_name: String,
137 pub lender_first_name_2: String,
138 pub lender_last_name: String,
139 pub lender_last_name_2: String,
140 pub lender_name: String,
141 pub lender_name_2: String,
142 pub lender_seller_carry_back: String,
143 pub lender_seller_carry_back_2: String,
144 pub lender_state: String,
145 pub lender_state_2: String,
146 pub lender_zip: String,
147 pub lender_zip_2: String,
148 pub lender_zip_extended: String,
149 pub lender_zip_extended_2: String,
150 pub mortgage_amount: String,
151 pub mortgage_amount_2: String,
152 pub mortgage_due_date: String,
153 pub mortgage_due_date_2: String,
154 pub mortgage_interest_rate: String,
155 pub mortgage_interest_rate_type: String,
156 pub mortgage_lender_code: String,
157 pub mortgage_rate_2: String,
158 pub mortgage_recording_date: String,
159 pub mortgage_recording_date_2: String,
160 pub mortgage_term: String,
161 pub mortgage_term_2: String,
162 pub mortgage_term_type: String,
163 pub mortgage_term_type_2: String,
164 pub mortgage_type: String,
165 pub mortgage_type_2: String,
166 pub multi_parcel_flag: String,
167 pub name_title_company: String,
168 pub recording_date: String,
169 pub transfer_amount: String,
170}