# app/modules/orders/schemas/__init__.py
"""
Orders module Pydantic schemas.

This module contains the canonical implementations of order-related schemas.
"""

from app.modules.orders.schemas.invoice import (
    InvoiceBuyerDetails,
    # Invoice CRUD schemas
    InvoiceCreate,
    # Line item schemas
    InvoiceLineItem,
    InvoiceLineItemResponse,
    # Pagination
    InvoiceListPaginatedResponse,
    InvoiceListResponse,
    InvoiceManualCreate,
    # PDF
    InvoicePDFGeneratedResponse,
    InvoiceResponse,
    # Address schemas
    InvoiceSellerDetails,
    InvoiceStatsResponse,
    InvoiceStatusUpdate,
    # Invoice settings schemas
    StoreInvoiceSettingsCreate,
    StoreInvoiceSettingsResponse,
    StoreInvoiceSettingsUpdate,
)
from app.modules.orders.schemas.order import (
    # Address schemas
    AddressSnapshot,
    AddressSnapshotResponse,
    # Admin schemas
    AdminOrderItem,
    AdminOrderListResponse,
    AdminOrderStats,
    AdminOrderStatusUpdate,
    AdminStoresWithOrdersResponse,
    AdminStoreWithOrders,
    # Customer schemas
    CustomerSnapshot,
    CustomerSnapshotResponse,
    LetzshopOrderConfirmItem,
    LetzshopOrderConfirmRequest,
    # Letzshop schemas
    LetzshopOrderImport,
    LetzshopShippingInfo,
    # Shipping schemas
    MarkAsShippedRequest,
    # Order CRUD schemas
    OrderCreate,
    OrderDetailResponse,
    # Order item schemas
    OrderItemCreate,
    OrderItemExceptionBrief,
    OrderItemResponse,
    OrderItemStateUpdate,
    OrderListItem,
    OrderListResponse,
    # Order response schemas
    OrderResponse,
    OrderTrackingUpdate,
    OrderUpdate,
    ShippingLabelInfo,
)
from app.modules.orders.schemas.order_item_exception import (
    AutoMatchResult,
    BulkResolveRequest,
    BulkResolveResponse,
    IgnoreExceptionRequest,
    OrderItemExceptionBriefResponse,
    OrderItemExceptionListResponse,
    OrderItemExceptionResponse,
    OrderItemExceptionStats,
    ResolveExceptionRequest,
)

__all__ = [
    # Address schemas
    "AddressSnapshot",
    "AddressSnapshotResponse",
    # Order item schemas
    "OrderItemCreate",
    "OrderItemExceptionBrief",
    "OrderItemResponse",
    # Order item exception schemas
    "OrderItemExceptionResponse",
    "OrderItemExceptionBriefResponse",
    "OrderItemExceptionListResponse",
    "OrderItemExceptionStats",
    "ResolveExceptionRequest",
    "IgnoreExceptionRequest",
    "BulkResolveRequest",
    "BulkResolveResponse",
    "AutoMatchResult",
    # Customer schemas
    "CustomerSnapshot",
    "CustomerSnapshotResponse",
    # Order CRUD schemas
    "OrderCreate",
    "OrderUpdate",
    "OrderTrackingUpdate",
    "OrderItemStateUpdate",
    # Order response schemas
    "OrderResponse",
    "OrderDetailResponse",
    "OrderListResponse",
    "OrderListItem",
    # Admin schemas
    "AdminOrderItem",
    "AdminOrderListResponse",
    "AdminOrderStats",
    "AdminOrderStatusUpdate",
    "AdminStoreWithOrders",
    "AdminStoresWithOrdersResponse",
    # Letzshop schemas
    "LetzshopOrderImport",
    "LetzshopShippingInfo",
    "LetzshopOrderConfirmItem",
    "LetzshopOrderConfirmRequest",
    # Shipping schemas
    "MarkAsShippedRequest",
    "ShippingLabelInfo",
    # Invoice settings schemas
    "StoreInvoiceSettingsCreate",
    "StoreInvoiceSettingsUpdate",
    "StoreInvoiceSettingsResponse",
    # Line item schemas
    "InvoiceLineItem",
    "InvoiceLineItemResponse",
    # Invoice address schemas
    "InvoiceSellerDetails",
    "InvoiceBuyerDetails",
    # Invoice CRUD schemas
    "InvoiceCreate",
    "InvoiceManualCreate",
    "InvoiceResponse",
    "InvoiceListResponse",
    "InvoiceStatusUpdate",
    # Pagination
    "InvoiceListPaginatedResponse",
    # PDF
    "InvoicePDFGeneratedResponse",
    "InvoiceStatsResponse",
]
