"""
Uwierzytelnianie przez klucz API przesyłany w nagłówku X-API-Key.
Klucz jest wspólny dla PHP i Pythona – przechowuj go w .env.
"""
from __future__ import annotations

from fastapi import Security, HTTPException, status
from fastapi.security.api_key import APIKeyHeader

from .config import settings

_api_key_header = APIKeyHeader(name="X-API-Key", auto_error=False)


async def require_api_key(api_key: str | None = Security(_api_key_header)) -> str:
    """Dependency: weryfikuje klucz API. Rzuca 403 jeśli klucz jest nieprawidłowy."""
    if not api_key or api_key != settings.api_key:
        raise HTTPException(
            status_code=status.HTTP_403_FORBIDDEN,
            detail="Nieprawidłowy lub brakujący klucz API (X-API-Key)",
        )
    return api_key
