Source code for cadrumo.application.calculations.iva_compensation_history_ports
"""Application-owned capability for IVA compensation history persistence."""from__future__importannotationsfromtypingimportProtocolfrom...core.periodimportPeriodfrom...core.secure_object_writeimportSecureObjectWritefrom...domain.iva_compensation.carry_forwardimportIvaCompensationPeriodStatefrom.errorsimportIvaCompensationModeloErrorfrom.observations_repositoryimportCalculationObservationStorageProtocol
[docs]classIvaCompensationHistoryPersistenceError(IvaCompensationModeloError):"""Translated persistence failure at the IVA-history boundary."""
[docs]classIvaCompensationHistoryRepositoryProtocol(Protocol):"""Required bucket-bound capability for IVA compensation period states."""
[docs]defload_period(self,period:Period)->IvaCompensationPeriodState|None:"""Load one period state, or return ``None`` when absent."""...
[docs]defsave_period(self,state:IvaCompensationPeriodState)->None:"""Persist one period state."""...
[docs]deflist_periods(self)->tuple[IvaCompensationPeriodState,...]:"""Return all period states in chronological order."""...
[docs]defto_secure_object_write(self,payload:IvaCompensationPeriodState,*,expected_revision_id:str|None=None,)->SecureObjectWrite:"""Prepare one history write for an atomic outer co-commit."""...
@propertydefsecure_object_repository(self)->CalculationObservationStorageProtocol:"""Return the storage capability used for co-commit."""...