73 lines
2.7 KiB
Python
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
|