deep-risk/backend/app/schemas/tax.py
2025-12-14 20:08:27 +08:00

73 lines
2.7 KiB
Python

"""
税务申报表相关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