"""Projects domain event definitions."""

from __future__ import annotations

from simorgh.apps.events.bus import register_event


def register_all() -> None:
    """Register all Projects domain events into the event bus registry."""

    register_event(
        "projects.project.created",
        description="A new project was created.",
        payload_keys=("project_id", "tenant_id", "owner_id"),
    )
    register_event(
        "projects.project.status_changed",
        description="A project's status changed.",
        payload_keys=("project_id", "from_status", "to_status", "tenant_id", "actor_id"),
    )
    register_event(
        "projects.project.completed",
        description="A project was completed.",
        payload_keys=("project_id", "tenant_id", "actor_id"),
    )
    register_event(
        "projects.project.member_added",
        description="A user was added as a project member.",
        payload_keys=("project_id", "user_id", "role", "tenant_id", "actor_id"),
    )
    register_event(
        "projects.project.member_removed",
        description="A user was removed from a project.",
        payload_keys=("project_id", "user_id", "tenant_id", "actor_id"),
    )
    register_event(
        "projects.milestone.completed",
        description="A project milestone was marked as completed.",
        payload_keys=("milestone_id", "project_id", "tenant_id", "actor_id"),
    )
