from __future__ import annotations import logging import time logger = logging.getLogger(__name__) class ILinkStatus: def __init__(self): self.connected = False self.last_poll_at: float = 0.0 self.last_token_refresh_at: float = 0.0 self.poll_errors: int = 0 self.token_errors: int = 0 def record_poll_success(self) -> None: self.last_poll_at = time.time() self.poll_errors = 0 def record_poll_error(self) -> None: self.poll_errors += 1 def record_token_refresh(self) -> None: self.last_token_refresh_at = time.time() self.token_errors = 0 def record_token_error(self) -> None: self.token_errors += 1 def build_summary(self) -> dict: return { "connected": self.connected, "last_poll_at": self.last_poll_at, "last_token_refresh_at": self.last_token_refresh_at, "poll_errors": self.poll_errors, "token_errors": self.token_errors, }