# app/modules/customers/__init__.py
"""
Customers Module - Customer database and management.

This is a self-contained core module providing:
- Customer registration and authentication
- Customer profiles and contact information
- Customer address management
- Customer segmentation and tags

Module Structure:
- models/ - Database models (Customer, CustomerAddress, etc.)
- services/ - Business logic (CustomerService, CustomerAddressService)
- 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 == "customers_module":
        from app.modules.customers.definition import customers_module

        return customers_module
    if name == "get_customers_module_with_routers":
        from app.modules.customers.definition import get_customers_module_with_routers

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


__all__ = ["customers_module", "get_customers_module_with_routers"]
