from __future__ import annotations

import os

from fastapi import HTTPException, Security
from fastapi.security import APIKeyHeader

_API_KEY = os.environ.get("API_KEY", "")
_scheme  = APIKeyHeader(name="X-API-Key", auto_error=False)


def verifier_api_key(cle: str | None = Security(_scheme)) -> None:
    """Vérifie X-API-Key uniquement si la variable d'environnement API_KEY est définie."""
    if not _API_KEY:
        return
    if not cle:
        raise HTTPException(status_code=401, detail="Header X-API-Key manquant.")
    if cle != _API_KEY:
        raise HTTPException(status_code=403, detail="Clé API invalide.")
