1use serde::{Deserialize, Serialize};
6use std::collections::HashMap;
7
8#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
13pub struct HojinInfoResponse<T> {
14 pub errors: Option<Vec<ApiError>>,
16 #[serde(rename = "hojin-infos")]
18 pub hojin_infos: Option<Vec<T>>,
19 pub id: Option<String>,
21 pub message: Option<String>,
23}
24
25impl<T> HojinInfoResponse<T> {
26 pub fn into_hojin_infos(self) -> Vec<T> {
28 self.hojin_infos.unwrap_or_default()
29 }
30}
31
32#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
34pub struct UpdateInfoResponse<T> {
35 pub errors: Option<Vec<ApiError>>,
37 #[serde(rename = "hojin-infos")]
39 pub hojin_infos: Option<Vec<T>>,
40 pub id: Option<String>,
42 pub message: Option<String>,
44 #[serde(rename = "pageNumber")]
46 pub page_number: Option<String>,
47 #[serde(rename = "totalCount")]
49 pub total_count: Option<String>,
50 #[serde(rename = "totalPage")]
52 pub total_page: Option<String>,
53}
54
55impl<T> UpdateInfoResponse<T> {
56 pub fn into_hojin_infos(self) -> Vec<T> {
58 self.hojin_infos.unwrap_or_default()
59 }
60}
61
62pub type SearchResponse = HojinInfoResponse<HojinInfoSearch>;
64pub type HojinResponse = HojinInfoResponse<HojinInfo>;
66pub type HojinChildResponse = HojinInfoResponse<HojinInfoForChild>;
68pub type UpdateInfoHojinResponse = UpdateInfoResponse<HojinInfo>;
70pub type UpdateInfoChildResponse = UpdateInfoResponse<HojinInfoForChild>;
72
73#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
75pub struct ApiError {
76 pub item: Option<String>,
78 pub message: Option<String>,
80}
81
82#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
84pub struct HojinInfoSearch {
85 pub corporate_number: Option<String>,
87 pub location: Option<String>,
89 #[serde(rename = "meta-data")]
91 pub meta_data: Option<ChildMetadata>,
92 pub name: Option<String>,
94 pub name_en: Option<String>,
96 pub number_of_activity: Option<String>,
98 pub postal_code: Option<String>,
100 pub status: Option<String>,
102 pub update_date: Option<String>,
104}
105
106#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
108pub struct HojinInfo {
109 pub aggregated_year: Option<String>,
111 pub business_items: Option<Vec<String>>,
113 pub business_summary: Option<String>,
115 pub capital_stock: Option<i64>,
117 pub certification: Option<Vec<CertificationInfo>>,
119 pub close_cause: Option<String>,
121 pub close_date: Option<String>,
123 pub commendation: Option<Vec<CommendationInfo>>,
125 pub company_size_female: Option<i64>,
127 pub company_size_male: Option<i64>,
129 pub company_url: Option<String>,
131 pub corporate_number: Option<String>,
133 #[serde(rename = "corporation-info")]
135 pub corporation_info: Option<Vec<CorporationInfo>>,
136 pub date_of_establishment: Option<String>,
138 pub employee_number: Option<i64>,
140 pub finance: Option<Finance>,
142 pub founding_year: Option<i32>,
144 pub industry: Option<Vec<String>>,
146 pub kana: Option<String>,
148 pub kind: Option<String>,
150 pub location: Option<String>,
152 #[serde(rename = "meta-data")]
154 pub meta_data: Option<Metadata>,
155 pub name: Option<String>,
157 pub name_en: Option<String>,
159 pub patent: Option<Vec<PatentInfo>>,
161 pub postal_code: Option<String>,
163 pub process: Option<String>,
165 pub procurement: Option<Vec<ProcurementInfo>>,
167 pub qualification_grade: Option<String>,
169 pub representative_name: Option<String>,
171 pub status: Option<String>,
173 pub subsidy: Option<Vec<SubsidyInfo>>,
175 pub update_date: Option<String>,
177 pub workplace_info: Option<WorkplaceInfo>,
179}
180
181#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
185pub struct HojinInfoForChild {
186 pub certification: Option<Vec<CertificationInfo>>,
188 pub commendation: Option<Vec<CommendationInfo>>,
190 pub corporate_number: Option<String>,
192 #[serde(rename = "corporation-info")]
194 pub corporation_info: Option<Vec<CorporationInfo>>,
195 pub finance: Option<Finance>,
197 pub location: Option<String>,
199 pub name: Option<String>,
201 pub patent: Option<Vec<PatentInfo>>,
203 pub procurement: Option<Vec<ProcurementInfo>>,
205 pub subsidy: Option<Vec<SubsidyInfo>>,
207 pub workplace_info: Option<WorkplaceInfo>,
209}
210
211#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
213pub struct CertificationInfo {
214 pub category: Option<String>,
216 pub date_of_approval: Option<String>,
218 pub government_departments: Option<String>,
220 #[serde(rename = "meta-data")]
222 pub meta_data: Option<ChildMetadata>,
223 pub target: Option<String>,
225 pub title: Option<String>,
227}
228
229#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
231pub struct CommendationInfo {
232 pub category: Option<String>,
234 pub date_of_commendation: Option<String>,
236 pub government_departments: Option<String>,
238 #[serde(rename = "meta-data")]
240 pub meta_data: Option<ChildMetadata>,
241 pub note: Option<String>,
243 pub target: Option<String>,
245 pub title: Option<String>,
247}
248
249#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
251pub struct CorporationInfo {
252 pub corporation_location: Option<String>,
254 pub corporation_location_furigana: Option<String>,
256 pub corporation_name: Option<String>,
258 pub corporation_name_furigana: Option<String>,
260 pub insured_number: Option<String>,
262 pub loss_date: Option<String>,
264 #[serde(rename = "meta-data")]
266 pub meta_data: Option<ChildMetadata>,
267}
268
269#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
271pub struct Finance {
272 pub accounting_standards: Option<String>,
274 pub fiscal_year_cover_page: Option<String>,
276 pub major_shareholders: Option<Vec<MajorShareholder>>,
278 pub management_index: Option<Vec<ManagementIndex>>,
280 #[serde(rename = "meta-data")]
282 pub meta_data: Option<ChildMetadata>,
283}
284
285#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
287pub struct PatentInfo {
288 pub application_date: Option<String>,
290 pub classifications: Option<Vec<HashMap<String, String>>>,
292 #[serde(rename = "meta-data")]
294 pub meta_data: Option<ChildMetadata>,
295 pub patent_type: Option<String>,
297 pub registration_number: Option<String>,
299 pub title: Option<String>,
301 pub url: Option<String>,
303}
304
305#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
307pub struct ProcurementInfo {
308 pub amount: Option<i64>,
310 pub date_of_order: Option<String>,
312 pub government_departments: Option<String>,
314 #[serde(rename = "meta-data")]
316 pub meta_data: Option<ChildMetadata>,
317 pub note: Option<String>,
319 pub title: Option<String>,
321}
322
323#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
325pub struct SubsidyInfo {
326 pub amount: Option<String>,
328 pub date_of_approval: Option<String>,
330 pub government_departments: Option<String>,
332 #[serde(rename = "meta-data")]
334 pub meta_data: Option<ChildMetadata>,
335 pub target: Option<String>,
337 pub title: Option<String>,
339}
340
341#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
343pub struct WorkplaceInfo {
344 pub base_infos: Option<WorkplaceBaseInfos>,
346 pub compatibility_of_childcare_and_work: Option<CompatibilityOfChildcareAndWork>,
348 #[serde(rename = "meta-data")]
350 pub meta_data: Option<ChildMetadata>,
351 pub women_activity_infos: Option<WomenActivityInfos>,
353}
354
355#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
357pub struct WorkplaceBaseInfos {
358 pub average_age: Option<f64>,
360 pub average_continuous_service_years: Option<f64>,
362 #[serde(rename = "average_continuous_service_years_Female")]
364 pub average_continuous_service_years_female: Option<f64>,
365 #[serde(rename = "average_continuous_service_years_Male")]
367 pub average_continuous_service_years_male: Option<f64>,
368 pub average_continuous_service_years_type: Option<String>,
370 pub month_average_predetermined_overtime_hours: Option<f64>,
372}
373
374#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
376pub struct CompatibilityOfChildcareAndWork {
377 pub maternity_leave_acquisition_num: Option<i64>,
379 pub number_of_maternity_leave: Option<i64>,
381 pub number_of_paternity_leave: Option<i64>,
383 pub paternity_leave_acquisition_num: Option<i64>,
385}
386
387#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
389pub struct WomenActivityInfos {
390 pub female_share_of_manager: Option<i64>,
392 pub female_share_of_officers: Option<i64>,
394 pub female_workers_proportion: Option<f64>,
396 pub female_workers_proportion_type: Option<String>,
398 pub gender_total_of_manager: Option<i64>,
400 pub gender_total_of_officers: Option<i64>,
402}
403
404#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
406pub struct MajorShareholder {
407 pub name_major_shareholders: Option<String>,
409 pub shareholding_ratio: Option<f64>,
411}
412
413#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
415pub struct ManagementIndex {
416 pub capital_stock_summary_of_business_results: Option<i64>,
418 pub capital_stock_summary_of_business_results_unit_ref: Option<String>,
420 pub gross_operating_revenue_summary_of_business_results: Option<i64>,
422 pub gross_operating_revenue_summary_of_business_results_unit_ref: Option<String>,
424 pub net_assets_summary_of_business_results: Option<i64>,
426 pub net_assets_summary_of_business_results_unit_ref: Option<String>,
428 pub net_income_loss_summary_of_business_results: Option<i64>,
430 pub net_income_loss_summary_of_business_results_unit_ref: Option<String>,
432 pub net_premiums_written_summary_of_business_results_ins: Option<i64>,
434 pub net_premiums_written_summary_of_business_results_ins_unit_ref: Option<String>,
436 pub net_sales_summary_of_business_results: Option<i64>,
438 pub net_sales_summary_of_business_results_unit_ref: Option<String>,
440 pub number_of_employees: Option<i64>,
442 pub number_of_employees_unit_ref: Option<String>,
444 pub operating_revenue1_summary_of_business_results: Option<i64>,
446 pub operating_revenue1_summary_of_business_results_unit_ref: Option<String>,
448 pub operating_revenue2_summary_of_business_results: Option<i64>,
450 pub operating_revenue2_summary_of_business_results_unit_ref: Option<String>,
452 pub ordinary_income_loss_summary_of_business_results: Option<i64>,
454 pub ordinary_income_loss_summary_of_business_results_unit_ref: Option<String>,
456 pub ordinary_income_summary_of_business_results: Option<i64>,
458 pub ordinary_income_summary_of_business_results_unit_ref: Option<String>,
460 pub period: Option<String>,
462 pub total_assets_summary_of_business_results: Option<i64>,
464 pub total_assets_summary_of_business_results_unit_ref: Option<String>,
466}
467
468#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
472pub struct Metadata {
473 pub data_quality: Option<MetadataFields>,
475 pub import_frequency: Option<MetadataFields>,
477 pub key_field: Option<String>,
479 pub last_acquisition_date: Option<MetadataFields>,
481 pub last_update_date: Option<MetadataFields>,
483 pub source: Option<MetadataFields>,
485}
486
487#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
493pub struct MetadataFields {
494 pub aggregated_year: Option<String>,
496 pub business_items: Option<String>,
498 pub business_summary: Option<String>,
500 pub capital_stock: Option<String>,
502 pub close_cause: Option<String>,
504 pub close_date: Option<String>,
506 pub company_size_female: Option<String>,
508 pub company_size_male: Option<String>,
510 pub company_url: Option<String>,
512 pub corporate_number: Option<String>,
514 pub date_of_establishment: Option<String>,
516 pub employee_number: Option<String>,
518 pub founding_year: Option<String>,
520 pub industry: Option<String>,
522 pub kana: Option<String>,
524 pub kind: Option<String>,
526 pub location: Option<String>,
528 pub name: Option<String>,
530 pub name_en: Option<String>,
532 pub postal_code: Option<String>,
534 pub process: Option<String>,
536 pub qualification_grade: Option<String>,
538 pub representative_name: Option<String>,
540 pub status: Option<String>,
542 pub update_date: Option<String>,
544}
545
546#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
550pub struct ChildMetadata {
551 pub data_quality: Option<String>,
553 pub import_frequency: Option<String>,
555 pub key_field: Option<String>,
557 pub last_acquisition_date: Option<String>,
559 pub last_update_date: Option<String>,
561 pub source: Option<String>,
563}