Source code for buildcompiler.domain.approvals
"""Approval contracts for expected gated processes."""
from dataclasses import dataclass, field
from enum import Enum
from typing import Any
[docs]
class ApprovalStatus(str, Enum):
"""Minimal approval state used by RequiredApproval."""
REQUIRED = "required"
APPROVED = "approved"
[docs]
@dataclass
class RequiredApproval:
"""Approval record for a process required to proceed."""
status: ApprovalStatus
process: str
reason: str
metadata: dict[str, Any] = field(default_factory=dict)