# app/api/v1/storefront/__init__.py
"""
Storefront API router aggregation.

This module aggregates all storefront-related JSON API endpoints (public facing).
Uses store context from middleware - no store_id in URLs.

AUTO-DISCOVERED MODULE ROUTES:
- cart: Shopping cart operations
- catalog: Browse catalog, search products
- checkout: Order placement
- cms: Content pages
- customers: Auth, profile, addresses
- messaging: Customer messaging
- orders: Order history viewing

Authentication:
- Products, Cart, Content Pages: No auth required
- Orders, Profile, Messages: Requires customer authentication
- Auth: Public (login, register)

Note: Routes are auto-discovered from app/modules/{module}/routes/api/storefront.py
"""

from fastapi import APIRouter

# Create storefront router
router = APIRouter()

# ============================================================================
# Auto-discovered Module Routes
# ============================================================================
# Routes from self-contained modules are auto-discovered and registered.
# Modules include: cart, catalog, checkout, cms, customers, messaging, orders

from app.modules.routes import get_storefront_api_routes

for route_info in get_storefront_api_routes():
    # Only pass prefix if custom_prefix is set (router already has internal prefix)
    if route_info.custom_prefix:
        router.include_router(
            route_info.router,
            prefix=route_info.custom_prefix,
            tags=route_info.tags,
        )
    else:
        router.include_router(
            route_info.router,
            tags=route_info.tags,
        )

__all__ = ["router"]
