refactor: migrate Feature to billing module and split ProductMedia to catalog

- Move Feature model from models/database/ to app/modules/billing/models/
  (tightly coupled to SubscriptionTier for tier-based access control)
- Move ProductMedia from models/database/media.py to app/modules/catalog/models/
  (product-specific media associations belong with catalog)
- Keep MediaFile as CORE in models/database/media.py (cross-cutting file storage)
- Convert legacy feature.py to re-export for backwards compatibility
- Update all imports to use canonical module locations

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-30 19:32:38 +01:00
parent b9f08b853f
commit 0f9b80c634
15 changed files with 336 additions and 268 deletions

View File

@@ -19,7 +19,7 @@ from app.api.deps import get_current_vendor_api
from app.core.database import get_db
from app.core.feature_gate import RequireFeature
from app.services.stats_service import stats_service
from models.database.feature import FeatureCode
from app.modules.billing.models import FeatureCode
from models.database.user import User
from app.modules.analytics.schemas import (
VendorAnalyticsCatalog,

View File

@@ -41,7 +41,7 @@ from app.exceptions.invoice import (
InvoiceSettingsNotFoundException,
)
from app.services.invoice_service import invoice_service
from models.database.feature import FeatureCode
from app.modules.billing.models import FeatureCode
from models.database.user import User
from app.modules.orders.schemas import (
InvoiceCreate,