Refactor code for improved readability and maintainability across multiple files
This commit is contained in:
+25
-7
@@ -1,13 +1,16 @@
|
||||
from pydantic import BaseModel
|
||||
from datetime import datetime
|
||||
from typing import List, Optional
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class AddressRequest(BaseModel):
|
||||
province: str
|
||||
city: str
|
||||
postal_code: str
|
||||
country: str = "Canada"
|
||||
|
||||
|
||||
class ReceiptRequest(BaseModel):
|
||||
id: str
|
||||
file_name: str
|
||||
@@ -24,6 +27,7 @@ class ReceiptRequest(BaseModel):
|
||||
currency: str = "CAD"
|
||||
is_meals_entertainment: bool = False
|
||||
|
||||
|
||||
class TransactionRequest(BaseModel):
|
||||
id: str
|
||||
transaction_date: datetime
|
||||
@@ -34,6 +38,7 @@ class TransactionRequest(BaseModel):
|
||||
currency: str = "CAD"
|
||||
fx_rate: Optional[float] = None
|
||||
|
||||
|
||||
class AssetRequest(BaseModel):
|
||||
id: str
|
||||
name: str
|
||||
@@ -44,42 +49,51 @@ class AssetRequest(BaseModel):
|
||||
cca_rate: float
|
||||
asset_class: str
|
||||
|
||||
|
||||
class MatchingRequest(BaseModel):
|
||||
receipt_ids: List[str]
|
||||
transaction_ids: List[str]
|
||||
|
||||
|
||||
class MatchResponse(BaseModel):
|
||||
receipt_id: str
|
||||
transaction_id: str
|
||||
confidence_score: float
|
||||
match_reason: str
|
||||
tax_analysis: Optional[dict] = None
|
||||
# Currency information
|
||||
receipt_currency: str = "CAD"
|
||||
transaction_currency: str = "CAD"
|
||||
currency_match: bool = True
|
||||
receipt_vendor: str
|
||||
receipt_amount: float
|
||||
receipt_description: str
|
||||
receipt_category: str
|
||||
receipt_tax_amount: float
|
||||
transaction_vendor: str
|
||||
transaction_amount: float
|
||||
|
||||
|
||||
class MatchingResponse(BaseModel):
|
||||
matches: List[MatchResponse]
|
||||
stats: dict
|
||||
|
||||
|
||||
class ApprovalRequest(BaseModel):
|
||||
match_id: str
|
||||
approved: bool
|
||||
reason: Optional[str] = None
|
||||
|
||||
|
||||
class RuleRequest(BaseModel):
|
||||
name: str
|
||||
condition: str
|
||||
action: str
|
||||
source: str = "user"
|
||||
|
||||
|
||||
class DocumentUploadResponse(BaseModel):
|
||||
file_id: str
|
||||
filename: str
|
||||
upload_date: datetime
|
||||
status: str
|
||||
|
||||
|
||||
class DocumentProcessResponse(BaseModel):
|
||||
file_id: str
|
||||
extraction_success: bool
|
||||
@@ -92,11 +106,13 @@ class DocumentProcessResponse(BaseModel):
|
||||
confidence: Optional[float] = None
|
||||
error: Optional[str] = None
|
||||
|
||||
|
||||
# New tax-related models
|
||||
class TaxCalculationRequest(BaseModel):
|
||||
receipt_id: str
|
||||
transaction_id: Optional[str] = None
|
||||
|
||||
|
||||
class TaxCalculationResponse(BaseModel):
|
||||
receipt_id: str
|
||||
rules_applied: List[str]
|
||||
@@ -104,11 +120,13 @@ class TaxCalculationResponse(BaseModel):
|
||||
fx_analysis: Optional[dict] = None
|
||||
meals_entertainment: dict
|
||||
|
||||
|
||||
class DepreciationRequest(BaseModel):
|
||||
asset: AssetRequest
|
||||
year: int
|
||||
method: str # "straight_line" or "cca"
|
||||
|
||||
|
||||
class DepreciationResponse(BaseModel):
|
||||
asset_id: str
|
||||
year: int
|
||||
@@ -117,4 +135,4 @@ class DepreciationResponse(BaseModel):
|
||||
book_value: float
|
||||
total_depreciation: Optional[float] = None
|
||||
success: bool
|
||||
error: Optional[str] = None
|
||||
error: Optional[str] = None
|
||||
|
||||
Reference in New Issue
Block a user