from dataclasses import dataclass from datetime import date from decimal import Decimal from typing import Optional @dataclass class PRSDataFile: type: str timestamp: date file_name: str def is_budget_taxonomy_file(self) -> bool: return self.type.lower() in ("mps_group", "mps_category") def is_update_strategy(self) -> bool: return self.type.lower() in ( "po_details_uk-ie", "po_details_gsa", "po_details_ibe-it-nav-po-tr", "po_details_ca-latam-us", ) @dataclass class BudgetModel: project_id: int group_id: int category_id: int value: Decimal prs_project_code: int external_key: Optional[str] = None currency: str = "USD"