"""SLA Engine domain event definitions."""

from __future__ import annotations

from simorgh.apps.events.bus import register_event


def register_all() -> None:
    """Register all SLA Engine domain events into the event bus registry."""

    register_event(
        "sla.timer.started",
        description="An SLA timer has started for an entity.",
        payload_keys=("timer_id", "policy_id", "tenant_id", "entity_type", "entity_id"),
    )
    register_event(
        "sla.timer.paused",
        description="An SLA timer has been paused.",
        payload_keys=("timer_id", "policy_id", "tenant_id"),
    )
    register_event(
        "sla.timer.resumed",
        description="An SLA timer has been resumed.",
        payload_keys=("timer_id", "policy_id", "tenant_id"),
    )
    register_event(
        "sla.timer.stopped",
        description="An SLA timer has been stopped (completed).",
        payload_keys=("timer_id", "policy_id", "tenant_id"),
    )
    register_event(
        "sla.warning",
        description="An SLA is approaching breach — warning threshold reached.",
        payload_keys=("timer_id", "policy_id", "tenant_id", "entity_type", "entity_id"),
    )
    register_event(
        "sla.breached",
        description="An SLA target has been breached.",
        payload_keys=("timer_id", "policy_id", "tenant_id", "entity_type", "entity_id", "breach_type"),
    )
    register_event(
        "sla.recovered",
        description="An SLA breach has been recovered.",
        payload_keys=("timer_id", "policy_id", "tenant_id", "breach_type"),
    )
