from abc import ABC, abstractmethod from dataclasses import dataclass from typing import Any @dataclass class CheckResult: success: bool message: str response_time: float | None = None details: dict[str, Any] | None = None class BaseChecker(ABC): def __init__(self, name: str, config: dict): self.name = name self.config = config @abstractmethod def check(self) -> CheckResult: pass