# app: recharge/utils/plans_cache.py (new file; or place near your API)
from typing import Any, Dict, Iterable

def lower_keys(d: Dict[str, Any]) -> Dict[str, Any]:
    """Return a shallow copy with lower-cased keys (handles provider case mismatches)."""
    if not isinstance(d, dict):
        return {}
    return { (k or "") .lower(): v for k, v in d.items() }

def any_key(d: Dict[str, Any], keys: Iterable[str], default=None):
    """Get first present key (case-insensitive) from dict."""
    if not isinstance(d, dict):
        return default
    dl = lower_keys(d)
    for k in keys:
        v = dl.get(k.lower())
        if v is not None:
            return v
    return default
