refactor: remove all backward compatibility code across 70 files
Some checks failed
CI / ruff (push) Successful in 11s
CI / validate (push) Has been cancelled
CI / dependency-scanning (push) Has been cancelled
CI / docs (push) Has been cancelled
CI / deploy (push) Has been cancelled
CI / pytest (push) Has started running

Clean up 28 backward compatibility instances identified in the codebase.
The app is not live, so all shims are replaced with the target architecture:

- Remove legacy Inventory.location column (use bin_location exclusively)
- Remove dashboard _extract_metric_value helper (use flat metrics dict)
- Remove legacy stat field duplicates (total_stores, total_imports, etc.)
- Remove 13 re-export shims and class aliases across modules
- Remove module-enabling JSON fallback (use PlatformModule junction table)
- Remove menu_to_legacy_format() conversion (return dataclasses directly)
- Remove title/description from MarketplaceProductBase schema
- Clean billing convenience method docstrings
- Clean test fixtures and backward-compat comments
- Add PlatformModule seeding to init_production.py

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-15 13:20:29 +01:00
parent b0db8133a0
commit aad18c27ab
70 changed files with 501 additions and 841 deletions

View File

@@ -121,7 +121,7 @@ def _get_admin_router():
def _get_store_router():
"""Lazy import of store router to avoid circular imports."""
from app.modules.cms.routes.store import store_router
from app.modules.cms.routes.api.store import store_router
return store_router

View File

@@ -6,9 +6,9 @@ This module provides functions to register CMS routes
with module-based access control.
NOTE: Routers are NOT auto-imported to avoid circular dependencies.
Import directly from admin.py or store.py as needed:
from app.modules.cms.routes.admin import admin_router
from app.modules.cms.routes.store import store_router, store_media_router
Import directly from api/admin.py or api/store.py as needed:
from app.modules.cms.routes.api.admin import admin_router
from app.modules.cms.routes.api.store import store_router
"""
# Routers are imported on-demand to avoid circular dependencies
@@ -20,12 +20,12 @@ __all__ = ["admin_router", "store_router", "store_media_router"]
def __getattr__(name: str):
"""Lazy import routers to avoid circular dependencies."""
if name == "admin_router":
from app.modules.cms.routes.admin import admin_router
from app.modules.cms.routes.api.admin import admin_router
return admin_router
if name == "store_router":
from app.modules.cms.routes.store import store_router
from app.modules.cms.routes.api.store import store_router
return store_router
if name == "store_media_router":
from app.modules.cms.routes.store import store_media_router
from app.modules.cms.routes.api.store_media import store_media_router
return store_media_router
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")

View File

@@ -8,8 +8,8 @@ Provides REST API endpoints for content page management:
- Storefront API: Public read-only access for storefronts
"""
from app.modules.cms.routes.api.admin import router as admin_router
from app.modules.cms.routes.api.store import router as store_router
from app.modules.cms.routes.api.admin import admin_router
from app.modules.cms.routes.api.store import store_router
from app.modules.cms.routes.api.storefront import router as storefront_router
__all__ = ["admin_router", "store_router", "storefront_router"]

View File

@@ -23,9 +23,6 @@ admin_router = APIRouter(
dependencies=[Depends(require_module_access("cms", FrontendType.ADMIN))],
)
# For backwards compatibility with existing imports
router = admin_router
# Aggregate all CMS admin routes
admin_router.include_router(admin_content_pages_router, tags=["admin-content-pages"])
admin_router.include_router(admin_images_router, tags=["admin-images"])

View File

@@ -18,7 +18,6 @@ ROUTE_CONFIG = {
}
store_router = APIRouter()
router = store_router # Alias for discovery compatibility
# Aggregate all CMS store routes
store_router.include_router(store_content_pages_router, tags=["store-content-pages"])

View File

@@ -80,7 +80,7 @@ async def homepage(
URL routing:
- localhost:9999/ -> Main marketing site ('main' platform)
- localhost:9999/platforms/oms/ -> OMS platform (middleware rewrites to /)
- oms.lu/ -> OMS platform (domain-based)
- omsflow.lu/ -> OMS platform (domain-based)
- shop.mymerchant.com/ -> Store landing page (custom domain)
"""
# Get platform and store from middleware

View File

@@ -1,16 +0,0 @@
# app/modules/cms/routes/store.py
"""
CMS module store routes.
Re-exports routes from the API routes for backwards compatibility
with the lazy router attachment pattern.
Includes:
- /content-pages/* - Content page management
- /media/* - Media library
"""
# Re-export store_router from API routes
from app.modules.cms.routes.api.store import store_router
__all__ = ["store_router"]