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:
@@ -2,51 +2,22 @@
|
||||
"""
|
||||
Analytics module Pydantic schemas.
|
||||
|
||||
This is the canonical location for analytics schemas.
|
||||
This is the canonical location for analytics-specific schemas.
|
||||
For core dashboard schemas, import from app.modules.core.schemas.dashboard.
|
||||
"""
|
||||
|
||||
from app.modules.analytics.schemas.stats import (
|
||||
AdminDashboardResponse,
|
||||
CodeQualityDashboardStatsResponse,
|
||||
CustomerStatsResponse,
|
||||
ImportStatsResponse,
|
||||
MarketplaceStatsResponse,
|
||||
OrderStatsBasicResponse,
|
||||
OrderStatsResponse,
|
||||
PlatformStatsResponse,
|
||||
ProductStatsResponse,
|
||||
StatsResponse,
|
||||
StoreAnalyticsCatalog,
|
||||
StoreAnalyticsImports,
|
||||
StoreAnalyticsInventory,
|
||||
StoreAnalyticsResponse,
|
||||
StoreCustomerStats,
|
||||
StoreDashboardStatsResponse,
|
||||
StoreInfo,
|
||||
StoreOrderStats,
|
||||
StoreProductStats,
|
||||
StoreRevenueStats,
|
||||
StoreStatsResponse,
|
||||
UserStatsResponse,
|
||||
ValidatorStats,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
"StatsResponse",
|
||||
"MarketplaceStatsResponse",
|
||||
"ImportStatsResponse",
|
||||
"UserStatsResponse",
|
||||
"StoreStatsResponse",
|
||||
"ProductStatsResponse",
|
||||
"PlatformStatsResponse",
|
||||
"OrderStatsBasicResponse",
|
||||
"AdminDashboardResponse",
|
||||
"StoreProductStats",
|
||||
"StoreOrderStats",
|
||||
"StoreCustomerStats",
|
||||
"StoreRevenueStats",
|
||||
"StoreInfo",
|
||||
"StoreDashboardStatsResponse",
|
||||
"StoreAnalyticsImports",
|
||||
"StoreAnalyticsCatalog",
|
||||
"StoreAnalyticsInventory",
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
"""
|
||||
Analytics module schemas for statistics and reporting.
|
||||
|
||||
Base dashboard schemas are defined in core.schemas.dashboard.
|
||||
This module re-exports them for backward compatibility and adds
|
||||
Base dashboard schemas are defined in app.modules.core.schemas.dashboard.
|
||||
Import them from there directly. This module contains only
|
||||
analytics-specific schemas (trends, reports, etc.).
|
||||
"""
|
||||
|
||||
@@ -13,26 +13,6 @@ from typing import Any
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
# Re-export base dashboard schemas from core for backward compatibility
|
||||
# These are the canonical definitions in core module
|
||||
from app.modules.core.schemas.dashboard import (
|
||||
AdminDashboardResponse,
|
||||
ImportStatsResponse,
|
||||
MarketplaceStatsResponse,
|
||||
OrderStatsBasicResponse,
|
||||
PlatformStatsResponse,
|
||||
ProductStatsResponse,
|
||||
StatsResponse,
|
||||
StoreCustomerStats,
|
||||
StoreDashboardStatsResponse,
|
||||
StoreInfo,
|
||||
StoreOrderStats,
|
||||
StoreProductStats,
|
||||
StoreRevenueStats,
|
||||
StoreStatsResponse,
|
||||
UserStatsResponse,
|
||||
)
|
||||
|
||||
# ============================================================================
|
||||
# Store Analytics (Analytics-specific, not in core)
|
||||
# ============================================================================
|
||||
@@ -151,22 +131,6 @@ class OrderStatsResponse(BaseModel):
|
||||
|
||||
|
||||
__all__ = [
|
||||
# Re-exported from core.schemas.dashboard (for backward compatibility)
|
||||
"StatsResponse",
|
||||
"MarketplaceStatsResponse",
|
||||
"ImportStatsResponse",
|
||||
"UserStatsResponse",
|
||||
"StoreStatsResponse",
|
||||
"ProductStatsResponse",
|
||||
"PlatformStatsResponse",
|
||||
"OrderStatsBasicResponse",
|
||||
"AdminDashboardResponse",
|
||||
"StoreProductStats",
|
||||
"StoreOrderStats",
|
||||
"StoreCustomerStats",
|
||||
"StoreRevenueStats",
|
||||
"StoreInfo",
|
||||
"StoreDashboardStatsResponse",
|
||||
# Analytics-specific schemas
|
||||
"StoreAnalyticsImports",
|
||||
"StoreAnalyticsCatalog",
|
||||
|
||||
@@ -107,7 +107,7 @@ class StatsService:
|
||||
)
|
||||
|
||||
inventory_locations = (
|
||||
db.query(func.count(func.distinct(Inventory.location)))
|
||||
db.query(func.count(func.distinct(Inventory.bin_location)))
|
||||
.filter(Inventory.store_id == store_id)
|
||||
.scalar()
|
||||
or 0
|
||||
@@ -286,17 +286,10 @@ class StatsService:
|
||||
)
|
||||
|
||||
return {
|
||||
# Schema-compatible fields (StoreStatsResponse)
|
||||
"total": total_stores,
|
||||
"verified": verified_stores,
|
||||
"pending": pending_stores,
|
||||
"inactive": inactive_stores,
|
||||
# Legacy fields for backward compatibility
|
||||
"total_stores": total_stores,
|
||||
"active_stores": active_stores,
|
||||
"inactive_stores": inactive_stores,
|
||||
"verified_stores": verified_stores,
|
||||
"pending_stores": pending_stores,
|
||||
"verification_rate": (
|
||||
(verified_stores / total_stores * 100) if total_stores > 0 else 0
|
||||
),
|
||||
@@ -485,16 +478,11 @@ class StatsService:
|
||||
)
|
||||
|
||||
return {
|
||||
# Frontend-expected fields
|
||||
"total": total,
|
||||
"pending": pending,
|
||||
"processing": processing,
|
||||
"completed": completed,
|
||||
"failed": failed,
|
||||
# Legacy fields for backward compatibility
|
||||
"total_imports": total,
|
||||
"completed_imports": completed,
|
||||
"failed_imports": failed,
|
||||
"success_rate": (completed / total * 100) if total > 0 else 0,
|
||||
}
|
||||
except SQLAlchemyError as e:
|
||||
@@ -505,9 +493,6 @@ class StatsService:
|
||||
"processing": 0,
|
||||
"completed": 0,
|
||||
"failed": 0,
|
||||
"total_imports": 0,
|
||||
"completed_imports": 0,
|
||||
"failed_imports": 0,
|
||||
"success_rate": 0,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user