# app/modules/inventory/schemas/__init__.py
"""
Inventory module Pydantic schemas.

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

from app.modules.inventory.schemas.inventory import (
    # Base schemas
    InventoryBase,
    InventoryCreate,
    InventoryAdjust,
    InventoryUpdate,
    InventoryReserve,
    # Response schemas
    InventoryResponse,
    InventoryLocationResponse,
    ProductInventorySummary,
    InventoryListResponse,
    InventoryMessageResponse,
    InventorySummaryResponse,
    # Admin schemas
    AdminInventoryCreate,
    AdminInventoryAdjust,
    AdminInventoryItem,
    AdminInventoryListResponse,
    AdminInventoryStats,
    AdminLowStockItem,
    AdminVendorWithInventory,
    AdminVendorsWithInventoryResponse,
    AdminInventoryLocationsResponse,
    # Transaction schemas
    InventoryTransactionResponse,
    InventoryTransactionWithProduct,
    InventoryTransactionListResponse,
    ProductTransactionHistoryResponse,
    OrderTransactionHistoryResponse,
    # Admin transaction schemas
    AdminInventoryTransactionItem,
    AdminInventoryTransactionListResponse,
    AdminTransactionStatsResponse,
)

__all__ = [
    # Base schemas
    "InventoryBase",
    "InventoryCreate",
    "InventoryAdjust",
    "InventoryUpdate",
    "InventoryReserve",
    # Response schemas
    "InventoryResponse",
    "InventoryLocationResponse",
    "ProductInventorySummary",
    "InventoryListResponse",
    "InventoryMessageResponse",
    "InventorySummaryResponse",
    # Admin schemas
    "AdminInventoryCreate",
    "AdminInventoryAdjust",
    "AdminInventoryItem",
    "AdminInventoryListResponse",
    "AdminInventoryStats",
    "AdminLowStockItem",
    "AdminVendorWithInventory",
    "AdminVendorsWithInventoryResponse",
    "AdminInventoryLocationsResponse",
    # Transaction schemas
    "InventoryTransactionResponse",
    "InventoryTransactionWithProduct",
    "InventoryTransactionListResponse",
    "ProductTransactionHistoryResponse",
    "OrderTransactionHistoryResponse",
    # Admin transaction schemas
    "AdminInventoryTransactionItem",
    "AdminInventoryTransactionListResponse",
    "AdminTransactionStatsResponse",
]
