refactor: migrate models to canonical module locations

- Move Product/ProductTranslation to app/modules/catalog/models/
- Move VendorOnboarding to app/modules/marketplace/models/
- Delete legacy re-export files for marketplace models:
  - letzshop.py, marketplace.py, marketplace_product.py
  - marketplace_product_translation.py, marketplace_import_job.py
- Delete legacy product.py, product_translation.py, onboarding.py
- Update all imports across services, tasks, tests to use module locations

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-30 14:45:32 +01:00
parent a123341aa8
commit 0c63f387aa
72 changed files with 176 additions and 276 deletions

View File

@@ -33,7 +33,7 @@ from app.exceptions import (
from app.exceptions.auth import UserAlreadyExistsException
from middleware.auth import AuthManager
from models.database.company import Company
from models.database.marketplace_import_job import MarketplaceImportJob
from app.modules.marketplace.models import MarketplaceImportJob
from models.database.platform import Platform
from models.database.user import User
from models.database.vendor import Role, Vendor

View File

@@ -16,7 +16,7 @@ from decimal import Decimal
from sqlalchemy import func
from sqlalchemy.orm import Session
from models.database.product import Product
from app.modules.catalog.models import Product
from models.database.subscription import (
CapacitySnapshot,
SubscriptionStatus,

View File

@@ -11,7 +11,7 @@ from datetime import UTC, datetime
from sqlalchemy.orm import Session
from app.utils.encryption import decrypt_value, encrypt_value, mask_api_key
from models.database.letzshop import VendorLetzshopCredentials
from app.modules.marketplace.models import VendorLetzshopCredentials
from .client_service import LetzshopClient

View File

@@ -16,15 +16,15 @@ from sqlalchemy.orm import Session
from app.services.order_service import order_service as unified_order_service
from app.services.subscription_service import subscription_service
from models.database.letzshop import (
from app.modules.marketplace.models import (
LetzshopFulfillmentQueue,
LetzshopHistoricalImportJob,
LetzshopSyncLog,
MarketplaceImportJob,
VendorLetzshopCredentials,
)
from models.database.marketplace_import_job import MarketplaceImportJob
from app.modules.orders.models import Order, OrderItem
from models.database.product import Product
from app.modules.catalog.models import Product
from models.database.vendor import Vendor
logger = logging.getLogger(__name__)

View File

@@ -15,7 +15,7 @@ from sqlalchemy.dialects.postgresql import insert as pg_insert
from sqlalchemy.orm import Session
from app.services.letzshop.client_service import LetzshopClient
from models.database.letzshop import LetzshopVendorCache
from app.modules.marketplace.models import LetzshopVendorCache
logger = logging.getLogger(__name__)

View File

@@ -24,7 +24,7 @@ from app.exceptions import (
)
from app.services.letzshop.credentials_service import LetzshopCredentialsService
from app.services.letzshop.order_service import LetzshopOrderService
from models.database.onboarding import (
from app.modules.marketplace.models import (
OnboardingStatus,
OnboardingStep,
VendorOnboarding,

View File

@@ -19,7 +19,7 @@ from sqlalchemy.orm import Session
from app.services.image_service import image_service
from app.modules.inventory.models import Inventory
from app.modules.orders.models import Order
from models.database.product import Product
from app.modules.catalog.models import Product
from models.database.vendor import Vendor
logger = logging.getLogger(__name__)

View File

@@ -18,8 +18,8 @@ from app.exceptions import (
ProductNotFoundException,
ValidationException,
)
from models.database.marketplace_product import MarketplaceProduct
from models.database.product import Product
from app.modules.marketplace.models import MarketplaceProduct
from app.modules.catalog.models import Product
from models.schema.product import ProductCreate, ProductUpdate
logger = logging.getLogger(__name__)
@@ -272,7 +272,7 @@ class ProductService:
from sqlalchemy import or_
from sqlalchemy.orm import joinedload
from models.database.product_translation import ProductTranslation
from app.modules.catalog.models import ProductTranslation
try:
# Prepare search pattern for LIKE queries

View File

@@ -15,7 +15,7 @@ from sqlalchemy import func
from sqlalchemy.orm import Session, joinedload
from app.exceptions import ProductNotFoundException
from models.database.product import Product
from app.modules.catalog.models import Product
from models.database.vendor import Vendor
logger = logging.getLogger(__name__)
@@ -270,7 +270,7 @@ class VendorProductService:
Returns:
Created Product instance
"""
from models.database.product_translation import ProductTranslation
from app.modules.catalog.models import ProductTranslation
# Determine product_type from is_digital flag
is_digital = data.get("is_digital", False)
@@ -344,7 +344,7 @@ class VendorProductService:
Returns:
Updated Product instance
"""
from models.database.product_translation import ProductTranslation
from app.modules.catalog.models import ProductTranslation
product = (
db.query(Product)

View File

@@ -23,8 +23,8 @@ from app.exceptions import (
VendorAlreadyExistsException,
VendorNotFoundException,
)
from models.database.marketplace_product import MarketplaceProduct
from models.database.product import Product
from app.modules.marketplace.models import MarketplaceProduct
from app.modules.catalog.models import Product
from models.database.user import User
from models.database.vendor import Vendor
from models.schema.product import ProductCreate