# app/modules/dev_tools/__init__.py
"""
Dev-Tools Module - Developer tools and utilities.

This is a self-contained internal module providing:
- Code quality scanning (architecture, security, performance validators)
- Violation tracking and assignment
- Test execution and results management
- Component library browser
- Icon browser

Module Structure:
- models/ - Database models (ArchitectureScan, TestRun, etc.)
- services/ - Business logic (CodeQualityService, TestRunnerService)
- schemas/ - Pydantic DTOs
- tasks/ - Celery background tasks
- routes/ - API and page routes
- exceptions.py - Module-specific exceptions

Routes:
- Admin: Code quality API, test runner API, component/icon pages
- Store: None (internal module)

Menu Items:
- Admin: components, icons, code-quality, tests
- Store: None
"""

# Use lazy imports to avoid circular import issues when models are loaded early
# The definition imports from app.modules.base which eventually imports models


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

        return dev_tools_module
    if name == "get_dev_tools_module_with_routers":
        from app.modules.dev_tools.definition import get_dev_tools_module_with_routers

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


__all__ = ["dev_tools_module", "get_dev_tools_module_with_routers"]
