"""
Test Registry Module

Zentrale API fuer das Test-Dashboard.
Entdeckt, registriert und fuehrt Tests aus allen Services aus.

Phase 1 Update (2026-02-02):
- PostgreSQL-Integration fuer persistente Speicherung
- Backlog-Management mit Status-Workflow
- Historie und Trends ueber Zeit

Modular Refactoring (2026-02-03):
- Split into sub-modules for maintainability
"""

# Re-export the router for FastAPI
from .routes import router

# Re-export config for external access
from .config import (
    PROJECT_ROOT,
    RUN_MODE,
    DATA_DIR,
    RESULTS_FILE,
    check_go_available,
    check_pytest_available,
    get_go_version,
    get_pytest_version,
    load_persisted_results,
    save_persisted_results,
    migrate_json_to_postgres,
    is_postgres_available,
    get_persisted_results,
    get_test_runs,
    get_current_runs,
    get_running_tests,
)

# Re-export API models
from .api_models import (
    TestRunRequest,
    TestRunResponse,
    RegistryResponse,
    BacklogStatusUpdate,
    BacklogPriorityUpdate,
    FixAttempt,
    ManualBacklogEntry,
    CIResultRequest,
)

# Re-export discovery functions
from .discovery import (
    discover_go_tests,
    discover_python_tests,
    discover_bqas_tests,
    build_service_info,
)

# Re-export executors
from .executors import (
    run_go_tests,
    run_python_tests,
    run_bqas_tests,
    run_jest_tests,
    run_playwright_tests,
    run_tests_in_container,
    execute_test_run,
)

# Re-export services
from .services import (
    extract_go_error,
    classify_go_error,
    suggest_go_fix,
    extract_pytest_error,
    classify_pytest_error,
    suggest_pytest_fix,
)

__all__ = [
    # Router
    "router",
    # Config
    "PROJECT_ROOT",
    "RUN_MODE",
    "DATA_DIR",
    "RESULTS_FILE",
    "check_go_available",
    "check_pytest_available",
    "get_go_version",
    "get_pytest_version",
    "load_persisted_results",
    "save_persisted_results",
    "migrate_json_to_postgres",
    "is_postgres_available",
    "get_persisted_results",
    "get_test_runs",
    "get_current_runs",
    "get_running_tests",
    # API Models
    "TestRunRequest",
    "TestRunResponse",
    "RegistryResponse",
    "BacklogStatusUpdate",
    "BacklogPriorityUpdate",
    "FixAttempt",
    "ManualBacklogEntry",
    "CIResultRequest",
    # Discovery
    "discover_go_tests",
    "discover_python_tests",
    "discover_bqas_tests",
    "build_service_info",
    # Executors
    "run_go_tests",
    "run_python_tests",
    "run_bqas_tests",
    "run_jest_tests",
    "run_playwright_tests",
    "run_tests_in_container",
    "execute_test_run",
    # Services
    "extract_go_error",
    "classify_go_error",
    "suggest_go_fix",
    "extract_pytest_error",
    "classify_pytest_error",
    "suggest_pytest_fix",
]
