refactor(arch): eliminate all cross-module model imports in service layer
Some checks failed
Some checks failed
Enforce MOD-025/MOD-026 rules: zero top-level cross-module model imports remain in any service file. All 66 files migrated using deferred import patterns (method-body, _get_model() helpers, instance-cached self._Model) and new cross-module service methods in tenancy. Documentation updated with Pattern 6 (deferred imports), migration plan marked complete, and violations status reflects 84→0 service-layer violations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -139,22 +139,18 @@ class MarketplaceWidgetProvider:
|
||||
from sqlalchemy.orm import joinedload
|
||||
|
||||
from app.modules.marketplace.models import MarketplaceImportJob
|
||||
from app.modules.tenancy.models import StorePlatform
|
||||
from app.modules.tenancy.services.platform_service import platform_service
|
||||
|
||||
limit = context.limit if context else 5
|
||||
|
||||
# Get store IDs for this platform
|
||||
store_ids_subquery = (
|
||||
db.query(StorePlatform.store_id)
|
||||
.filter(StorePlatform.platform_id == platform_id)
|
||||
.subquery()
|
||||
)
|
||||
# Get store IDs for this platform via platform service
|
||||
store_ids = platform_service.get_store_ids_for_platform(db, platform_id)
|
||||
|
||||
# Get recent imports across all stores in the platform
|
||||
jobs = (
|
||||
db.query(MarketplaceImportJob)
|
||||
.options(joinedload(MarketplaceImportJob.store))
|
||||
.filter(MarketplaceImportJob.store_id.in_(store_ids_subquery))
|
||||
.filter(MarketplaceImportJob.store_id.in_(store_ids))
|
||||
.order_by(MarketplaceImportJob.created_at.desc())
|
||||
.limit(limit)
|
||||
.all()
|
||||
|
||||
Reference in New Issue
Block a user