# app/modules/orders/routes/api/__init__.py
"""
Orders module API routes.

Provides REST API endpoints for order management:
- Admin API: Platform-wide order management (includes exceptions)
- Vendor API: Vendor-specific order operations (includes exceptions)
- Storefront API: Customer-facing order endpoints

Note: admin_router and vendor_router now aggregate their respective
exception routers, so only these two routers need to be registered.
"""

from app.modules.orders.routes.api.storefront import router as storefront_router

# Tag for OpenAPI documentation
STOREFRONT_TAG = "Orders (Storefront)"

__all__ = [
    "storefront_router",
    "STOREFRONT_TAG",
    "admin_router",
    "vendor_router",
]


def __getattr__(name: str):
    """Lazy import routers to avoid circular dependencies."""
    if name == "admin_router":
        from app.modules.orders.routes.api.admin import admin_router
        return admin_router
    elif name == "vendor_router":
        from app.modules.orders.routes.api.vendor import vendor_router
        return vendor_router
    raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
