"""Health domain models. Internal domain-focused models used by health_service. These represent the business domain layer and are independent of HTTP response shapes. Response models are defined in `app.models.config` and mappers convert domain models to response models at the router boundary. """ from __future__ import annotations from dataclasses import dataclass @dataclass(frozen=True) class DomainServerStatus: """Cached fail2ban server health snapshot (domain model).""" online: bool version: str | None = None active_jails: int = 0 total_bans: int = 0 total_failures: int = 0