Source code for cadrumo.application.modelo.calculation_action_ports
"""Application-owned capabilities required by Modelo calculation actions.The calculation action coordinates several persisted authorities, but it mustnot know which encrypted-storage adapters implement them. Executablecomposition roots construct one bundle per profile bucket and pass it throughthe calculation call chain. Keeping the less-common capabilities here alsokeeps the action boundary honest: calculation cannot silently construct arepository or resolve an implicit global store when a caller forgets a port."""from__future__importannotationsfromdataclassesimportdataclassfromtypingimportTYPE_CHECKING,Protocolfromcadrumo.application.calculations.observations_repositoryimport(CalculationObservationRepositoryProtocol,IvaWalletDecisionRepositoryProtocol,)from...domain.bienes_inversion.registerimportBienesInversionIvaRegisterfrom...domain.buckets.protocolsimportBucketEventHistoryRepositoryProtocolfrom...domain.invoices.protocolsimportInvoiceCatalogueRepositoryProtocolfrom...domain.modelos.protocolsimport(CalculationRevisionCatalogueRepositoryProtocol,ModeloRecordCatalogueRepositoryProtocol,)from...domain.modelos.work_unit_repositoryimportWorkUnitCatalogueRepositoryProtocolfrom...domain.transactions.protocolsimportTransactionCatalogueRepositoryProtocolfrom..aggregation.inventoryimportInventoryLedgerRepositoryProtocolfrom..aggregation.percepciones_observations_repositoryimportPercepcionObservationPortsfrom..aggregation.retencion_observations_repositoryimportRetencionObservationPortsfrom..bienes_inversion.portsimportBienesInversionIvaRegisterRepositoryProtocolfrom..calculations.iva_compensation_history_portsimportIvaCompensationHistoryRepositoryProtocolfrom..invoices.catalogue_reads_portsimportInvoiceCatalogueReadPortsfrom..invoices.source_resolver_portsimportInvoiceSourceResolverPortsfrom..ledger.usage_ratio_repositoryimportUsageRatioProfileLoaderfrom..live.borrador_100importBorrador100SnapshotRepositoryfrom..prorrata_register.portsimportProrrataRegisterServiceRepositoryProtocolfrom..user_profile.profile_read_portsimportProfileReadPortsfrom.work_lifecycle_portsimportWorkLifecyclePortsifTYPE_CHECKING:from...domain.calculations.registry.authorityimportPinnedAuthorityOperation
[docs]classCalculationTransactionRepositoryProtocol(TransactionCatalogueRepositoryProtocol,Protocol):"""Transaction authority with the IVA investment migration capability."""
[docs]defmigrate_iva_deduction_authority(self,*,asset_profile_id:str,)->BienesInversionIvaRegister:"""Migrate and return the reciprocal capital-goods IVA authority."""...
[docs]classCalculationIvaWalletDecisionRepositoryProtocol(IvaWalletDecisionRepositoryProtocol,Protocol):"""IVA-wallet read capability plus the calculation decision write."""
[docs]classCalculationRevisionOverrideMigrationProtocol(Protocol):"""Boundary capability for legacy relation-override migration."""
[docs]defmigrate(self,repository:CalculationRevisionCatalogueRepositoryProtocol,*,operation:PinnedAuthorityOperation,)->None:"""Bring persisted calculation relation overrides to current keying."""...
[docs]@dataclass(frozen=True,slots=True)classCalculationActionPorts:"""Required persisted authorities for one Modelo calculation invocation."""operation:PinnedAuthorityOperationwork_unit_repository:WorkUnitCatalogueRepositoryProtocolwork_lifecycle_ports:WorkLifecyclePortscalculation_repository:CalculationRevisionCatalogueRepositoryProtocolbucket_event_repository:BucketEventHistoryRepositoryProtocoltransaction_repository:CalculationTransactionRepositoryProtocolusage_ratio_profile_loader:UsageRatioProfileLoaderprofile_read_ports:ProfileReadPortsinvoice_repository:InvoiceCatalogueRepositoryProtocolinvoice_catalogue_read_ports:InvoiceCatalogueReadPortsfiling_repository:ModeloRecordCatalogueRepositoryProtocolprorrata_register_repository:ProrrataRegisterServiceRepositoryProtocolbienes_inversion_repository:BienesInversionIvaRegisterRepositoryProtocolinventory_repository:InventoryLedgerRepositoryProtocolobservation_repository:CalculationObservationRepositoryProtocolinvoice_source_ports:InvoiceSourceResolverPortspercepciones_observation_ports:PercepcionObservationPortsiva_compensation_history_repository:IvaCompensationHistoryRepositoryProtocoliva_compensation_decision_repository:CalculationIvaWalletDecisionRepositoryProtocolborrador_snapshot_repository:Borrador100SnapshotRepositoryretencion_observation_ports:RetencionObservationPortsrelation_override_migration:CalculationRevisionOverrideMigrationProtocol
[docs]classCalculationActionPortsFactory(Protocol):"""Construct the calculation authorities for one profile bucket."""def__call__(self,*,bucket_id:str,operation:PinnedAuthorityOperation,profile_record:object|None=None,)->CalculationActionPorts:"""Return the complete calculation bundle for ``bucket_id``."""...