69 lines
1.9 KiB
Python
69 lines
1.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""Financial-related schemas."""
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class FinancialMetrics(BaseModel):
|
|
ticker: str
|
|
report_period: str
|
|
period: str
|
|
currency: str
|
|
market_cap: float | None
|
|
enterprise_value: float | None
|
|
price_to_earnings_ratio: float | None
|
|
price_to_book_ratio: float | None
|
|
price_to_sales_ratio: float | None
|
|
enterprise_value_to_ebitda_ratio: float | None
|
|
enterprise_value_to_revenue_ratio: float | None
|
|
free_cash_flow_yield: float | None
|
|
peg_ratio: float | None
|
|
gross_margin: float | None
|
|
operating_margin: float | None
|
|
net_margin: float | None
|
|
return_on_equity: float | None
|
|
return_on_assets: float | None
|
|
return_on_invested_capital: float | None
|
|
asset_turnover: float | None
|
|
inventory_turnover: float | None
|
|
receivables_turnover: float | None
|
|
days_sales_outstanding: float | None
|
|
operating_cycle: float | None
|
|
working_capital_turnover: float | None
|
|
current_ratio: float | None
|
|
quick_ratio: float | None
|
|
cash_ratio: float | None
|
|
operating_cash_flow_ratio: float | None
|
|
debt_to_equity: float | None
|
|
debt_to_assets: float | None
|
|
interest_coverage: float | None
|
|
revenue_growth: float | None
|
|
earnings_growth: float | None
|
|
book_value_growth: float | None
|
|
earnings_per_share_growth: float | None
|
|
free_cash_flow_growth: float | None
|
|
operating_income_growth: float | None
|
|
ebitda_growth: float | None
|
|
payout_ratio: float | None
|
|
earnings_per_share: float | None
|
|
book_value_per_share: float | None
|
|
free_cash_flow_per_share: float | None
|
|
|
|
|
|
class FinancialMetricsResponse(BaseModel):
|
|
financial_metrics: list[FinancialMetrics]
|
|
|
|
|
|
class LineItem(BaseModel):
|
|
ticker: str
|
|
report_period: str
|
|
period: str
|
|
currency: str
|
|
|
|
# Allow additional fields dynamically
|
|
model_config = {"extra": "allow"}
|
|
|
|
|
|
class LineItemResponse(BaseModel):
|
|
search_results: list[LineItem]
|