#[derive(Debug, Clone, Default, serde::Serialize)]
pub struct AsrReport {
pub company_overview: CompanyOverview,
pub business_overview: BusinessOverview,
pub facilities: Facilities,
pub corporate_information: CorporateInformation,
pub financial_information: FinancialInformation,
}
#[derive(Debug, Clone, Default, serde::Serialize)]
pub struct CompanyOverview {
pub company_history: Option<String>,
pub employees: Option<String>,
pub business_results_summary: Vec<BusinessResultsPeriod>,
}
#[derive(Debug, Clone, Default, serde::Serialize)]
pub struct BusinessOverview {
pub business_description: Option<String>,
pub performance: Option<String>,
pub issues_to_address: Option<String>,
pub risks: Option<String>,
pub sustainability: Option<String>,
pub governance: Option<String>,
pub strategy: Option<String>,
pub risk_management: Option<String>,
pub metrics_and_targets: Option<String>,
pub human_resources_policy: Option<String>,
pub human_capital_metrics_description: Option<String>,
pub human_capital_metrics: HumanCapitalMetrics,
pub research_and_development: Option<String>,
pub critical_contracts: Option<String>,
}
#[derive(Debug, Clone, Default, serde::Serialize)]
pub struct Facilities {
pub capital_expenditures: Option<String>,
pub major_facilities: Option<String>,
pub facility_plans: Option<String>,
}
#[derive(Debug, Clone, Default, serde::Serialize)]
pub struct CorporateInformation {
pub shareholding: Option<String>,
pub major_shareholders: Option<String>,
pub dividend_policy: Option<String>,
pub officers: Option<String>,
pub corporate_governance: Option<String>,
pub officer_compensation: Option<String>,
pub governance_metrics: GovernanceMetrics,
}
#[derive(Debug, Clone, Default, serde::Serialize)]
pub struct FinancialInformation {
pub segment_information: Option<String>,
pub primary_statements: PrimaryFinancialStatements,
}
#[derive(Debug, Clone, Default, serde::Serialize)]
pub struct HumanCapitalMetrics {
pub employees_count: Option<i64>,
pub average_annual_salary: Option<i64>,
pub average_age_years: Option<f64>,
pub average_service_years: Option<f64>,
pub ratio_female_managers: Option<f64>,
pub ratio_male_childcare_leave: Option<f64>,
pub gender_pay_gap_all: Option<f64>,
pub gender_pay_gap_regular: Option<f64>,
pub gender_pay_gap_non_regular: Option<f64>,
}
#[derive(Debug, Clone, Default, serde::Serialize)]
pub struct GovernanceMetrics {
pub ratio_female_directors: Option<f64>,
pub total_officer_compensation: Option<i64>,
pub audit_fee: Option<i64>,
pub num_male_directors: Option<i64>,
pub num_female_directors: Option<i64>,
}
#[derive(Debug, Clone, Default, serde::Serialize)]
pub struct PrimaryFinancialStatements {
pub balance_sheet: BalanceSheetPeriods,
pub profit_and_loss: ProfitAndLossPeriods,
}
#[derive(Debug, Clone, Default, serde::Serialize)]
pub struct BalanceSheetPeriods {
pub current: BalanceSheetItems,
pub prior: BalanceSheetItems,
}
#[derive(Debug, Clone, Default, serde::Serialize)]
pub struct BalanceSheetItems {
pub assets: Option<i64>,
pub current_assets: Option<i64>,
pub noncurrent_assets: Option<i64>,
pub current_liabilities: Option<i64>,
pub noncurrent_liabilities: Option<i64>,
pub net_assets: Option<i64>,
pub capital_stock: Option<i64>,
pub capital_surplus: Option<i64>,
pub retained_earnings: Option<i64>,
}
#[derive(Debug, Clone, Default, serde::Serialize)]
pub struct ProfitAndLossPeriods {
pub current: ProfitAndLossItems,
pub prior: ProfitAndLossItems,
}
#[derive(Debug, Clone, Default, serde::Serialize)]
pub struct ProfitAndLossItems {
pub operating_revenue: Option<i64>,
pub operating_expenses: Option<i64>,
pub operating_income: Option<i64>,
pub ordinary_income: Option<i64>,
pub income_before_income_taxes: Option<i64>,
pub profit_loss: Option<i64>,
}
#[derive(Debug, Clone, serde::Serialize)]
pub struct BusinessResultsPeriod {
pub period: String,
pub label: String,
pub operating_revenue: Option<i64>,
pub ordinary_income: Option<i64>,
pub net_income: Option<i64>,
pub net_assets: Option<i64>,
pub total_assets: Option<i64>,
pub capital_stock: Option<i64>,
pub issued_shares_total: Option<i64>,
pub net_assets_per_share: Option<f64>,
pub earnings_per_share: Option<f64>,
pub dividend_per_share: Option<f64>,
pub equity_ratio: Option<f64>,
pub roe: Option<f64>,
pub per: Option<f64>,
pub payout_ratio: Option<f64>,
pub operating_cash_flow: Option<i64>,
pub investing_cash_flow: Option<i64>,
pub financing_cash_flow: Option<i64>,
pub cash_and_equivalents: Option<i64>,
pub total_shareholder_return: Option<f64>,
pub employees: Option<i64>,
}