""" 财务数据Schema """ from datetime import date from typing import List, Optional, Dict, Any from pydantic import BaseModel, Field class FinanceRequest(BaseModel): """财务数据请求""" codes: str = Field(..., description="股票代码,多个用逗号分隔") start_date: str = Field(..., description="开始报告期(YYYYMMDD)") end_date: str = Field(..., description="结束报告期(YYYYMMDD)") class BalanceSheetData(BaseModel): """资产负债表数据""" report_date: str report_type: Optional[int] = None statement_type: Optional[int] = None total_assets: Optional[float] = None total_cur_assets: Optional[float] = None total_noncur_assets: Optional[float] = None currency_cap: Optional[float] = None notes_receivable: Optional[float] = None acct_receivable: Optional[float] = None inventory: Optional[float] = None fix_assets: Optional[float] = None total_liab: Optional[float] = None total_cur_liab: Optional[float] = None total_noncur_liab: Optional[float] = None notes_payable: Optional[float] = None acct_payable: Optional[float] = None st_borrowing: Optional[float] = None lt_loan: Optional[float] = None tot_share_equity: Optional[float] = None class BalanceSheetResponse(BaseModel): """资产负债表响应""" code: str data: List[BalanceSheetData] class CashFlowData(BaseModel): """现金流量表数据""" report_date: str report_type: Optional[int] = None statement_type: Optional[int] = None net_cash_flows_opera_act: Optional[float] = None net_cash_flows_inv_act: Optional[float] = None net_cash_flows_fin_act: Optional[float] = None net_incr_cash_and_cash_equ: Optional[float] = None cash_recp_sg_and_rs: Optional[float] = None cash_pay_goods_services: Optional[float] = None class CashFlowResponse(BaseModel): """现金流量表响应""" code: str data: List[CashFlowData] class IncomeData(BaseModel): """利润表数据""" report_date: str report_type: Optional[int] = None statement_type: Optional[int] = None tot_opera_rev: Optional[float] = None opera_rev: Optional[float] = None tot_opera_cost: Optional[float] = None opera_profit: Optional[float] = None total_profit: Optional[float] = None net_pro_incl_min_int_inc: Optional[float] = None basic_eps: Optional[float] = None diluted_eps: Optional[float] = None rd_exp: Optional[float] = None selling_exp: Optional[float] = None admin_exp: Optional[float] = None fin_exp: Optional[float] = None class IncomeResponse(BaseModel): """利润表响应""" code: str data: List[IncomeData]