"""Runtime diagnostics helpers."""

from __future__ import annotations

from collections import deque
from time import time


RECENT_PIPELINES = deque(maxlen=100)


def track_pipeline(chat_id: int, user_id: int, duration_ms: float) -> None:
    RECENT_PIPELINES.append(
        {
            "chat_id": chat_id,
            "user_id": user_id,
            "duration_ms": round(duration_ms, 2),
            "timestamp": int(time()),
        }
    )


def recent_pipeline_stats() -> dict:
    if not RECENT_PIPELINES:
        return {
            "count": 0,
            "avg_ms": 0,
            "max_ms": 0,
        }

    durations = [item["duration_ms"] for item in RECENT_PIPELINES]

    return {
        "count": len(durations),
        "avg_ms": round(sum(durations) / len(durations), 2),
        "max_ms": round(max(durations), 2),
    }
