refactor: fix architecture violations with provider patterns and dependency inversion

Major changes:
- Add AuditProvider protocol for cross-module audit logging
- Move customer order operations to orders module (dependency inversion)
- Add customer order metrics via MetricsProvider pattern
- Fix missing db parameter in get_admin_context() calls
- Move ProductMedia relationship to catalog module (proper ownership)
- Add marketplace breakdown stats to marketplace_widgets

New files:
- contracts/audit.py - AuditProviderProtocol
- core/services/audit_aggregator.py - Aggregates audit providers
- monitoring/services/audit_provider.py - Monitoring audit implementation
- orders/services/customer_order_service.py - Customer order operations
- orders/routes/api/vendor_customer_orders.py - Customer order endpoints
- catalog/services/product_media_service.py - Product media service
- Architecture documentation for patterns

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-04 21:32:32 +01:00
parent bd43e21940
commit 39dff4ab7d
34 changed files with 2751 additions and 407 deletions

View File

@@ -74,7 +74,7 @@ async def admin_company_detail_page(
"""
return templates.TemplateResponse(
"tenancy/admin/company-detail.html",
get_admin_context(request, current_user, company_id=company_id),
get_admin_context(request, db, current_user, company_id=company_id),
)
@@ -94,7 +94,7 @@ async def admin_company_edit_page(
"""
return templates.TemplateResponse(
"tenancy/admin/company-edit.html",
get_admin_context(request, current_user, company_id=company_id),
get_admin_context(request, db, current_user, company_id=company_id),
)
@@ -149,7 +149,7 @@ async def admin_vendor_detail_page(
"""
return templates.TemplateResponse(
"tenancy/admin/vendor-detail.html",
get_admin_context(request, current_user, vendor_code=vendor_code),
get_admin_context(request, db, current_user, vendor_code=vendor_code),
)
@@ -167,7 +167,7 @@ async def admin_vendor_edit_page(
"""
return templates.TemplateResponse(
"tenancy/admin/vendor-edit.html",
get_admin_context(request, current_user, vendor_code=vendor_code),
get_admin_context(request, db, current_user, vendor_code=vendor_code),
)
@@ -193,7 +193,7 @@ async def admin_vendor_domains_page(
"""
return templates.TemplateResponse(
"tenancy/admin/vendor-domains.html",
get_admin_context(request, current_user, vendor_code=vendor_code),
get_admin_context(request, db, current_user, vendor_code=vendor_code),
)
@@ -239,7 +239,7 @@ async def admin_vendor_theme_page(
"""
return templates.TemplateResponse(
"tenancy/admin/vendor-theme.html",
get_admin_context(request, current_user, vendor_code=vendor_code),
get_admin_context(request, db, current_user, vendor_code=vendor_code),
)
@@ -304,7 +304,7 @@ async def admin_user_detail_page(
"""
return templates.TemplateResponse(
"tenancy/admin/admin-user-detail.html",
get_admin_context(request, current_user, user_id=user_id),
get_admin_context(request, db, current_user, user_id=user_id),
)
@@ -325,7 +325,7 @@ async def admin_user_edit_page(
"""
return templates.TemplateResponse(
"tenancy/admin/admin-user-edit.html",
get_admin_context(request, current_user, user_id=user_id),
get_admin_context(request, db, current_user, user_id=user_id),
)
@@ -410,7 +410,7 @@ async def admin_platform_detail(
"""
return templates.TemplateResponse(
"tenancy/admin/platform-detail.html",
get_admin_context(request, current_user, platform_code=platform_code),
get_admin_context(request, db, current_user, platform_code=platform_code),
)
@@ -431,7 +431,7 @@ async def admin_platform_edit(
"""
return templates.TemplateResponse(
"tenancy/admin/platform-edit.html",
get_admin_context(request, current_user, platform_code=platform_code),
get_admin_context(request, db, current_user, platform_code=platform_code),
)
@@ -458,7 +458,7 @@ async def admin_platform_menu_config(
return templates.TemplateResponse(
"tenancy/admin/platform-menu-config.html",
get_admin_context(request, current_user, platform_code=platform_code),
get_admin_context(request, db, current_user, platform_code=platform_code),
)
@@ -485,7 +485,7 @@ async def admin_platform_modules(
return templates.TemplateResponse(
"tenancy/admin/platform-modules.html",
get_admin_context(request, current_user, platform_code=platform_code),
get_admin_context(request, db, current_user, platform_code=platform_code),
)