cadrumo.application.ledger.action_ports module

Explicit ports required by a bucket-scoped ledger action.

The bundle is data, not a resolver: an entrypoint composition root builds it for one bucket and passes its members to the public action it invokes.

class LedgerActionPorts(operation, transaction_repository, bucket_event_repository, invoice_repository, attachment_store, usage_ratio_profile, usage_ratio_profile_loader, work_unit_repository, calculation_repository, purchase_invoice_evidence_records)[source]

Bases: object

All persistence ports one ledger action may need for one bucket.

Parameters:
operation: PinnedAuthorityOperation
transaction_repository: TransactionCatalogueCoCommitWriterProtocol
bucket_event_repository: BucketEventHistoryCoCommitWriterProtocol
invoice_repository: InvoiceCatalogueCoCommitWriterProtocol
attachment_store: AttachmentStoreProtocol
usage_ratio_profile: UsageRatioProfile
usage_ratio_profile_loader: UsageRatioProfileLoader
work_unit_repository: WorkUnitCatalogueRepositoryProtocol
calculation_repository: CalculationRevisionCatalogueRepositoryProtocol
purchase_invoice_evidence_records: tuple[PurchaseInvoiceEvidence, ...]