refactor: migrate products and vendor_products to module auto-discovery

- Move admin/products.py to marketplace module as admin_products.py
  (marketplace product catalog browsing)
- Move admin/vendor_products.py to catalog module as admin.py
  (vendor catalog management)
- Move vendor/products.py to catalog module as vendor.py
  (vendor's own product catalog)
- Update marketplace admin router to include products routes
- Update catalog module routes/api/__init__.py with lazy imports
- Remove legacy imports from admin and vendor API init files

All product routes now auto-discovered via module system.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-31 12:49:11 +01:00
parent db56b34894
commit 6f278131a3
7 changed files with 92 additions and 90 deletions

View File

@@ -2,43 +2,33 @@
"""
Marketplace module admin routes.
This module wraps the existing admin marketplace routes and adds
module-based access control. Routes are re-exported from the
original location with the module access dependency.
This module aggregates all marketplace admin routers into a single router
for auto-discovery. Routes are defined in dedicated files with module-based
access control.
Includes:
- /marketplace/* - Marketplace monitoring
- /products/* - Marketplace product catalog browsing
- /marketplace-import-jobs/* - Marketplace import job monitoring
- /letzshop/* - Letzshop integration
"""
import importlib
from fastapi import APIRouter
from fastapi import APIRouter, Depends
from .admin_products import admin_products_router
from .admin_marketplace import admin_marketplace_router
from .admin_letzshop import admin_letzshop_router
from app.api.deps import require_module_access
# Create aggregate router for auto-discovery
# The router is named 'admin_router' for auto-discovery compatibility
admin_router = APIRouter()
# Import original routers using importlib to avoid circular imports
# (direct import triggers app.api.v1.admin.__init__.py which imports us)
_marketplace_module = importlib.import_module("app.api.v1.admin.marketplace")
_letzshop_module = importlib.import_module("app.api.v1.admin.letzshop")
marketplace_original_router = _marketplace_module.router
letzshop_original_router = _letzshop_module.router
# Include marketplace product catalog routes
admin_router.include_router(admin_products_router)
# Create module-aware router for marketplace
admin_router = APIRouter(
prefix="/marketplace",
dependencies=[Depends(require_module_access("marketplace"))],
)
# Include marketplace import jobs routes
admin_router.include_router(admin_marketplace_router)
# Re-export all routes from the original marketplace module
for route in marketplace_original_router.routes:
admin_router.routes.append(route)
# Include letzshop routes
admin_router.include_router(admin_letzshop_router)
# Create separate router for letzshop integration
admin_letzshop_router = APIRouter(
prefix="/letzshop",
dependencies=[Depends(require_module_access("marketplace"))],
)
for route in letzshop_original_router.routes:
admin_letzshop_router.routes.append(route)
__all__ = ["admin_router"]