# app/modules/marketplace/schemas/__init__.py
"""
Marketplace module Pydantic schemas for API request/response validation.

This is the canonical location for marketplace schemas.

Usage:
    from app.modules.marketplace.schemas import (
        MarketplaceImportJobRequest,
        MarketplaceProductResponse,
        MarketplaceProductCreate,
    )
"""

from app.modules.marketplace.schemas.letzshop import (
    # Fulfillment
    FulfillmentConfirmRequest,
    FulfillmentOperationResponse,
    FulfillmentQueueItemResponse,
    FulfillmentQueueListResponse,
    FulfillmentRejectRequest,
    FulfillmentTrackingRequest,
    LetzshopCachedStoreDetail,
    LetzshopCachedStoreDetailResponse,
    # Store Directory
    LetzshopCachedStoreItem,
    LetzshopCachedStoreListResponse,
    # Connection
    LetzshopConnectionTestRequest,
    LetzshopConnectionTestResponse,
    LetzshopCreateStoreFromCacheResponse,
    # Credentials
    LetzshopCredentialsCreate,
    LetzshopCredentialsResponse,
    LetzshopCredentialsStatus,
    LetzshopCredentialsUpdate,
    LetzshopExportFileInfo,
    # Product Export
    LetzshopExportRequest,
    LetzshopExportResponse,
    # Historical Import
    LetzshopHistoricalImportJobResponse,
    LetzshopHistoricalImportStartResponse,
    # Jobs
    LetzshopJobItem,
    LetzshopJobsListResponse,
    LetzshopOrderDetailResponse,
    # Orders
    LetzshopOrderItemResponse,
    LetzshopOrderListResponse,
    LetzshopOrderResponse,
    LetzshopOrderStats,
    LetzshopStoreDirectoryStats,
    LetzshopStoreDirectoryStatsResponse,
    LetzshopStoreDirectorySyncResponse,
    LetzshopStoreListResponse,
    # Admin
    LetzshopStoreOverview,
    LetzshopSuccessResponse,
    LetzshopSyncLogListResponse,
    # Sync
    LetzshopSyncLogResponse,
    LetzshopSyncTriggerRequest,
    LetzshopSyncTriggerResponse,
)
from app.modules.marketplace.schemas.marketplace_import_job import (
    AdminMarketplaceImportJobListResponse,
    AdminMarketplaceImportJobRequest,
    AdminMarketplaceImportJobResponse,
    MarketplaceImportErrorListResponse,
    MarketplaceImportErrorResponse,
    MarketplaceImportJobListResponse,
    MarketplaceImportJobRequest,
    MarketplaceImportJobResponse,
    MarketplaceImportJobStatusUpdate,
)
from app.modules.marketplace.schemas.marketplace_product import (
    # Import schemas
    MarketplaceImportRequest,
    MarketplaceImportResponse,
    # Base schemas
    MarketplaceProductBase,
    # CRUD schemas
    MarketplaceProductCreate,
    MarketplaceProductDetailResponse,
    MarketplaceProductListResponse,
    # Response schemas
    MarketplaceProductResponse,
    # Translation schemas
    MarketplaceProductTranslationSchema,
    MarketplaceProductUpdate,
)
from app.modules.marketplace.schemas.onboarding import (
    # Step 2
    LetzshopApiConfigRequest,
    LetzshopApiConfigResponse,
    LetzshopApiStepStatus,
    LetzshopApiTestRequest,
    LetzshopApiTestResponse,
    # Step 1
    MerchantProfileRequest,
    MerchantProfileResponse,
    MerchantProfileStepStatus,
    # Admin
    OnboardingSkipRequest,
    OnboardingSkipResponse,
    # Main status
    OnboardingStatusResponse,
    OrderSyncCompleteRequest,
    OrderSyncCompleteResponse,
    OrderSyncProgressResponse,
    OrderSyncStepStatus,
    # Step 4
    OrderSyncTriggerRequest,
    OrderSyncTriggerResponse,
    # Step 3
    ProductImportConfigRequest,
    ProductImportConfigResponse,
    ProductImportStepStatus,
    # Step status
    StepStatus,
)

__all__ = [
    # Import job schemas
    "MarketplaceImportJobRequest",
    "AdminMarketplaceImportJobRequest",
    "MarketplaceImportJobResponse",
    "MarketplaceImportJobListResponse",
    "MarketplaceImportErrorResponse",
    "MarketplaceImportErrorListResponse",
    "AdminMarketplaceImportJobResponse",
    "AdminMarketplaceImportJobListResponse",
    "MarketplaceImportJobStatusUpdate",
    # Product schemas
    "MarketplaceProductTranslationSchema",
    "MarketplaceProductBase",
    "MarketplaceProductCreate",
    "MarketplaceProductUpdate",
    "MarketplaceProductResponse",
    "MarketplaceProductListResponse",
    "MarketplaceProductDetailResponse",
    # 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
    "LetzshopStoreOverview",
    "LetzshopStoreListResponse",
    # Letzshop - Jobs
    "LetzshopJobItem",
    "LetzshopJobsListResponse",
    # Letzshop - Historical Import
    "LetzshopHistoricalImportJobResponse",
    "LetzshopHistoricalImportStartResponse",
    # Letzshop - Store Directory
    "LetzshopCachedStoreItem",
    "LetzshopCachedStoreDetail",
    "LetzshopStoreDirectoryStats",
    "LetzshopStoreDirectoryStatsResponse",
    "LetzshopCachedStoreListResponse",
    "LetzshopCachedStoreDetailResponse",
    "LetzshopStoreDirectorySyncResponse",
    "LetzshopCreateStoreFromCacheResponse",
    # Letzshop - Product Export
    "LetzshopExportRequest",
    "LetzshopExportFileInfo",
    "LetzshopExportResponse",
    # Onboarding - Step status
    "StepStatus",
    "MerchantProfileStepStatus",
    "LetzshopApiStepStatus",
    "ProductImportStepStatus",
    "OrderSyncStepStatus",
    # Onboarding - Main status
    "OnboardingStatusResponse",
    # Onboarding - Step 1
    "MerchantProfileRequest",
    "MerchantProfileResponse",
    # Onboarding - Step 2
    "LetzshopApiConfigRequest",
    "LetzshopApiTestRequest",
    "LetzshopApiTestResponse",
    "LetzshopApiConfigResponse",
    # Onboarding - Step 3
    "ProductImportConfigRequest",
    "ProductImportConfigResponse",
    # Onboarding - Step 4
    "OrderSyncTriggerRequest",
    "OrderSyncTriggerResponse",
    "OrderSyncProgressResponse",
    "OrderSyncCompleteRequest",
    "OrderSyncCompleteResponse",
    # Onboarding - Admin
    "OnboardingSkipRequest",
    "OnboardingSkipResponse",
]
