Source code for cadrumo.application.ledger.action_ports
"""Explicit ports required by a bucket-scoped ledger action.The bundle is data, not a resolver: an entrypoint composition root builds itfor one bucket and passes its members to the public action it invokes."""from__future__importannotationsfromdataclassesimportdataclassfromtypingimportTYPE_CHECKINGfrom...domain.attachments.protocolsimportAttachmentStoreProtocolfrom...domain.modelos.protocolsimportCalculationRevisionCatalogueRepositoryProtocolfrom...domain.modelos.work_unit_repositoryimportWorkUnitCatalogueRepositoryProtocolfrom...domain.usage_ratios.modelimportUsageRatioProfilefrom.evidenceimportPurchaseInvoiceEvidencefrom.protocolsimport(BucketEventHistoryCoCommitWriterProtocol,InvoiceCatalogueCoCommitWriterProtocol,TransactionCatalogueCoCommitWriterProtocol,)from.usage_ratio_repositoryimportUsageRatioProfileLoaderifTYPE_CHECKING:from...domain.calculations.registry.authorityimportPinnedAuthorityOperation
[docs]@dataclass(frozen=True)classLedgerActionPorts:"""All persistence ports one ledger action may need for one bucket."""operation:PinnedAuthorityOperationtransaction_repository:TransactionCatalogueCoCommitWriterProtocolbucket_event_repository:BucketEventHistoryCoCommitWriterProtocolinvoice_repository:InvoiceCatalogueCoCommitWriterProtocolattachment_store:AttachmentStoreProtocolusage_ratio_profile:UsageRatioProfileusage_ratio_profile_loader:UsageRatioProfileLoaderwork_unit_repository:WorkUnitCatalogueRepositoryProtocolcalculation_repository:CalculationRevisionCatalogueRepositoryProtocolpurchase_invoice_evidence_records:tuple[PurchaseInvoiceEvidence,...]