use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[non_exhaustive]
pub struct KeyMetricsTtm {
pub symbol: Option<String>,
#[serde(alias = "marketCap")]
pub market_cap: Option<f64>,
#[serde(alias = "enterpriseValueTTM")]
pub enterprise_value: Option<f64>,
#[serde(alias = "evToSalesTTM")]
pub ev_to_sales: Option<f64>,
#[serde(alias = "evToOperatingCashFlowTTM")]
pub ev_to_operating_cash_flow: Option<f64>,
#[serde(alias = "evToFreeCashFlowTTM")]
pub ev_to_free_cash_flow: Option<f64>,
#[serde(alias = "evToEBITDATTM")]
pub ev_to_ebitda: Option<f64>,
#[serde(alias = "netDebtToEBITDATTM")]
pub net_debt_to_ebitda: Option<f64>,
#[serde(alias = "currentRatioTTM")]
pub current_ratio: Option<f64>,
#[serde(alias = "incomeQualityTTM")]
pub income_quality: Option<f64>,
#[serde(alias = "grahamNumberTTM")]
pub graham_number: Option<f64>,
#[serde(alias = "grahamNetNetTTM")]
pub graham_net_net: Option<f64>,
#[serde(alias = "taxBurdenTTM")]
pub tax_burden: Option<f64>,
#[serde(alias = "interestBurdenTTM")]
pub interest_burden: Option<f64>,
#[serde(alias = "workingCapitalTTM")]
pub working_capital: Option<f64>,
#[serde(alias = "investedCapitalTTM")]
pub invested_capital: Option<f64>,
#[serde(alias = "returnOnAssetsTTM")]
pub return_on_assets: Option<f64>,
#[serde(alias = "operatingReturnOnAssetsTTM")]
pub operating_return_on_assets: Option<f64>,
#[serde(alias = "returnOnTangibleAssetsTTM")]
pub return_on_tangible_assets: Option<f64>,
#[serde(alias = "returnOnEquityTTM")]
pub return_on_equity: Option<f64>,
#[serde(alias = "returnOnInvestedCapitalTTM")]
pub return_on_invested_capital: Option<f64>,
#[serde(alias = "returnOnCapitalEmployedTTM")]
pub return_on_capital_employed: Option<f64>,
#[serde(alias = "earningsYieldTTM")]
pub earnings_yield: Option<f64>,
#[serde(alias = "freeCashFlowYieldTTM")]
pub free_cash_flow_yield: Option<f64>,
#[serde(alias = "capexToOperatingCashFlowTTM")]
pub capex_to_operating_cash_flow: Option<f64>,
#[serde(alias = "capexToDepreciationTTM")]
pub capex_to_depreciation: Option<f64>,
#[serde(alias = "capexToRevenueTTM")]
pub capex_to_revenue: Option<f64>,
#[serde(alias = "salesGeneralAndAdministrativeToRevenueTTM")]
pub sales_general_and_administrative_to_revenue: Option<f64>,
#[serde(alias = "researchAndDevelopementToRevenueTTM")]
pub research_and_development_to_revenue: Option<f64>,
#[serde(alias = "stockBasedCompensationToRevenueTTM")]
pub stock_based_compensation_to_revenue: Option<f64>,
#[serde(alias = "intangiblesToTotalAssetsTTM")]
pub intangibles_to_total_assets: Option<f64>,
#[serde(alias = "averageReceivablesTTM")]
pub average_receivables: Option<f64>,
#[serde(alias = "averagePayablesTTM")]
pub average_payables: Option<f64>,
#[serde(alias = "averageInventoryTTM")]
pub average_inventory: Option<f64>,
#[serde(alias = "daysOfSalesOutstandingTTM")]
pub days_of_sales_outstanding: Option<f64>,
#[serde(alias = "daysOfPayablesOutstandingTTM")]
pub days_of_payables_outstanding: Option<f64>,
#[serde(alias = "daysOfInventoryOutstandingTTM")]
pub days_of_inventory_outstanding: Option<f64>,
#[serde(alias = "operatingCycleTTM")]
pub operating_cycle: Option<f64>,
#[serde(alias = "cashConversionCycleTTM")]
pub cash_conversion_cycle: Option<f64>,
#[serde(alias = "freeCashFlowToEquityTTM")]
pub free_cash_flow_to_equity: Option<f64>,
#[serde(alias = "freeCashFlowToFirmTTM")]
pub free_cash_flow_to_firm: Option<f64>,
#[serde(alias = "tangibleAssetValueTTM")]
pub tangible_asset_value: Option<f64>,
#[serde(alias = "netCurrentAssetValueTTM")]
pub net_current_asset_value: Option<f64>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[non_exhaustive]
pub struct FinancialRatiosTtm {
pub symbol: Option<String>,
#[serde(alias = "grossProfitMarginTTM")]
pub gross_profit_margin: Option<f64>,
#[serde(alias = "ebitMarginTTM")]
pub ebit_margin: Option<f64>,
#[serde(alias = "ebitdaMarginTTM")]
pub ebitda_margin: Option<f64>,
#[serde(alias = "operatingProfitMarginTTM")]
pub operating_profit_margin: Option<f64>,
#[serde(alias = "pretaxProfitMarginTTM")]
pub pretax_profit_margin: Option<f64>,
#[serde(alias = "continuousOperationsProfitMarginTTM")]
pub continuous_operations_profit_margin: Option<f64>,
#[serde(alias = "netProfitMarginTTM")]
pub net_profit_margin: Option<f64>,
#[serde(alias = "bottomLineProfitMarginTTM")]
pub bottom_line_profit_margin: Option<f64>,
#[serde(alias = "receivablesTurnoverTTM")]
pub receivables_turnover: Option<f64>,
#[serde(alias = "payablesTurnoverTTM")]
pub payables_turnover: Option<f64>,
#[serde(alias = "inventoryTurnoverTTM")]
pub inventory_turnover: Option<f64>,
#[serde(alias = "fixedAssetTurnoverTTM")]
pub fixed_asset_turnover: Option<f64>,
#[serde(alias = "assetTurnoverTTM")]
pub asset_turnover: Option<f64>,
#[serde(alias = "currentRatioTTM")]
pub current_ratio: Option<f64>,
#[serde(alias = "quickRatioTTM")]
pub quick_ratio: Option<f64>,
#[serde(alias = "solvencyRatioTTM")]
pub solvency_ratio: Option<f64>,
#[serde(alias = "cashRatioTTM")]
pub cash_ratio: Option<f64>,
#[serde(alias = "priceToEarningsRatioTTM")]
pub price_earnings_ratio: Option<f64>,
#[serde(alias = "priceToEarningsGrowthRatioTTM")]
pub peg_ratio: Option<f64>,
#[serde(alias = "forwardPriceToEarningsGrowthRatioTTM")]
pub forward_peg_ratio: Option<f64>,
#[serde(alias = "priceToEarningsDilutedRatioTTM")]
pub price_to_earnings_diluted_ratio: Option<f64>,
#[serde(alias = "priceToEarningsDilutedGrowthRatioTTM")]
pub price_to_earnings_diluted_growth_ratio: Option<f64>,
#[serde(alias = "priceToBookRatioTTM")]
pub price_to_book_ratio: Option<f64>,
#[serde(alias = "priceToSalesRatioTTM")]
pub price_to_sales_ratio: Option<f64>,
#[serde(alias = "priceToFreeCashFlowRatioTTM")]
pub price_to_free_cash_flows_ratio: Option<f64>,
#[serde(alias = "priceToOperatingCashFlowRatioTTM")]
pub price_to_operating_cash_flow_ratio: Option<f64>,
#[serde(alias = "debtToAssetsRatioTTM")]
pub debt_ratio: Option<f64>,
#[serde(alias = "debtToEquityRatioTTM")]
pub debt_equity_ratio: Option<f64>,
#[serde(alias = "debtToCapitalRatioTTM")]
pub debt_to_capital_ratio: Option<f64>,
#[serde(alias = "longTermDebtToCapitalRatioTTM")]
pub long_term_debt_to_capital_ratio: Option<f64>,
#[serde(alias = "financialLeverageRatioTTM")]
pub financial_leverage_ratio: Option<f64>,
#[serde(alias = "workingCapitalTurnoverRatioTTM")]
pub working_capital_turnover_ratio: Option<f64>,
#[serde(alias = "operatingCashFlowRatioTTM")]
pub operating_cash_flow_ratio: Option<f64>,
#[serde(alias = "operatingCashFlowSalesRatioTTM")]
pub operating_cash_flow_sales_ratio: Option<f64>,
#[serde(alias = "freeCashFlowOperatingCashFlowRatioTTM")]
pub free_cash_flow_operating_cash_flow_ratio: Option<f64>,
#[serde(alias = "debtServiceCoverageRatioTTM")]
pub debt_service_coverage_ratio: Option<f64>,
#[serde(alias = "interestCoverageRatioTTM")]
pub interest_coverage: Option<f64>,
#[serde(alias = "shortTermOperatingCashFlowCoverageRatioTTM")]
pub short_term_operating_cash_flow_coverage_ratio: Option<f64>,
#[serde(alias = "operatingCashFlowCoverageRatioTTM")]
pub operating_cash_flow_coverage_ratio: Option<f64>,
#[serde(alias = "capitalExpenditureCoverageRatioTTM")]
pub capital_expenditure_coverage_ratio: Option<f64>,
#[serde(alias = "dividendPaidAndCapexCoverageRatioTTM")]
pub dividend_paid_and_capex_coverage_ratio: Option<f64>,
#[serde(alias = "dividendPayoutRatioTTM")]
pub payout_ratio: Option<f64>,
#[serde(alias = "dividendYielTTM", alias = "dividendYieldTTM")]
pub dividend_yield: Option<f64>,
#[serde(alias = "dividendPerShareTTM")]
pub dividend_per_share: Option<f64>,
#[serde(alias = "enterpriseValueTTM")]
pub enterprise_value: Option<f64>,
#[serde(alias = "enterpriseValueMultipleTTM")]
pub enterprise_value_multiple: Option<f64>,
#[serde(alias = "revenuePerShareTTM")]
pub revenue_per_share: Option<f64>,
#[serde(alias = "netIncomePerShareTTM")]
pub net_income_per_share: Option<f64>,
#[serde(alias = "interestDebtPerShareTTM")]
pub interest_debt_per_share: Option<f64>,
#[serde(alias = "cashPerShareTTM")]
pub cash_per_share: Option<f64>,
#[serde(alias = "bookValuePerShareTTM")]
pub book_value_per_share: Option<f64>,
#[serde(alias = "tangibleBookValuePerShareTTM")]
pub tangible_book_value_per_share: Option<f64>,
#[serde(alias = "shareholdersEquityPerShareTTM")]
pub shareholders_equity_per_share: Option<f64>,
#[serde(alias = "operatingCashFlowPerShareTTM")]
pub operating_cash_flow_per_share: Option<f64>,
#[serde(alias = "capexPerShareTTM")]
pub capex_per_share: Option<f64>,
#[serde(alias = "freeCashFlowPerShareTTM")]
pub free_cash_flow_per_share: Option<f64>,
#[serde(alias = "netIncomePerEBTTTM")]
pub net_income_per_ebt: Option<f64>,
#[serde(alias = "ebtPerEbitTTM")]
pub ebt_per_ebit: Option<f64>,
#[serde(alias = "priceToFairValueTTM")]
pub price_to_fair_value: Option<f64>,
#[serde(alias = "debtToMarketCapTTM")]
pub debt_to_market_cap: Option<f64>,
#[serde(alias = "effectiveTaxRateTTM")]
pub effective_tax_rate: Option<f64>,
}