# app/modules/inventory/__init__.py
"""
Inventory Module - Stock and product management.

This is a self-contained module providing:
- Inventory tracking across locations
- Stock level management
- Low stock alerts
- Inventory transactions and history
- Bulk inventory imports

Module Structure:
- models/ - Database models (Inventory, InventoryTransaction)
- services/ - Business logic (InventoryService, InventoryTransactionService)
- schemas/ - Pydantic DTOs
- routes/ - API routes
- exceptions.py - Module-specific exceptions
"""

# Use lazy imports to avoid circular import issues


def __getattr__(name: str):
    """Lazy import module components to avoid circular imports."""
    if name == "inventory_module":
        from app.modules.inventory.definition import inventory_module

        return inventory_module
    if name == "get_inventory_module_with_routers":
        from app.modules.inventory.definition import get_inventory_module_with_routers

        return get_inventory_module_with_routers
    raise AttributeError(f"module {__name__!r} has no attribute {name!r}")


__all__ = ["inventory_module", "get_inventory_module_with_routers"]
