# app/api/v1/admin/__init__.py """ Admin API router aggregation. This module combines legacy admin routes with auto-discovered module routes. LEGACY ROUTES (defined in app/api/v1/admin/): - /menu-config/* - Navigation configuration (super admin) - /modules/* - Module management (super admin) - /module-config/* - Module settings (super admin) AUTO-DISCOVERED MODULE ROUTES: - tenancy: auth, admin_users, users, companies, platforms, vendors, vendor_domains - core: dashboard, settings - messaging: messages, notifications, email-templates - monitoring: logs, tasks, tests, code_quality, audit, platform-health - billing: subscriptions, invoices, payments - inventory: stock management - orders: order management, fulfillment, exceptions - marketplace: letzshop integration, product sync - catalog: vendor product catalog - cms: content-pages, images, media, vendor-themes - customers: customer management IMPORTANT: - This router is for JSON API endpoints only - HTML page routes are mounted separately in main.py - Module routes are auto-discovered from app/modules/{module}/routes/api/admin.py """ from fastapi import APIRouter # Import all admin routers (legacy routes that haven't been migrated to modules) # NOTE: Migrated to modules (auto-discovered): # - tenancy: auth, admin_users, users, companies, platforms, vendors, vendor_domains # - core: dashboard, settings # - messaging: messages, notifications, email_templates # - monitoring: logs, tasks, tests, code_quality, audit, platform_health # - cms: content_pages, images, media, vendor_themes from . import ( menu_config, module_config, modules, ) # Create admin router router = APIRouter() # ============================================================================ # Framework Config (remain in legacy - super admin only) # ============================================================================ # Include menu configuration endpoints (super admin only) router.include_router(menu_config.router, tags=["admin-menu-config"]) # Include module management endpoints (super admin only) router.include_router(modules.router, tags=["admin-modules"]) # Include module configuration endpoints (super admin only) router.include_router(module_config.router, tags=["admin-module-config"]) # ============================================================================ # Auto-discovered Module Routes # ============================================================================ # Routes from self-contained modules are auto-discovered and registered. # Modules include: billing, inventory, orders, marketplace, cms, customers, # monitoring (logs, tasks, tests, code_quality, audit, platform_health), # messaging (messages, notifications, email_templates) from app.modules.routes import get_admin_api_routes for route_info in get_admin_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, ) # Export the router __all__ = ["router"]