From 1ef50893a1ef90833383b1d4963de37088ca713d Mon Sep 17 00:00:00 2001 From: Samir Boulahtit Date: Fri, 30 Jan 2026 15:16:49 +0100 Subject: [PATCH] refactor: migrate schemas to canonical module locations Migrate remaining legacy schemas to their respective modules: Marketplace module (app/modules/marketplace/schemas/): - letzshop.py: Letzshop credentials, orders, fulfillment, sync - onboarding.py: Vendor onboarding wizard schemas Catalog module (app/modules/catalog/schemas/): - product.py: ProductCreate, ProductUpdate, ProductResponse Payments module (app/modules/payments/schemas/): - payment.py: PaymentConfig, Stripe, transactions, balance Delete legacy files: - models/schema/letzshop.py - models/schema/onboarding.py - models/schema/product.py - models/schema/payment.py - models/schema/marketplace_product.py (re-export) - models/schema/marketplace_import_job.py (re-export) - models/schema/search.py (empty) Update imports across 19 files to use canonical locations. Co-Authored-By: Claude Opus 4.5 --- app/api/v1/admin/letzshop.py | 2 +- app/api/v1/admin/marketplace.py | 2 +- app/api/v1/vendor/letzshop.py | 2 +- app/api/v1/vendor/marketplace.py | 2 +- app/api/v1/vendor/onboarding.py | 2 +- app/api/v1/vendor/payments.py | 6 +- app/api/v1/vendor/products.py | 2 +- app/modules/catalog/schemas/__init__.py | 20 ++- app/modules/catalog/schemas/catalog.py | 2 +- .../modules/catalog/schemas}/product.py | 11 +- app/modules/marketplace/schemas/__init__.py | 150 ++++++++++++++++++ .../modules/marketplace/schemas}/letzshop.py | 2 +- .../marketplace/schemas}/onboarding.py | 2 +- .../marketplace_import_job_service.py | 2 +- .../services/marketplace_product_service.py | 2 +- app/modules/payments/schemas/__init__.py | 45 +++++- .../modules/payments/schemas}/payment.py | 12 +- app/services/admin_service.py | 2 +- app/services/product_service.py | 2 +- app/services/vendor_service.py | 2 +- docs/backend/overview.md | 2 +- models/schema/__init__.py | 9 +- models/schema/marketplace_import_job.py | 39 ----- models/schema/marketplace_product.py | 45 ------ models/schema/search.py | 1 - .../schema/test_marketplace_import_job.py | 2 +- tests/unit/models/schema/test_product.py | 2 +- .../test_marketplace_product_service.py | 2 +- .../unit/services/test_marketplace_service.py | 2 +- tests/unit/services/test_product_service.py | 2 +- tests/unit/services/test_vendor_service.py | 2 +- 31 files changed, 255 insertions(+), 125 deletions(-) rename {models/schema => app/modules/catalog/schemas}/product.py (89%) rename {models/schema => app/modules/marketplace/schemas}/letzshop.py (99%) rename {models/schema => app/modules/marketplace/schemas}/onboarding.py (99%) rename {models/schema => app/modules/payments/schemas}/payment.py (93%) delete mode 100644 models/schema/marketplace_import_job.py delete mode 100644 models/schema/marketplace_product.py delete mode 100644 models/schema/search.py diff --git a/app/api/v1/admin/letzshop.py b/app/api/v1/admin/letzshop.py index 04b0a0e2..f1c2a386 100644 --- a/app/api/v1/admin/letzshop.py +++ b/app/api/v1/admin/letzshop.py @@ -33,7 +33,7 @@ from app.services.letzshop import ( ) from app.tasks.letzshop_tasks import process_historical_import from models.database.user import User -from models.schema.letzshop import ( +from app.modules.marketplace.schemas import ( FulfillmentOperationResponse, LetzshopCachedVendorDetail, LetzshopCachedVendorDetailResponse, diff --git a/app/api/v1/admin/marketplace.py b/app/api/v1/admin/marketplace.py index 620a4c08..d9cd9980 100644 --- a/app/api/v1/admin/marketplace.py +++ b/app/api/v1/admin/marketplace.py @@ -15,7 +15,7 @@ from app.services.stats_service import stats_service from app.services.vendor_service import vendor_service from app.tasks.background_tasks import process_marketplace_import from models.database.user import User -from models.schema.marketplace_import_job import ( +from app.modules.marketplace.schemas import ( AdminMarketplaceImportJobListResponse, AdminMarketplaceImportJobRequest, AdminMarketplaceImportJobResponse, diff --git a/app/api/v1/vendor/letzshop.py b/app/api/v1/vendor/letzshop.py index ab1e9d3a..cbfc3929 100644 --- a/app/api/v1/vendor/letzshop.py +++ b/app/api/v1/vendor/letzshop.py @@ -32,7 +32,7 @@ from app.services.letzshop import ( OrderNotFoundError, ) from models.database.user import User -from models.schema.letzshop import ( +from app.modules.marketplace.schemas import ( FulfillmentConfirmRequest, FulfillmentOperationResponse, FulfillmentQueueItemResponse, diff --git a/app/api/v1/vendor/marketplace.py b/app/api/v1/vendor/marketplace.py index 2ab5d4d3..3a98f5e7 100644 --- a/app/api/v1/vendor/marketplace.py +++ b/app/api/v1/vendor/marketplace.py @@ -18,7 +18,7 @@ from app.services.vendor_service import vendor_service from app.tasks.background_tasks import process_marketplace_import from middleware.decorators import rate_limit from models.database.user import User -from models.schema.marketplace_import_job import ( +from app.modules.marketplace.schemas import ( MarketplaceImportJobRequest, MarketplaceImportJobResponse, ) diff --git a/app/api/v1/vendor/onboarding.py b/app/api/v1/vendor/onboarding.py index c184f7f4..7e6cce68 100644 --- a/app/api/v1/vendor/onboarding.py +++ b/app/api/v1/vendor/onboarding.py @@ -21,7 +21,7 @@ from app.core.database import get_db from app.services.onboarding_service import OnboardingService from app.tasks.letzshop_tasks import process_historical_import from models.database.user import User -from models.schema.onboarding import ( +from app.modules.marketplace.schemas import ( CompanyProfileRequest, CompanyProfileResponse, LetzshopApiConfigRequest, diff --git a/app/api/v1/vendor/payments.py b/app/api/v1/vendor/payments.py index c3075e28..b09e2e0c 100644 --- a/app/api/v1/vendor/payments.py +++ b/app/api/v1/vendor/payments.py @@ -15,14 +15,14 @@ from app.api.deps import get_current_vendor_api from app.core.database import get_db from app.services.vendor_service import vendor_service from models.database.user import User -from models.schema.payment import ( +from app.modules.payments.schemas import ( PaymentBalanceResponse, PaymentConfigResponse, PaymentConfigUpdate, PaymentConfigUpdateResponse, PaymentMethodsResponse, - RefundRequest, - RefundResponse, + PaymentRefundRequest as RefundRequest, + PaymentRefundResponse as RefundResponse, StripeConnectRequest, StripeConnectResponse, StripeDisconnectResponse, diff --git a/app/api/v1/vendor/products.py b/app/api/v1/vendor/products.py index 0d402e9a..132cab15 100644 --- a/app/api/v1/vendor/products.py +++ b/app/api/v1/vendor/products.py @@ -17,7 +17,7 @@ from app.services.product_service import product_service from app.services.subscription_service import subscription_service from app.services.vendor_product_service import vendor_product_service from models.database.user import User -from models.schema.product import ( +from app.modules.catalog.schemas import ( ProductCreate, ProductDeleteResponse, ProductDetailResponse, diff --git a/app/modules/catalog/schemas/__init__.py b/app/modules/catalog/schemas/__init__.py index e2090fcd..44b033a3 100644 --- a/app/modules/catalog/schemas/__init__.py +++ b/app/modules/catalog/schemas/__init__.py @@ -2,13 +2,31 @@ """Catalog module schemas.""" from app.modules.catalog.schemas.catalog import ( + ProductDetailResponse as CatalogProductDetailResponse, + ProductListResponse as CatalogProductListResponse, + ProductResponse as CatalogProductResponse, +) +from app.modules.catalog.schemas.product import ( + ProductCreate, + ProductUpdate, + ProductResponse, ProductDetailResponse, ProductListResponse, - ProductResponse, + ProductDeleteResponse, + ProductToggleResponse, ) __all__ = [ + # Catalog browsing schemas (storefront) + "CatalogProductResponse", + "CatalogProductDetailResponse", + "CatalogProductListResponse", + # Product CRUD schemas (vendor management) + "ProductCreate", + "ProductUpdate", "ProductResponse", "ProductDetailResponse", "ProductListResponse", + "ProductDeleteResponse", + "ProductToggleResponse", ] diff --git a/app/modules/catalog/schemas/catalog.py b/app/modules/catalog/schemas/catalog.py index 68142bc9..8c701c86 100644 --- a/app/modules/catalog/schemas/catalog.py +++ b/app/modules/catalog/schemas/catalog.py @@ -11,7 +11,7 @@ from datetime import datetime from pydantic import BaseModel, ConfigDict, Field from app.modules.inventory.schemas import InventoryLocationResponse -from models.schema.marketplace_product import MarketplaceProductResponse +from app.modules.marketplace.schemas import MarketplaceProductResponse class ProductResponse(BaseModel): diff --git a/models/schema/product.py b/app/modules/catalog/schemas/product.py similarity index 89% rename from models/schema/product.py rename to app/modules/catalog/schemas/product.py index 1136dcdb..a1540586 100644 --- a/models/schema/product.py +++ b/app/modules/catalog/schemas/product.py @@ -1,10 +1,17 @@ -# models/schema/product.py +# app/modules/catalog/schemas/product.py +""" +Pydantic schemas for Product CRUD operations. + +These schemas are used for vendor product catalog management, +linking vendor products to marketplace products. +""" + from datetime import datetime from pydantic import BaseModel, ConfigDict, Field from app.modules.inventory.schemas import InventoryLocationResponse -from models.schema.marketplace_product import MarketplaceProductResponse +from app.modules.marketplace.schemas import MarketplaceProductResponse class ProductCreate(BaseModel): diff --git a/app/modules/marketplace/schemas/__init__.py b/app/modules/marketplace/schemas/__init__.py index 63fea748..a6ce8a42 100644 --- a/app/modules/marketplace/schemas/__init__.py +++ b/app/modules/marketplace/schemas/__init__.py @@ -39,6 +39,83 @@ from app.modules.marketplace.schemas.marketplace_product import ( MarketplaceImportRequest, MarketplaceImportResponse, ) +from app.modules.marketplace.schemas.letzshop import ( + # Credentials + LetzshopCredentialsCreate, + LetzshopCredentialsUpdate, + LetzshopCredentialsResponse, + LetzshopCredentialsStatus, + # Orders + LetzshopOrderItemResponse, + LetzshopOrderResponse, + LetzshopOrderDetailResponse, + LetzshopOrderStats, + LetzshopOrderListResponse, + # Fulfillment + FulfillmentConfirmRequest, + FulfillmentRejectRequest, + FulfillmentTrackingRequest, + FulfillmentQueueItemResponse, + FulfillmentQueueListResponse, + FulfillmentOperationResponse, + # Sync + LetzshopSyncLogResponse, + LetzshopSyncLogListResponse, + LetzshopSyncTriggerRequest, + LetzshopSyncTriggerResponse, + # Connection + LetzshopConnectionTestRequest, + LetzshopConnectionTestResponse, + LetzshopSuccessResponse, + # Admin + LetzshopVendorOverview, + LetzshopVendorListResponse, + # Jobs + LetzshopJobItem, + LetzshopJobsListResponse, + # Historical Import + LetzshopHistoricalImportJobResponse, + LetzshopHistoricalImportStartResponse, + # Vendor Directory + LetzshopCachedVendorItem, + LetzshopCachedVendorDetail, + LetzshopVendorDirectoryStats, + LetzshopVendorDirectoryStatsResponse, + LetzshopCachedVendorListResponse, + LetzshopCachedVendorDetailResponse, + LetzshopVendorDirectorySyncResponse, + LetzshopCreateVendorFromCacheResponse, +) +from app.modules.marketplace.schemas.onboarding import ( + # Step status + StepStatus, + CompanyProfileStepStatus, + LetzshopApiStepStatus, + ProductImportStepStatus, + OrderSyncStepStatus, + # Main status + OnboardingStatusResponse, + # Step 1 + CompanyProfileRequest, + CompanyProfileResponse, + # Step 2 + LetzshopApiConfigRequest, + LetzshopApiTestRequest, + LetzshopApiTestResponse, + LetzshopApiConfigResponse, + # Step 3 + ProductImportConfigRequest, + ProductImportConfigResponse, + # Step 4 + OrderSyncTriggerRequest, + OrderSyncTriggerResponse, + OrderSyncProgressResponse, + OrderSyncCompleteRequest, + OrderSyncCompleteResponse, + # Admin + OnboardingSkipRequest, + OnboardingSkipResponse, +) __all__ = [ # Import job schemas @@ -62,4 +139,77 @@ __all__ = [ # Import schemas "MarketplaceImportRequest", "MarketplaceImportResponse", + # Letzshop - Credentials + "LetzshopCredentialsCreate", + "LetzshopCredentialsUpdate", + "LetzshopCredentialsResponse", + "LetzshopCredentialsStatus", + # Letzshop - Orders + "LetzshopOrderItemResponse", + "LetzshopOrderResponse", + "LetzshopOrderDetailResponse", + "LetzshopOrderStats", + "LetzshopOrderListResponse", + # Letzshop - Fulfillment + "FulfillmentConfirmRequest", + "FulfillmentRejectRequest", + "FulfillmentTrackingRequest", + "FulfillmentQueueItemResponse", + "FulfillmentQueueListResponse", + "FulfillmentOperationResponse", + # Letzshop - Sync + "LetzshopSyncLogResponse", + "LetzshopSyncLogListResponse", + "LetzshopSyncTriggerRequest", + "LetzshopSyncTriggerResponse", + # Letzshop - Connection + "LetzshopConnectionTestRequest", + "LetzshopConnectionTestResponse", + "LetzshopSuccessResponse", + # Letzshop - Admin + "LetzshopVendorOverview", + "LetzshopVendorListResponse", + # Letzshop - Jobs + "LetzshopJobItem", + "LetzshopJobsListResponse", + # Letzshop - Historical Import + "LetzshopHistoricalImportJobResponse", + "LetzshopHistoricalImportStartResponse", + # Letzshop - Vendor Directory + "LetzshopCachedVendorItem", + "LetzshopCachedVendorDetail", + "LetzshopVendorDirectoryStats", + "LetzshopVendorDirectoryStatsResponse", + "LetzshopCachedVendorListResponse", + "LetzshopCachedVendorDetailResponse", + "LetzshopVendorDirectorySyncResponse", + "LetzshopCreateVendorFromCacheResponse", + # Onboarding - Step status + "StepStatus", + "CompanyProfileStepStatus", + "LetzshopApiStepStatus", + "ProductImportStepStatus", + "OrderSyncStepStatus", + # Onboarding - Main status + "OnboardingStatusResponse", + # Onboarding - Step 1 + "CompanyProfileRequest", + "CompanyProfileResponse", + # Onboarding - Step 2 + "LetzshopApiConfigRequest", + "LetzshopApiTestRequest", + "LetzshopApiTestResponse", + "LetzshopApiConfigResponse", + # Onboarding - Step 3 + "ProductImportConfigRequest", + "ProductImportConfigResponse", + # Onboarding - Step 4 + "OrderSyncTriggerRequest", + "OrderSyncTriggerResponse", + "OrderSyncProgressResponse", + "OrderSyncCompleteRequest", + "OrderSyncCompleteResponse", + # Onboarding - Admin + "OnboardingSkipRequest", + "OnboardingSkipResponse", ] diff --git a/models/schema/letzshop.py b/app/modules/marketplace/schemas/letzshop.py similarity index 99% rename from models/schema/letzshop.py rename to app/modules/marketplace/schemas/letzshop.py index 1cc05d78..97fd27a2 100644 --- a/models/schema/letzshop.py +++ b/app/modules/marketplace/schemas/letzshop.py @@ -1,4 +1,4 @@ -# models/schema/letzshop.py +# app/modules/marketplace/schemas/letzshop.py """ Pydantic schemas for Letzshop marketplace integration. diff --git a/models/schema/onboarding.py b/app/modules/marketplace/schemas/onboarding.py similarity index 99% rename from models/schema/onboarding.py rename to app/modules/marketplace/schemas/onboarding.py index 2baad5c0..081a69fb 100644 --- a/models/schema/onboarding.py +++ b/app/modules/marketplace/schemas/onboarding.py @@ -1,4 +1,4 @@ -# models/schema/onboarding.py +# app/modules/marketplace/schemas/onboarding.py """ Pydantic schemas for Vendor Onboarding operations. diff --git a/app/modules/marketplace/services/marketplace_import_job_service.py b/app/modules/marketplace/services/marketplace_import_job_service.py index 26d1cf2c..9f065d6f 100644 --- a/app/modules/marketplace/services/marketplace_import_job_service.py +++ b/app/modules/marketplace/services/marketplace_import_job_service.py @@ -14,7 +14,7 @@ from app.modules.marketplace.models import ( ) from models.database.user import User from models.database.vendor import Vendor -from models.schema.marketplace_import_job import ( +from app.modules.marketplace.schemas import ( AdminMarketplaceImportJobResponse, MarketplaceImportJobRequest, MarketplaceImportJobResponse, diff --git a/app/modules/marketplace/services/marketplace_product_service.py b/app/modules/marketplace/services/marketplace_product_service.py index 15f25699..999f7645 100644 --- a/app/modules/marketplace/services/marketplace_product_service.py +++ b/app/modules/marketplace/services/marketplace_product_service.py @@ -36,7 +36,7 @@ from app.modules.marketplace.models import ( MarketplaceProductTranslation, ) from app.modules.inventory.schemas import InventoryLocationResponse, InventorySummaryResponse -from models.schema.marketplace_product import ( +from app.modules.marketplace.schemas import ( MarketplaceProductCreate, MarketplaceProductUpdate, ) diff --git a/app/modules/payments/schemas/__init__.py b/app/modules/payments/schemas/__init__.py index a8efbba8..d9edcb21 100644 --- a/app/modules/payments/schemas/__init__.py +++ b/app/modules/payments/schemas/__init__.py @@ -3,10 +3,33 @@ Payments module Pydantic schemas. """ -from pydantic import BaseModel, Field from datetime import datetime from typing import Any +from pydantic import BaseModel, Field + +from app.modules.payments.schemas.payment import ( + # Configuration + PaymentConfigResponse, + PaymentConfigUpdate, + PaymentConfigUpdateResponse, + # Stripe + StripeConnectRequest, + StripeConnectResponse, + StripeDisconnectResponse, + # Methods + PaymentMethodInfo, + PaymentMethodsResponse, + # Transactions + TransactionInfo, + TransactionsResponse, + # Balance + PaymentBalanceResponse, + # Refunds (config version) + PaymentRefundRequest, + PaymentRefundResponse, +) + class PaymentRequest(BaseModel): """Request to process a payment.""" @@ -83,6 +106,7 @@ class GatewayResponse(BaseModel): __all__ = [ + # Core payment schemas "PaymentRequest", "PaymentResponse", "RefundRequest", @@ -90,4 +114,23 @@ __all__ = [ "PaymentMethodCreate", "PaymentMethodResponse", "GatewayResponse", + # Configuration schemas + "PaymentConfigResponse", + "PaymentConfigUpdate", + "PaymentConfigUpdateResponse", + # Stripe integration + "StripeConnectRequest", + "StripeConnectResponse", + "StripeDisconnectResponse", + # Payment methods info + "PaymentMethodInfo", + "PaymentMethodsResponse", + # Transactions + "TransactionInfo", + "TransactionsResponse", + # Balance + "PaymentBalanceResponse", + # Refunds (config version) + "PaymentRefundRequest", + "PaymentRefundResponse", ] diff --git a/models/schema/payment.py b/app/modules/payments/schemas/payment.py similarity index 93% rename from models/schema/payment.py rename to app/modules/payments/schemas/payment.py index b9ac30b7..1f339b47 100644 --- a/models/schema/payment.py +++ b/app/modules/payments/schemas/payment.py @@ -1,4 +1,4 @@ -# models/schema/payment.py +# app/modules/payments/schemas/payment.py """ Payment Pydantic schemas for API validation and responses. @@ -144,12 +144,12 @@ class PaymentBalanceResponse(BaseModel): # ============================================================================ -# REFUND SCHEMAS +# REFUND SCHEMAS (for payment config endpoints) # ============================================================================ -class RefundRequest(BaseModel): - """Request model for processing a refund.""" +class PaymentRefundRequest(BaseModel): + """Request model for processing a refund (payment module version).""" amount: float | None = Field( None, gt=0, description="Partial refund amount, or None for full refund" @@ -157,8 +157,8 @@ class RefundRequest(BaseModel): reason: str | None = Field(None, max_length=500) -class RefundResponse(BaseModel): - """Response for refund operation.""" +class PaymentRefundResponse(BaseModel): + """Response for refund operation (payment module version).""" refund_id: int | None = None payment_id: int | None = None diff --git a/app/services/admin_service.py b/app/services/admin_service.py index d8c19f3f..d852c0b0 100644 --- a/app/services/admin_service.py +++ b/app/services/admin_service.py @@ -37,7 +37,7 @@ 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 -from models.schema.marketplace_import_job import MarketplaceImportJobResponse +from app.modules.marketplace.schemas import MarketplaceImportJobResponse from models.schema.vendor import VendorCreate logger = logging.getLogger(__name__) diff --git a/app/services/product_service.py b/app/services/product_service.py index 7e1d01fa..0ca17d00 100644 --- a/app/services/product_service.py +++ b/app/services/product_service.py @@ -20,7 +20,7 @@ from app.exceptions import ( ) from app.modules.marketplace.models import MarketplaceProduct from app.modules.catalog.models import Product -from models.schema.product import ProductCreate, ProductUpdate +from app.modules.catalog.schemas import ProductCreate, ProductUpdate logger = logging.getLogger(__name__) diff --git a/app/services/vendor_service.py b/app/services/vendor_service.py index f28037b9..02ce0f1f 100644 --- a/app/services/vendor_service.py +++ b/app/services/vendor_service.py @@ -27,7 +27,7 @@ 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 +from app.modules.catalog.schemas import ProductCreate from models.schema.vendor import VendorCreate logger = logging.getLogger(__name__) diff --git a/docs/backend/overview.md b/docs/backend/overview.md index dea8d4b1..6227ff1a 100644 --- a/docs/backend/overview.md +++ b/docs/backend/overview.md @@ -89,7 +89,7 @@ from fastapi import APIRouter, Depends from sqlalchemy.orm import Session from app.core.database import get_db from app.services.product_service import product_service -from models.schema.product import ProductCreate, ProductResponse +from app.modules.catalog.schemas import ProductCreate, ProductResponse router = APIRouter(prefix="/products") diff --git a/models/schema/__init__.py b/models/schema/__init__.py index 94e9508c..77491ceb 100644 --- a/models/schema/__init__.py +++ b/models/schema/__init__.py @@ -7,6 +7,9 @@ Note: Many schemas have been migrated to their respective modules: - Inventory schemas: app.modules.inventory.schemas - Message schemas: app.modules.messaging.schemas - Cart schemas: app.modules.cart.schemas +- Marketplace schemas: app.modules.marketplace.schemas +- Catalog/Product schemas: app.modules.catalog.schemas +- Payment schemas: app.modules.payments.schemas """ # Import API model modules that remain in legacy location @@ -14,9 +17,6 @@ from . import ( auth, base, email, - marketplace_import_job, - marketplace_product, - onboarding, vendor, ) @@ -27,8 +27,5 @@ __all__ = [ "base", "auth", "email", - "marketplace_product", - "onboarding", "vendor", - "marketplace_import_job", ] diff --git a/models/schema/marketplace_import_job.py b/models/schema/marketplace_import_job.py deleted file mode 100644 index 4187b16b..00000000 --- a/models/schema/marketplace_import_job.py +++ /dev/null @@ -1,39 +0,0 @@ -# models/schema/marketplace_import_job.py -""" -Legacy location for marketplace import job schemas. - -MIGRATED: All schemas have been moved to app.modules.marketplace.schemas.marketplace_import_job. - -New location: - from app.modules.marketplace.schemas import ( - MarketplaceImportJobRequest, - MarketplaceImportJobResponse, - ) - -This file re-exports from the new location for backward compatibility. -""" - -# Re-export everything from the new canonical location -from app.modules.marketplace.schemas.marketplace_import_job import ( - MarketplaceImportJobRequest, - AdminMarketplaceImportJobRequest, - MarketplaceImportJobResponse, - MarketplaceImportJobListResponse, - MarketplaceImportErrorResponse, - MarketplaceImportErrorListResponse, - AdminMarketplaceImportJobResponse, - AdminMarketplaceImportJobListResponse, - MarketplaceImportJobStatusUpdate, -) - -__all__ = [ - "MarketplaceImportJobRequest", - "AdminMarketplaceImportJobRequest", - "MarketplaceImportJobResponse", - "MarketplaceImportJobListResponse", - "MarketplaceImportErrorResponse", - "MarketplaceImportErrorListResponse", - "AdminMarketplaceImportJobResponse", - "AdminMarketplaceImportJobListResponse", - "MarketplaceImportJobStatusUpdate", -] diff --git a/models/schema/marketplace_product.py b/models/schema/marketplace_product.py deleted file mode 100644 index df1b0c99..00000000 --- a/models/schema/marketplace_product.py +++ /dev/null @@ -1,45 +0,0 @@ -# models/schema/marketplace_product.py -""" -Legacy location for marketplace product schemas. - -MIGRATED: All schemas have been moved to app.modules.marketplace.schemas.marketplace_product. - -New location: - from app.modules.marketplace.schemas import ( - MarketplaceProductCreate, - MarketplaceProductResponse, - MarketplaceProductTranslationSchema, - ) - -This file re-exports from the new location for backward compatibility. -""" - -# Re-export everything from the new canonical location -from app.modules.marketplace.schemas.marketplace_product import ( - # Translation schemas - MarketplaceProductTranslationSchema, - # Base schemas - MarketplaceProductBase, - # CRUD schemas - MarketplaceProductCreate, - MarketplaceProductUpdate, - # Response schemas - MarketplaceProductResponse, - MarketplaceProductListResponse, - MarketplaceProductDetailResponse, - # Import schemas - MarketplaceImportRequest, - MarketplaceImportResponse, -) - -__all__ = [ - "MarketplaceProductTranslationSchema", - "MarketplaceProductBase", - "MarketplaceProductCreate", - "MarketplaceProductUpdate", - "MarketplaceProductResponse", - "MarketplaceProductListResponse", - "MarketplaceProductDetailResponse", - "MarketplaceImportRequest", - "MarketplaceImportResponse", -] diff --git a/models/schema/search.py b/models/schema/search.py deleted file mode 100644 index 2e8b1772..00000000 --- a/models/schema/search.py +++ /dev/null @@ -1 +0,0 @@ -# Search models diff --git a/tests/unit/models/schema/test_marketplace_import_job.py b/tests/unit/models/schema/test_marketplace_import_job.py index 9728219a..fb7eff04 100644 --- a/tests/unit/models/schema/test_marketplace_import_job.py +++ b/tests/unit/models/schema/test_marketplace_import_job.py @@ -4,7 +4,7 @@ import pytest from pydantic import ValidationError -from models.schema.marketplace_import_job import ( +from app.modules.marketplace.schemas import ( MarketplaceImportJobListResponse, MarketplaceImportJobRequest, MarketplaceImportJobResponse, diff --git a/tests/unit/models/schema/test_product.py b/tests/unit/models/schema/test_product.py index 268e7760..2ed8bf21 100644 --- a/tests/unit/models/schema/test_product.py +++ b/tests/unit/models/schema/test_product.py @@ -4,7 +4,7 @@ import pytest from pydantic import ValidationError -from models.schema.product import ( +from app.modules.catalog.schemas import ( ProductCreate, ProductListResponse, ProductResponse, diff --git a/tests/unit/services/test_marketplace_product_service.py b/tests/unit/services/test_marketplace_product_service.py index 5d602c4a..1ad958f4 100644 --- a/tests/unit/services/test_marketplace_product_service.py +++ b/tests/unit/services/test_marketplace_product_service.py @@ -30,7 +30,7 @@ from app.modules.marketplace.models import ( MarketplaceProduct, MarketplaceProductTranslation, ) -from models.schema.marketplace_product import ( +from app.modules.marketplace.schemas import ( MarketplaceProductCreate, MarketplaceProductUpdate, ) diff --git a/tests/unit/services/test_marketplace_service.py b/tests/unit/services/test_marketplace_service.py index ed7730ee..7bafa9d4 100644 --- a/tests/unit/services/test_marketplace_service.py +++ b/tests/unit/services/test_marketplace_service.py @@ -13,7 +13,7 @@ from app.exceptions.marketplace_import_job import ( from app.exceptions.vendor import UnauthorizedVendorAccessException from app.services.marketplace_import_job_service import MarketplaceImportJobService from app.modules.marketplace.models import MarketplaceImportJob -from models.schema.marketplace_import_job import MarketplaceImportJobRequest +from app.modules.marketplace.schemas import MarketplaceImportJobRequest @pytest.mark.unit diff --git a/tests/unit/services/test_product_service.py b/tests/unit/services/test_product_service.py index f98cc288..bd6d8ad3 100644 --- a/tests/unit/services/test_product_service.py +++ b/tests/unit/services/test_product_service.py @@ -8,7 +8,7 @@ from app.exceptions import ( MarketplaceProductValidationException, ) from app.services.marketplace_product_service import MarketplaceProductService -from models.schema.marketplace_product import ( +from app.modules.marketplace.schemas import ( MarketplaceProductCreate, MarketplaceProductUpdate, ) diff --git a/tests/unit/services/test_vendor_service.py b/tests/unit/services/test_vendor_service.py index 738482ef..21b72a5c 100644 --- a/tests/unit/services/test_vendor_service.py +++ b/tests/unit/services/test_vendor_service.py @@ -17,7 +17,7 @@ from app.exceptions import ( from app.services.vendor_service import VendorService from models.database.company import Company from models.database.vendor import Vendor -from models.schema.product import ProductCreate +from app.modules.catalog.schemas import ProductCreate from models.schema.vendor import VendorCreate