"""Database client implementations"""
from .postgresql import PostgresClient, ensure_pg_database_exists
from .factory import (
    create_postgres_client,
    get_postgres_client,
    create_elasticsearch_client,
    get_elasticsearch_client,
    create_doris_client,
    get_doris_client,
)

try:
    from .elasticsearch import ElasticsearchClient
except ImportError:  # pragma: no cover
    ElasticsearchClient = None

try:
    from .doris import DorisClient, ensure_doris_database_exists
except ImportError:  # pragma: no cover
    DorisClient = None
    ensure_doris_database_exists = None  # type: ignore[assignment]

__all__ = [
    "PostgresClient",
    "ElasticsearchClient",
    "DorisClient",
    "create_postgres_client",
    "get_postgres_client",
    "create_elasticsearch_client",
    "get_elasticsearch_client",
    "create_doris_client",
    "get_doris_client",
    "ensure_pg_database_exists",
    "ensure_doris_database_exists",
]
