"""Webmail HTTPS check (read-only)."""

from __future__ import annotations

from typing import Any

import httpx


def collect(domain: str) -> dict[str, dict[str, Any]]:
    domain = domain.lower().strip()
    url = f"https://mail.{domain}/"
    try:
        with httpx.Client(timeout=12.0, follow_redirects=True, verify=True) as client:
            response = client.get(url)
        code = response.status_code
        if 200 <= code < 400:
            status, message = "pass", f"HTTP {code}"
        elif code == 403:
            status, message = "warn", f"HTTP {code}"
        else:
            status, message = "fail", f"HTTP {code}"
        return {
            "webmail_http": {
                "check_id": "webmail_http",
                "label": "Webmail HTTPS",
                "status": status,
                "message": message,
                "evidence": {"url": url, "status_code": code},
            }
        }
    except Exception as exc:
        return {
            "webmail_http": {
                "check_id": "webmail_http",
                "label": "Webmail HTTPS",
                "status": "fail",
                "message": str(exc)[:200],
                "evidence": {"url": url},
            }
        }
