# 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.marketplace_import_job import (
    MarketplaceImportJobRequest,
    AdminMarketplaceImportJobRequest,
    MarketplaceImportJobResponse,
    MarketplaceImportJobListResponse,
    MarketplaceImportErrorResponse,
    MarketplaceImportErrorListResponse,
    AdminMarketplaceImportJobResponse,
    AdminMarketplaceImportJobListResponse,
    MarketplaceImportJobStatusUpdate,
)
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,
)
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,
    # Product Export
    LetzshopExportRequest,
    LetzshopExportFileInfo,
    LetzshopExportResponse,
)
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
    "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
    "LetzshopVendorOverview",
    "LetzshopVendorListResponse",
    # Letzshop - Jobs
    "LetzshopJobItem",
    "LetzshopJobsListResponse",
    # Letzshop - Historical Import
    "LetzshopHistoricalImportJobResponse",
    "LetzshopHistoricalImportStartResponse",
    # Letzshop - Vendor Directory
    "LetzshopCachedVendorItem",
    "LetzshopCachedVendorDetail",
    "LetzshopVendorDirectoryStats",
    "LetzshopVendorDirectoryStatsResponse",
    "LetzshopCachedVendorListResponse",
    "LetzshopCachedVendorDetailResponse",
    "LetzshopVendorDirectorySyncResponse",
    "LetzshopCreateVendorFromCacheResponse",
    # Letzshop - Product Export
    "LetzshopExportRequest",
    "LetzshopExportFileInfo",
    "LetzshopExportResponse",
    # 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",
]
