# app/modules/messaging/__init__.py
"""
Messaging Module - Internal messaging and notifications.

This is a self-contained module providing:
- Internal messages between users
- Customer communication
- Admin-store-customer conversations
- Notification center
- Message attachments

Module Structure:
- models/ - Database models (Conversation, Message, etc.)
- services/ - Business logic (MessagingService, NotificationService)
- schemas/ - Pydantic DTOs
- routes/ - API routes
- exceptions.py - Module-specific exceptions
"""

# Use lazy imports to avoid circular import issues


def __getattr__(name: str):
    """Lazy import module components to avoid circular imports."""
    if name == "messaging_module":
        from app.modules.messaging.definition import messaging_module

        return messaging_module
    if name == "get_messaging_module_with_routers":
        from app.modules.messaging.definition import get_messaging_module_with_routers

        return get_messaging_module_with_routers
    raise AttributeError(f"module {__name__!r} has no attribute {name!r}")


__all__ = ["messaging_module", "get_messaging_module_with_routers"]
