refactor: remove all backward compatibility code across 70 files
Some checks failed
Some checks failed
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:
@@ -218,9 +218,20 @@ class FeatureService:
|
||||
self, db: Session, store_id: int, feature_code: str
|
||||
) -> bool:
|
||||
"""
|
||||
Check if a store has access to a feature (resolves store -> merchant).
|
||||
Convenience method that resolves the store -> merchant -> platform
|
||||
hierarchy and checks whether the merchant has access to a feature.
|
||||
|
||||
Convenience method for backwards compatibility.
|
||||
Looks up the store's merchant_id and platform_id, then delegates
|
||||
to has_feature().
|
||||
|
||||
Args:
|
||||
db: Database session.
|
||||
store_id: The store ID to resolve.
|
||||
feature_code: The feature code to check.
|
||||
|
||||
Returns:
|
||||
True if the resolved merchant has access to the feature,
|
||||
False if the store/merchant cannot be resolved or lacks access.
|
||||
"""
|
||||
merchant_id, platform_id = self._get_merchant_for_store(db, store_id)
|
||||
if merchant_id is None or platform_id is None:
|
||||
|
||||
@@ -29,9 +29,7 @@ from datetime import UTC, datetime, timedelta
|
||||
from sqlalchemy.orm import Session, joinedload
|
||||
|
||||
from app.exceptions import ResourceNotFoundException
|
||||
from app.modules.billing.exceptions import (
|
||||
SubscriptionNotFoundException, # Re-exported for backward compatibility
|
||||
)
|
||||
from app.modules.billing.exceptions import SubscriptionNotFoundException
|
||||
from app.modules.billing.models import (
|
||||
MerchantSubscription,
|
||||
SubscriptionStatus,
|
||||
@@ -159,9 +157,19 @@ class SubscriptionService:
|
||||
self, db: Session, store_id: int
|
||||
) -> MerchantSubscription | None:
|
||||
"""
|
||||
Resolve store → merchant → subscription.
|
||||
Convenience method that resolves the store -> merchant -> platform
|
||||
hierarchy and returns the associated merchant subscription.
|
||||
|
||||
Convenience method for backwards compatibility with store-level code.
|
||||
Looks up the store's merchant_id and platform_id, then delegates
|
||||
to get_merchant_subscription().
|
||||
|
||||
Args:
|
||||
db: Database session.
|
||||
store_id: The store ID to resolve.
|
||||
|
||||
Returns:
|
||||
The merchant subscription, or None if the store, merchant,
|
||||
or platform cannot be resolved.
|
||||
"""
|
||||
from app.modules.tenancy.models import Store
|
||||
|
||||
|
||||
Reference in New Issue
Block a user