"""Subscription domain events."""

from __future__ import annotations

from simorgh.apps.events.bus import register_event


def register_all() -> None:
    """Register all subscription domain events into the event bus registry."""

    register_event(
        "subscription.trial_started",
        description="A tenant started a trial subscription.",
        payload_keys=("tenant_id", "plan_code", "trial_ends_at"),
    )
    register_event(
        "subscription.activated",
        description="A tenant subscription became active.",
        payload_keys=("tenant_id", "plan_code", "actor_id"),
    )
    register_event(
        "subscription.plan_changed",
        description="A tenant's plan was upgraded or downgraded.",
        payload_keys=("tenant_id", "old_plan_code", "new_plan_code", "actor_id"),
    )
    register_event(
        "subscription.suspended",
        description="A tenant subscription was suspended.",
        payload_keys=("tenant_id", "reason", "actor_id"),
    )
    register_event(
        "subscription.cancelled",
        description="A tenant subscription was cancelled.",
        payload_keys=("tenant_id", "reason", "actor_id"),
    )
    register_event(
        "subscription.trial_expiring_soon",
        description="A tenant trial expires in 3 days.",
        payload_keys=("tenant_id", "trial_ends_at"),
    )
    register_event(
        "subscription.addon_purchased",
        description="A tenant purchased an add-on feature.",
        payload_keys=("tenant_id", "feature_key", "actor_id"),
    )
    register_event(
        "subscription.addon_expired",
        description="A tenant's add-on feature has expired.",
        payload_keys=("tenant_id", "feature_key"),
    )
