"""Compatibility facade for persistent quota enforcement."""

from __future__ import annotations

from typing import Any

from bridge_platform.quotas.service import consume, usage_snapshot


class QuotaGuard:
    """Read effective limits and atomically consume usage."""

    def describe_limits(self, *, tenant: dict[str, Any] | None, app_id: str | None) -> dict[str, Any]:
        return {
            "tenant_id": (tenant or {}).get("tenant_id"),
            "app_id": app_id,
            "usage": usage_snapshot((tenant or {})["tenant_id"]) if (tenant or {}).get("tenant_id") else {},
        }

    def check(self, *, tenant: dict[str, Any] | None, app_id: str | None, metric: str = "requests", amount: float = 1):
        tenant_id = (tenant or {}).get("tenant_id")
        if not tenant_id:
            raise ValueError("Tenant is required for quota enforcement")
        return consume(tenant_id=tenant_id, app_id=app_id, metric=metric, amount=amount)
