from polyfactory.factories.pydantic_factory import ModelFactory from src.models import ( AbacusState, Account, AccountPayableContract, AccountPayee, AccountPayeeDataLoaderItem, AccountPayeeDataLoaderResponse, AccountPaymentHold, AccountPaymentTerm, AccountPaymentTermDataloaderItem, AccountTaxInfo, ContractCloseBalance, ContractPayableDetails, Event, FlowthroughAllocation, GetAccountsResponse, GetFlowThroughAllocationResponse, PaginatedPayableBalanceAfterTaxEntries, PayableBalanceAfterTax, PayableBalanceAfterTaxEntry, PayableDetailEntry, PaymentEntity, PaymentGroup, PaymentGroupPayment, PaymentGroupPaymentAccount, ReferenceTaxWithholding, TaxCorrection, TaxCorrectionVAT, ) from src.processors.models import ( EligibleAccountLevelData, WorksheetPayableCalculatorDetail, ) class EventFactory(ModelFactory[Event]): __model__ = Event # Default to a non-retry (initial calculate); refresh/retry tests override this. is_retry = False class PaymentGroupPaymentFactory(ModelFactory[PaymentGroupPayment]): __model__ = PaymentGroupPayment class ContractCloseBalanceFactory(ModelFactory[ContractCloseBalance]): __model__ = ContractCloseBalance class AccountFactory(ModelFactory[Account]): __model__ = Account # TODO: This should be removed, aster refactoring # and country_of_tax_residence deletion from this model @classmethod def country_of_tax_residence(cls) -> str: return cls.__faker__.country_code() @classmethod def currency_code(cls) -> str: return cls.__faker__.currency_code() class AccountPayableContractFactory(ModelFactory[AccountPayableContract]): __model__ = AccountPayableContract class PayableBalanceAfterTaxFactory(ModelFactory[PayableBalanceAfterTax]): __model__ = PayableBalanceAfterTax class PayableBalanceAfterTaxEntryFactory(ModelFactory[PayableBalanceAfterTaxEntry]): __model__ = PayableBalanceAfterTaxEntry class ContractPayableDetailsFactory(ModelFactory[ContractPayableDetails]): __model__ = ContractPayableDetails class PayableDetailEntryFactory(ModelFactory[PayableDetailEntry]): """PayableDetailEntry factory.""" __model__ = PayableDetailEntry class ReferenceTaxWithholdingFactory(ModelFactory[ReferenceTaxWithholding]): __model__ = ReferenceTaxWithholding class PaymentEntityFactory(ModelFactory[PaymentEntity]): __model__ = PaymentEntity class TaxCorrectionFactory(ModelFactory[TaxCorrection]): """TaxCorrection factory.""" __model__ = TaxCorrection class TaxCorrectionVATFactory(ModelFactory[TaxCorrectionVAT]): """TaxCorrectionVAT factory.""" __model__ = TaxCorrectionVAT class AccountTaxInfoFactory(ModelFactory[AccountTaxInfo]): """AccountTaxInfo factory.""" __model__ = AccountTaxInfo class AccountPayeeFactory(ModelFactory[AccountPayee]): """AccountPayee factory.""" __model__ = AccountPayee class PaymentGroupFactory(ModelFactory[PaymentGroup]): """PaymentGroup factory.""" __model__ = PaymentGroup class GetAccountsResponseFactory(ModelFactory[GetAccountsResponse]): """GetAccountsResponse factory.""" __model__ = GetAccountsResponse class AccountPaymentHoldFactory(ModelFactory[AccountPaymentHold]): """AccountPaymentHold factory.""" __model__ = AccountPaymentHold class AccountPaymentTermFactory(ModelFactory[AccountPaymentTerm]): """AccountPaymentTerm factory.""" __model__ = AccountPaymentTerm class AccountPaymentTermDataloaderItemFactory( ModelFactory[AccountPaymentTermDataloaderItem] ): """AccountPaymentTermDataloaderItem factory.""" __model__ = AccountPaymentTermDataloaderItem class AccountPayeeDataLoaderResponseFactory( ModelFactory[AccountPayeeDataLoaderResponse] ): """AccountPayeeDataLoaderResponse factory.""" __model__ = AccountPayeeDataLoaderResponse class AccountPayeeDataLoaderItemFactory(ModelFactory[AccountPayeeDataLoaderItem]): """AccountPayeeDataLoaderItem factory.""" __model__ = AccountPayeeDataLoaderItem class EligibleAccountLevelDataFactory(ModelFactory[EligibleAccountLevelData]): """EligibleAccountLevelData factory.""" __model__ = EligibleAccountLevelData class WorksheetPayableCalculatorDetailFactory( ModelFactory[WorksheetPayableCalculatorDetail] ): """WorksheetPayableCalculatorDetail factory.""" __model__ = WorksheetPayableCalculatorDetail class AbacusStateFactory(ModelFactory[AbacusState]): """AbacusState factory.""" __model__ = AbacusState class PaginatedPayableBalanceAfterTaxEntriesFactory( ModelFactory[PaginatedPayableBalanceAfterTaxEntries] ): """PaginatedPayableBalanceAfterTaxEntries factory.""" __model__ = PaginatedPayableBalanceAfterTaxEntries class FlowthroughAllocationFactory(ModelFactory[FlowthroughAllocation]): """FlowthroughAllocation factory.""" __model__ = FlowthroughAllocation class GetFlowThroughAllocationResponseFactory( ModelFactory[GetFlowThroughAllocationResponse] ): """GetFlowThroughAllocationResponse factory.""" __model__ = GetFlowThroughAllocationResponse