# -*- coding: utf-8 -*- """Trading domain helpers shared by app surfaces and gateway fallbacks.""" from __future__ import annotations from typing import Any from backend.services.market import MarketService from backend.tools.data_tools import ( get_company_news, get_financial_metrics, get_insider_trades, get_market_cap, get_prices, search_line_items, ) def get_prices_payload(*, ticker: str, start_date: str, end_date: str) -> dict[str, Any]: return { "ticker": ticker, "prices": get_prices(ticker, start_date, end_date), } def get_financials_payload( *, ticker: str, end_date: str, period: str = "ttm", limit: int = 10, ) -> dict[str, Any]: return { "financial_metrics": get_financial_metrics( ticker=ticker, end_date=end_date, period=period, limit=limit, ) } def get_news_payload( *, ticker: str, end_date: str, start_date: str | None = None, limit: int = 1000, ) -> dict[str, Any]: return { "news": get_company_news( ticker=ticker, end_date=end_date, start_date=start_date, limit=limit, ) } def get_insider_trades_payload( *, ticker: str, end_date: str, start_date: str | None = None, limit: int = 1000, ) -> dict[str, Any]: return { "insider_trades": get_insider_trades( ticker=ticker, end_date=end_date, start_date=start_date, limit=limit, ) } def get_market_status_payload() -> dict[str, Any]: market_service = MarketService(tickers=[]) return market_service.get_market_status() def get_market_cap_payload(*, ticker: str, end_date: str) -> dict[str, Any]: return { "ticker": ticker, "end_date": end_date, "market_cap": get_market_cap(ticker, end_date), } def get_line_items_payload( *, ticker: str, line_items: list[str], end_date: str, period: str = "ttm", limit: int = 10, ) -> dict[str, Any]: return { "search_results": search_line_items( ticker=ticker, line_items=line_items, end_date=end_date, period=period, limit=limit, ) }