"""Event definitions for the notifications domain."""

from typing import List, Dict

NOTIFICATION_EVENTS: List[Dict] = [
    {
        "event_id": "notification.email_requested",
        "event_name": "Email Notification Requested",
        "description": (
            "Emitted by any service that needs to send a transactional "
            "email.  Consumed by the notifications listener which resolves "
            "the template, renders it, and dispatches via GmailProvider."
        ),
        "topic": "payment_events_notifications",
        "emitted_by": "various services and listeners",
        "consumed_by": ["notifications/listener.py"],
        "data_contract": {
            "to_email": "str — recipient email address",
            "template_key": "str — notification template identifier",
            "template_vars": "dict — variables for template rendering",
            "merchant_id": "int | None — for merchant-specific template overrides",
        },
    },
    {
        "event_id": "notification.sms_requested",
        "event_name": "SMS Notification Requested",
        "description": (
            "Emitted by any service that needs to send a transactional SMS.  "
            "Consumed by the notifications listener which resolves the template "
            "and dispatches via TwilioProvider."
        ),
        "topic": "payment_events_notifications",
        "emitted_by": "various services and listeners",
        "consumed_by": ["notifications/listener.py"],
        "data_contract": {
            "to_phone": "str — recipient phone number (E.164 format)",
            "template_key": "str — notification template identifier",
            "template_vars": "dict — variables for template rendering",
            "merchant_id": "int | None — for merchant-specific template overrides",
        },
    },
]
