DAR_standardiser / models.py
rameshmoorthy's picture
Create models.py
5c4c6e5 verified
from pydantic import BaseModel, Field
from typing import List, Optional
class AuditParaSchema(BaseModel):
audit_para_number: Optional[int] = Field(None, description="The number of the audit para.")
audit_para_heading: Optional[str] = Field(None, description="The original heading from the DAR.")
revenue_involved_lakhs_rs: Optional[float] = Field(None, description="Revenue involved in Lakhs Rs.")
revenue_recovered_lakhs_rs: Optional[float] = Field(None, description="Revenue recovered in Lakhs Rs.")
status_of_para: Optional[str] = Field(None, description="Status of the para, e.g., 'Agreed and Paid'.")
class DARHeaderSchema(BaseModel):
audit_group_number: Optional[int] = Field(None, description="Audit Group Number.")
gstin: Optional[str] = Field(None, description="GSTIN of the taxpayer.")
trade_name: Optional[str] = Field(None, description="Name of the taxpayer.")
category: Optional[str] = Field(None, description="Category of the taxpayer.")
total_amount_detected_overall_rs: Optional[float] = Field(None, description="Overall total amount detected in Rs.")
total_amount_recovered_overall_rs: Optional[float] = Field(None, description="Overall total amount recovered in Rs.")
class ParsedDARReport(BaseModel):
header: Optional[DARHeaderSchema] = None
audit_paras: List[AuditParaSchema] = []
parsing_errors: Optional[str] = Field(None, description="Errors from the parsing process.")
class HarmonisedPara(BaseModel):
"""A model to hold the original and its corresponding harmonised heading."""
original_heading: str
harmonised_heading: str