from fastapi import APIRouter, Depends from admin_app.api.dependencies import get_settings from admin_app.api.schemas import AdminHealthResponse, AdminRootResponse, AdminSystemInfoResponse from admin_app.core.settings import AdminSettings from admin_app.services.system_service import SystemService router = APIRouter(tags=["system"]) def _build_service(settings: AdminSettings) -> SystemService: return SystemService(settings=settings) @router.get("/", response_model=AdminRootResponse) def root(settings: AdminSettings = Depends(get_settings)): return _build_service(settings).build_root_payload() @router.get("/health", response_model=AdminHealthResponse) def health_check(settings: AdminSettings = Depends(get_settings)): return _build_service(settings).build_health_payload() @router.get("/system/info", response_model=AdminSystemInfoResponse) def system_info(settings: AdminSettings = Depends(get_settings)): return _build_service(settings).build_system_info_payload()