# app/modules/messaging/routes/__init__.py
"""
Messaging module route registration.

This module provides functions to register messaging routes
with module-based access control.

NOTE: Routers are NOT auto-imported to avoid circular dependencies.
Import directly from admin.py or store.py as needed:
  from app.modules.messaging.routes.admin import router, admin_notifications_router
  from app.modules.messaging.routes.store import router, store_notifications_router
"""

# Routers are imported on-demand to avoid circular dependencies
# Do NOT add auto-imports here

__all__ = ["admin_router", "admin_notifications_router", "store_router", "store_notifications_router"]


def __getattr__(name: str):
    """Lazy import routers to avoid circular dependencies."""
    if name == "admin_router":
        from app.modules.messaging.routes.admin import router
        return router
    if name == "admin_notifications_router":
        from app.modules.messaging.routes.admin import admin_notifications_router
        return admin_notifications_router
    if name == "store_router":
        from app.modules.messaging.routes.store import router
        return router
    if name == "store_notifications_router":
        from app.modules.messaging.routes.store import store_notifications_router
        return store_notifications_router
    raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
