aeat.domain.calculations.registry._censo_modelos module

Registry-owned censo modelo foundation map.

Resolves lifecycle routing for Modelo 036 (active) and Modelo 037 (historical) censo registration forms. All routing decisions are derived from the ValidatedRegistryAuthority so the registry TOML remains the single authority for event periods and ownership rules.

class CensoModeloRole(*values)[source]

Bases: StrEnum

Lifecycle role for censo modelos under the registry foundation.

ACTIVE_FOUNDATION
HISTORICAL_METADATA
class CensoModeloEventKind(*values)[source]

Bases: StrEnum

Accepted event-triggered lifecycle kinds for active Modelo 036.

ALTA
MODIFICACION
BAJA
class CensoModeloFoundationLogFields(**data)[source]

Bases: BaseModel

Stable, non-secret log fields emitted by the censo foundation service.

Parameters:
service_name: str
service_owner: str
modelo: str
role: CensoModeloRole
decision: Literal['active_work_unit_allowed', 'historical_metadata_only']
event_kind: CensoModeloEventKind | None
active_work_unit_allowed: bool
superseded_by: str | None
as_extra()[source]

Return a logging extra payload with stable field names.

Return type:

dict[str, object]

class CensoModeloOwnership(modelo, role, service_owner, event_kinds, active_work_unit_allowed, superseded_by=None)[source]

Bases: object

Non-CLI ownership record for one censo modelo code.

Parameters:
modelo: str
role: CensoModeloRole
service_owner: str
event_kinds: tuple[str, ...]
active_work_unit_allowed: bool
superseded_by: str | None
class CensoModeloFoundationContract(**data)[source]

Bases: BaseModel

Backend-owned service contract for censo modelo foundation routing.

Parameters:
schema_version: str
service_owner: str
active_modelo: str
historical_modelos: tuple[str, ...]
event_kinds: tuple[CensoModeloEventKind, ...]
error_codes: tuple[str, ...]
class CensoModeloFoundationCommand(**data)[source]

Bases: BaseModel

Command contract for resolving one censo modelo foundation request.

Parameters:
modelo: str
event_kind: CensoModeloEventKind | None
class CensoModeloFoundationResult(**data)[source]

Bases: BaseModel

Result contract describing the registry-owned censo foundation decision.

Parameters:
modelo: str
role: CensoModeloRole
service_owner: str
event_kind: CensoModeloEventKind | None
event_kinds: tuple[CensoModeloEventKind, ...]
active_work_unit_allowed: bool
superseded_by: str | None
property log_fields: CensoModeloFoundationLogFields

Return stable logging fields for this foundation decision.

Returns:

A CensoModeloFoundationLogFields record with all structured log fields.

censo_modelo_ownership_map()[source]

Return the registry-owned censo modelo ownership map.

Return type:

tuple[CensoModeloOwnership, ...]

Returns:

Tuple of CensoModeloOwnership records, one per censo modelo.

build_censo_modelo_foundation_contract()[source]

Build the immutable backend-owned censo modelo foundation contract.

Return type:

CensoModeloFoundationContract

Returns:

The validated CensoModeloFoundationContract for the active registry.

get_censo_modelo_foundation_contract()[source]

Return the cached backend-owned CensoModeloFoundationContract.

Return type:

CensoModeloFoundationContract

censo_modelo_ownership(modelo)[source]

Return the CensoModeloOwnership record for an exact string modelo code.

Return type:

CensoModeloOwnership

Parameters:

modelo (str)

is_active_censo_modelo(modelo)[source]

Return whether a censo modelo may create active work units.

Return type:

bool

Parameters:

modelo (str)

resolve_censo_modelo_foundation(command)[source]

Resolve one censo modelo foundation command and return a CensoModeloFoundationResult.

Return type:

CensoModeloFoundationResult

Parameters:

command (CensoModeloFoundationCommand)

resolve_censo_modelo_work_unit_foundation(*, modelo, period)[source]

Resolve a work-unit period through the censo foundation when it applies.

Return type:

CensoModeloFoundationResult | None

Returns:

A CensoModeloFoundationResult when the modelo is a censo modelo, or None when the modelo is not registered as a censo modelo.

Parameters: