Source code for cadrumo.application.modelo.operator_inputs
"""Operator input contracts shared by modelo delivery workflows."""
from __future__ import annotations
from pathlib import Path
from pydantic import BaseModel, ConfigDict
from ...core.payment_election import PaymentElection
from ...core.prior_domiciliation_election import PriorDomiciliationElection
from ...core.refund_election import RefundElection
from .selectors import ModeloCalculationRevisionSelector
[docs]
class ModeloExportOperatorInput(BaseModel):
"""Canonical operator input required to resolve and export a modelo."""
model_config = ConfigDict(extra="forbid", frozen=True)
work_unit_id: str | None = None
modelo: str | None = None
year: int | None = None
period: str | None = None
registry_revision: str | None = None
bucket_id: str | None = None
select: str = ModeloCalculationRevisionSelector.CURRENT.value
output: Path | None = None
revision: str | None = None
actor: str | None = None
refund_election: RefundElection = RefundElection.COMPENSAR
payment_election: PaymentElection = PaymentElection.INGRESO
prior_domiciliation_election: PriorDomiciliationElection = PriorDomiciliationElection.KEEP
[docs]
class ModeloReviewPackageBuildOperatorInput(ModeloExportOperatorInput):
"""Canonical export input plus review-package annotations."""
notes: str = ""
__all__ = ["ModeloExportOperatorInput", "ModeloReviewPackageBuildOperatorInput"]