from datetime import datetime, UTC

try:
    import psutil
except ModuleNotFoundError:  # pragma: no cover - optional runtime dependency fallback
    psutil = None


class SystemService:
    def get_status(self) -> dict:
        if psutil is None:
            return {
                'cpu_percent': 0.0,
                'memory_percent': 0.0,
                'disk_percent': 0.0,
                'timestamp': datetime.now(UTC).isoformat(),
            }

        cpu_percent = psutil.cpu_percent(interval=None)
        memory = psutil.virtual_memory()
        disk = psutil.disk_usage('/')
        return {
            'cpu_percent': round(cpu_percent, 1),
            'memory_percent': round(memory.percent, 1),
            'disk_percent': round(disk.percent, 1),
            'timestamp': datetime.now(UTC).isoformat(),
        }
