# app/modules/monitoring/__init__.py
"""
Monitoring Module - Platform monitoring and observability.

This is a self-contained internal module providing:
- Background task monitoring
- Import job tracking
- System capacity monitoring
- Application logs viewing
- Platform health checks

Module Structure:
- models/ - Database models (CapacitySnapshot, AdminNotification, etc.)
- services/ - Business logic (BackgroundTasksService)
- schemas/ - Pydantic DTOs
- routes/ - API and page 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 == "monitoring_module":
        from app.modules.monitoring.definition import monitoring_module

        return monitoring_module
    if name == "get_monitoring_module_with_routers":
        from app.modules.monitoring.definition import get_monitoring_module_with_routers

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


__all__ = ["monitoring_module", "get_monitoring_module_with_routers"]
