"""Paramètres de connexion ClickHouse centralisés, chargés depuis les variables d'environnement."""
from pydantic_settings import BaseSettings


class ClickHouseSettings(BaseSettings):
    """Paramètres de connexion ClickHouse lus depuis l'environnement ou un fichier .env.

    Attributs :
        CLICKHOUSE_HOST     : hôte du serveur ClickHouse.
        CLICKHOUSE_PORT     : port HTTP de l'API ClickHouse (défaut 8123).
        CLICKHOUSE_DB       : base de données de connexion par défaut.
        CLICKHOUSE_DB_LOGS  : base de données des logs bruts.
        CLICKHOUSE_DB_PROCESSING : base de données de traitement analytique.
        CLICKHOUSE_USER     : nom d'utilisateur.
        CLICKHOUSE_PASSWORD : mot de passe (chaîne vide si aucun).
    """
    CLICKHOUSE_HOST: str = "clickhouse"
    CLICKHOUSE_PORT: int = 8123
    CLICKHOUSE_DB: str = "ja4_processing"  # default connection database
    CLICKHOUSE_DB_LOGS: str = "ja4_logs"
    CLICKHOUSE_DB_PROCESSING: str = "ja4_processing"
    CLICKHOUSE_USER: str = "admin"
    CLICKHOUSE_PASSWORD: str = ""

    model_config = {"env_file": ".env", "case_sensitive": True}


# Singleton instance — re-instantiate in tests via ClickHouseSettings() directly
settings = ClickHouseSettings()
