""" 税务申报表相关Pydantic模型 """ from datetime import date from typing import Optional, List from pydantic import BaseModel, Field class TaxDeclarationBase(BaseModel): """税务申报表基础模型""" taxpayer_name: str = Field(..., description="纳税人名称") taxpayer_id: str = Field(..., description="纳税人识别号") tax_period: str = Field(..., description="纳税期间") declaration_date: date = Field(..., description="申报日期") tax_authority_code: str = Field(..., description="主管税务机关代码") tax_authority_name: str = Field(..., description="主管税务机关名称") taxpayer_type: str = Field(..., description="纳税人类型") tax_rate: float = Field(..., description="税率") sales_revenue: float = Field(..., description="销售收入") sales_revenue_taxable: float = Field(..., description="销售收入应税") output_tax: float = Field(..., description="销项税额") input_tax: float = Field(..., description="进项税额") input_tax_deductible: float = Field(..., description="进项税额抵扣") tax_payable: float = Field(..., description="应纳税额") tax_to_pay: float = Field(..., description="应纳税额(已缴)") refund_amount: float = Field(..., description="退税金额") declaration_status: str = Field(..., description="申报状态") is_reconciled: bool = Field(..., description="是否已对账") class TaxDeclarationCreate(TaxDeclarationBase): """创建税务申报表""" pass class TaxDeclarationUpdate(BaseModel): """更新税务申报表""" taxpayer_name: Optional[str] = None taxpayer_id: Optional[str] = None tax_period: Optional[str] = None declaration_date: Optional[date] = None tax_authority_code: Optional[str] = None tax_authority_name: Optional[str] = None taxpayer_type: Optional[str] = None tax_rate: Optional[float] = None sales_revenue: Optional[float] = None sales_revenue_taxable: Optional[float] = None output_tax: Optional[float] = None input_tax: Optional[float] = None input_tax_deductible: Optional[float] = None tax_payable: Optional[float] = None tax_to_pay: Optional[float] = None refund_amount: Optional[float] = None declaration_status: Optional[str] = None is_reconciled: Optional[bool] = None class TaxDeclarationResponse(TaxDeclarationBase): """税务申报表响应模型""" id: int vat_declaration_id: str class Config: from_attributes = True class TaxDeclarationListResponse(BaseModel): """税务申报表列表响应模型""" records: List[TaxDeclarationResponse] total: int page: int size: int