feat: complete marketplace module migration (Phase 6)

Migrates marketplace module to self-contained structure:
- Create app/modules/marketplace/services/ re-exporting from existing locations
- Create app/modules/marketplace/models/ with marketplace & letzshop models
- Create app/modules/marketplace/schemas/ with product & import schemas
- Create app/modules/marketplace/tasks/ with 5 Celery tasks:
  - process_marketplace_import - CSV product import
  - process_historical_import - Letzshop order import
  - sync_vendor_directory - Scheduled daily vendor sync
  - export_vendor_products_to_folder - Multi-language export
  - export_marketplace_products - Admin export
- Create app/modules/marketplace/exceptions.py
- Update definition.py with is_self_contained=True and scheduled_tasks

Celery task migration:
- process_marketplace_import, process_historical_import -> import_tasks.py
- sync_vendor_directory -> sync_tasks.py (scheduled daily at 02:00)
- export_vendor_products_to_folder, export_marketplace_products -> export_tasks.py

Backward compatibility:
- Legacy task files now re-export from new locations
- Remove marketplace/letzshop/export from LEGACY_TASK_MODULES

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-27 23:19:31 +01:00
parent 4f379b472b
commit eb47daec8b
15 changed files with 1088 additions and 704 deletions

View File

@@ -0,0 +1,42 @@
# app/modules/marketplace/models/__init__.py
"""
Marketplace module models.
Re-exports marketplace and Letzshop models from the central models location.
Models remain in models/database/ for now to avoid breaking existing imports.
Usage:
from app.modules.marketplace.models import (
MarketplaceProduct,
MarketplaceImportJob,
VendorLetzshopCredentials,
LetzshopHistoricalImportJob,
)
"""
from models.database.marketplace_product import MarketplaceProduct
from models.database.marketplace_product_translation import MarketplaceProductTranslation
from models.database.marketplace_import_job import MarketplaceImportJob
from models.database.letzshop import (
# Letzshop credentials and sync
VendorLetzshopCredentials,
LetzshopFulfillmentQueue,
LetzshopVendorCache,
LetzshopSyncLog,
# Import jobs
LetzshopHistoricalImportJob,
)
__all__ = [
# Marketplace products
"MarketplaceProduct",
"MarketplaceProductTranslation",
# Import jobs
"MarketplaceImportJob",
"LetzshopHistoricalImportJob",
# Letzshop models
"VendorLetzshopCredentials",
"LetzshopFulfillmentQueue",
"LetzshopVendorCache",
"LetzshopSyncLog",
]