Source code for cadrumo.application.modelo.workflow_gate_ports
"""Application-owned capabilities required by the Modelo workflow gate.The workflow gate builds and persists a filing draft and gives the submissionpreflight engine a read-only view of historical submissions. Those twosurfaces are application contracts; encrypted repository construction belongsto an outer composition root."""from__future__importannotationsfromcollections.abcimportIteratorfromdataclassesimportdataclassfromtypingimportProtocolfrom...core.errors.hierarchyimportCadrumoErrorfrom...domain.filing.schemaimportModeloDraftfrom...domain.submission.modelsimportModeloPresentado
[docs]classWorkflowGatePersistenceError(CadrumoError):"""Translated persistence failure raised by a workflow-gate capability."""def__init__(self,operation:str)->None:"""Carry the stable application operation without storage details."""self.operation=operationsuper().__init__(f"workflow gate persistence operation failed: {operation}")
[docs]classWorkflowGateDraftRepositoryProtocol(Protocol):"""Write capability for the bucket-scoped filing-draft store."""
[docs]defsave(self,payload:ModeloDraft,/)->None:"""Persist one approved draft. Core types: :class:`~cadrumo.domain.filing.schema.ModeloDraft`. """...
[docs]classWorkflowGateSubmissionRepositoryProtocol(Protocol):"""Read capability for historical submission records."""
[docs]defload(self,record_id:str,/)->ModeloPresentado|None:"""Load one historical submission by stable identifier."""...
[docs]defiter_submissions(self)->Iterator[ModeloPresentado]:"""Yield persisted submission records in stable order."""...
[docs]deflist_submission_ids(self)->tuple[str,...]:"""Return all persisted submission identifiers."""...
[docs]@dataclass(frozen=True,slots=True)classWorkflowGatePorts:"""Required persistence capabilities for one workflow-gate invocation."""draft_repository:WorkflowGateDraftRepositoryProtocolsubmission_repository:WorkflowGateSubmissionRepositoryProtocol