# app/api/main.py """ API router configuration for multi-tenant ecommerce platform. This module provides: - API version 1 route aggregation - Route organization by user type (admin, vendor, storefront) - Proper route prefixing and tagging """ from fastapi import APIRouter from app.api.v1 import admin, platform, storefront, vendor from app.api.v1.shared import language, webhooks api_router = APIRouter() # ============================================================================ # ADMIN ROUTES (Platform-level management) # Prefix: /api/v1/admin # ============================================================================ api_router.include_router(admin.router, prefix="/v1/admin", tags=["admin"]) # ============================================================================ # VENDOR ROUTES (Vendor-scoped operations) # Prefix: /api/v1/vendor # ============================================================================ api_router.include_router(vendor.router, prefix="/v1/vendor", tags=["vendor"]) # ============================================================================ # STOREFRONT ROUTES (Public customer-facing API) # Prefix: /api/v1/storefront # Note: Previously /api/v1/shop, renamed as not all platforms sell items # ============================================================================ api_router.include_router(storefront.router, prefix="/v1/storefront", tags=["storefront"]) # ============================================================================ # PLATFORM ROUTES (Public marketing and signup) # Prefix: /api/v1/platform # ============================================================================ api_router.include_router(platform.router, prefix="/v1/platform", tags=["platform"]) # ============================================================================ # SHARED ROUTES (Cross-context utilities) # Prefix: /api/v1 # ============================================================================ api_router.include_router(language.router, prefix="/v1", tags=["language"]) api_router.include_router(webhooks.router, prefix="/v1", tags=["webhooks"])