"""Media source health tracking."""

from __future__ import annotations

from collections import defaultdict


SOURCE_HEALTH: dict[str, dict[str, int]] = defaultdict(dict)


def mark_source_success(platform: str, source: str) -> None:
    SOURCE_HEALTH[platform][source] = SOURCE_HEALTH[platform].get(source, 0) + 1


def mark_source_failure(platform: str, source: str) -> None:
    SOURCE_HEALTH[platform][source] = SOURCE_HEALTH[platform].get(source, 0) - 1


def best_source(platform: str) -> str | None:
    health = SOURCE_HEALTH.get(platform)

    if not health:
        return None

    return max(health.items(), key=lambda item: item[1])[0]
