Source code for cadrumo.application.modelo.verification_repository_ports
"""Application-owned repository ports for modelo verification.Verification is an application use case: it coordinates several persistencecapabilities, but it must not know which encrypted-storage adapters implementthem. This module keeps that capability boundary in the application layer.The outer composition root supplies the concrete implementations as onecoherent bundle for each profile bucket."""from__future__importannotationsfromcollections.abcimportCallablefromdataclassesimportdataclassfrompathlibimportPathfromtypingimportTYPE_CHECKING,Protocol,runtime_checkablefrom...domain.buckets.protocolsimportBucketEventHistoryRepositoryProtocolfrom...domain.justificante.protocolsimportJustificanteRepositoryProtocolfrom...domain.modelos.protocolsimport(CalculationRevisionCatalogueRepositoryProtocol,ModeloRecordCatalogueRepositoryProtocol,TransactionParticipationIndexRepositoryProtocol,VerificationReportCatalogueRepositoryProtocol,)from...domain.modelos.work_unit_repositoryimportWorkUnitCatalogueRepositoryProtocolfrom...domain.transactions.protocolsimportTransactionCatalogueRepositoryProtocolfrom..calculations.iva_compensation_history_portsimportIvaCompensationHistoryRepositoryProtocolfrom..calculations.observations_repositoryimport(CalculationObservationRepositoryProtocol,IvaWalletDecisionRepositoryProtocol,)from..filing.draft_review_portsimportDraftReviewPortsfrom..workflow.run_modelsimportWorkflowResultifTYPE_CHECKING:from.workflow_gate_portsimportWorkflowGatePorts
[docs]@runtime_checkableclassWorkflowRunRepositoryProtocol(Protocol):"""Write-side contract for verification workflow-run audit records."""
[docs]defsave(self,result:WorkflowResult,*,runs_dir:Path|None=None)->Path:"""Persist one workflow result and return its marker path."""...
[docs]@dataclass(frozen=True,slots=True)classVerificationRepositoryBundle:"""All persistence capabilities required by one modelo verification run. Every field is required. The bundle is assembled by an outer composition root against one profile bucket and passed unchanged through the application call chain; verification never manufactures a repository or resolves an implicit global store. """calculation:CalculationRevisionCatalogueRepositoryProtocolwork_unit:WorkUnitCatalogueRepositoryProtocolfiling:ModeloRecordCatalogueRepositoryProtocoltransaction:TransactionCatalogueRepositoryProtocolverification:VerificationReportCatalogueRepositoryProtocolbucket_event:BucketEventHistoryRepositoryProtocolobservation:CalculationObservationRepositoryProtocoliva_compensation_history:IvaCompensationHistoryRepositoryProtocoliva_compensation_decision:IvaWalletDecisionRepositoryProtocolparticipation_index:TransactionParticipationIndexRepositoryProtocolworkflow_run:WorkflowRunRepositoryProtocoljustificante:JustificanteRepositoryProtocoldraft_review_ports:DraftReviewPortsworkflow_gate_ports:WorkflowGatePorts