"""Assignment Engine domain event definitions."""

from __future__ import annotations

from simorgh.apps.events.bus import register_event


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

    register_event(
        "assignment.created",
        description="A new assignment was created.",
        payload_keys=("assignment_id", "assigned_to_id", "assigned_by_id", "tenant_id"),
    )
    register_event(
        "assignment.assigned",
        description="An assignment was assigned to a user.",
        payload_keys=("assignment_id", "assigned_to_id", "tenant_id"),
    )
    register_event(
        "assignment.completed",
        description="An assignment was completed.",
        payload_keys=("assignment_id", "completed_by_id", "tenant_id"),
    )
    register_event(
        "assignment.reassigned",
        description="An assignment was reassigned to another user.",
        payload_keys=("assignment_id", "from_user_id", "to_user_id", "tenant_id"),
    )
    register_event(
        "assignment.overdue",
        description="An assignment is past its due date.",
        payload_keys=("assignment_id", "assigned_to_id", "tenant_id"),
    )
    register_event(
        "assignment.cancelled",
        description="An assignment was cancelled.",
        payload_keys=("assignment_id", "cancelled_by_id", "tenant_id"),
    )
