from __future__ import annotations

from fastapi import APIRouter, HTTPException

from jarvis_finance.services.system_ops import restart_system_component, system_status

router = APIRouter(tags=["system"])


@router.get("/system/status")
def get_system_status() -> dict:
    return system_status()


@router.post("/system/restart-backend")
def restart_backend() -> dict:
    return _restart("backend")


@router.post("/system/restart-frontend")
def restart_frontend() -> dict:
    return _restart("frontend")


@router.post("/system/restart-dashboard")
def restart_dashboard() -> dict:
    return _restart("dashboard")


def _restart(action: str) -> dict:
    try:
        return restart_system_component(action)
    except ValueError as exc:
        raise HTTPException(status_code=400, detail=str(exc)) from exc
