from __future__ import annotations

from typing import Optional

from qdrant_client import QdrantClient

from app.core.config import settings

_client: Optional[QdrantClient] = None


def get_qdrant_client() -> QdrantClient:
    """Return a shared sync Qdrant client."""
    global _client
    if _client is None:
        kwargs: dict = {"url": settings.QDRANT_URL}
        if settings.QDRANT_API_KEY.strip():
            kwargs["api_key"] = settings.QDRANT_API_KEY.strip()
        _client = QdrantClient(**kwargs)
    return _client


def reset_qdrant_client() -> None:
    """Close and discard the cached client (tests)."""
    global _client
    if _client is not None:
        _client.close()
        _client = None
