# app/modules/messaging/services/__init__.py
"""
Messaging module services.

This module contains the canonical implementations of messaging-related services.
"""

from app.modules.messaging.services.messaging_service import (
    messaging_service,
    MessagingService,
)
from app.modules.messaging.services.message_attachment_service import (
    message_attachment_service,
    MessageAttachmentService,
)
from app.modules.messaging.services.admin_notification_service import (
    admin_notification_service,
    AdminNotificationService,
    platform_alert_service,
    PlatformAlertService,
    # Constants
    NotificationType,
    Priority,
    AlertType,
    Severity,
)
from app.modules.messaging.services.email_service import (
    EmailService,
    EmailProvider,
    ResolvedTemplate,
    BrandingContext,
    send_email,
    get_provider,
    get_platform_provider,
    get_vendor_provider,
    get_platform_email_config,
    # Provider classes
    SMTPProvider,
    SendGridProvider,
    MailgunProvider,
    SESProvider,
    DebugProvider,
    # Configurable provider classes
    ConfigurableSMTPProvider,
    ConfigurableSendGridProvider,
    ConfigurableMailgunProvider,
    ConfigurableSESProvider,
    # Vendor provider classes
    VendorSMTPProvider,
    VendorSendGridProvider,
    VendorMailgunProvider,
    VendorSESProvider,
    # Constants
    PLATFORM_NAME,
    PLATFORM_SUPPORT_EMAIL,
    PLATFORM_DEFAULT_LANGUAGE,
    SUPPORTED_LANGUAGES,
    WHITELABEL_TIERS,
    POWERED_BY_FOOTER_HTML,
    POWERED_BY_FOOTER_TEXT,
)
from app.modules.messaging.services.email_template_service import (
    EmailTemplateService,
    TemplateData,
    VendorOverrideData,
)

__all__ = [
    "messaging_service",
    "MessagingService",
    "message_attachment_service",
    "MessageAttachmentService",
    "admin_notification_service",
    "AdminNotificationService",
    "platform_alert_service",
    "PlatformAlertService",
    # Constants
    "NotificationType",
    "Priority",
    "AlertType",
    "Severity",
    # Email service
    "EmailService",
    "EmailProvider",
    "ResolvedTemplate",
    "BrandingContext",
    "send_email",
    "get_provider",
    "get_platform_provider",
    "get_vendor_provider",
    "get_platform_email_config",
    # Provider classes
    "SMTPProvider",
    "SendGridProvider",
    "MailgunProvider",
    "SESProvider",
    "DebugProvider",
    # Configurable provider classes
    "ConfigurableSMTPProvider",
    "ConfigurableSendGridProvider",
    "ConfigurableMailgunProvider",
    "ConfigurableSESProvider",
    # Vendor provider classes
    "VendorSMTPProvider",
    "VendorSendGridProvider",
    "VendorMailgunProvider",
    "VendorSESProvider",
    # Email constants
    "PLATFORM_NAME",
    "PLATFORM_SUPPORT_EMAIL",
    "PLATFORM_DEFAULT_LANGUAGE",
    "SUPPORTED_LANGUAGES",
    "WHITELABEL_TIERS",
    "POWERED_BY_FOOTER_HTML",
    "POWERED_BY_FOOTER_TEXT",
    # Email template service
    "EmailTemplateService",
    "TemplateData",
    "VendorOverrideData",
]
