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

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

from app.modules.messaging.services.admin_notification_service import (
    AdminNotificationService,
    AlertType,
    # Constants
    NotificationType,
    PlatformAlertService,
    Priority,
    Severity,
    admin_notification_service,
    platform_alert_service,
)
from app.modules.messaging.services.email_service import (
    PLATFORM_DEFAULT_LANGUAGE,
    # Constants
    PLATFORM_NAME,
    PLATFORM_SUPPORT_EMAIL,
    POWERED_BY_FOOTER_HTML,
    POWERED_BY_FOOTER_TEXT,
    SUPPORTED_LANGUAGES,
    WHITELABEL_TIERS,
    BrandingContext,
    ConfigurableMailgunProvider,
    ConfigurableSendGridProvider,
    ConfigurableSESProvider,
    # Configurable provider classes
    ConfigurableSMTPProvider,
    DebugProvider,
    EmailProvider,
    EmailService,
    MailgunProvider,
    ResolvedTemplate,
    SendGridProvider,
    SESProvider,
    # Provider classes
    SMTPProvider,
    StoreMailgunProvider,
    StoreSendGridProvider,
    StoreSESProvider,
    # Store provider classes
    StoreSMTPProvider,
    get_platform_email_config,
    get_platform_provider,
    get_provider,
    get_store_provider,
    send_email,
)
from app.modules.messaging.services.email_template_service import (
    EmailTemplateService,
    StoreOverrideData,
    TemplateData,
)
from app.modules.messaging.services.message_attachment_service import (
    MessageAttachmentService,
    message_attachment_service,
)
from app.modules.messaging.services.messaging_service import (
    MessagingService,
    messaging_service,
)
from app.modules.messaging.services.store_email_settings_service import (
    StoreEmailSettingsService,
    store_email_settings_service,
)

__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_store_provider",
    "get_platform_email_config",
    # Provider classes
    "SMTPProvider",
    "SendGridProvider",
    "MailgunProvider",
    "SESProvider",
    "DebugProvider",
    # Configurable provider classes
    "ConfigurableSMTPProvider",
    "ConfigurableSendGridProvider",
    "ConfigurableMailgunProvider",
    "ConfigurableSESProvider",
    # Store provider classes
    "StoreSMTPProvider",
    "StoreSendGridProvider",
    "StoreMailgunProvider",
    "StoreSESProvider",
    # 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",
    "StoreOverrideData",
    # Store email settings service
    "StoreEmailSettingsService",
    "store_email_settings_service",
]
