"""
Configurazione condivisa: legge il file .env nella radice del progetto
(con override da variabili d'ambiente) e fornisce i default DB a tutti
gli script. Sul VPS basta modificare il .env, nessun codice da toccare.

Chiavi riconosciute nel .env:
    DB_HOST, DB_PORT, DB_USER, DB_PASSWORD          (default: 127.0.0.1/3306/root/vuota)
    ANTHROPIC_API_KEY
    TELEGRAM_API_ID, TELEGRAM_API_HASH
"""

import os
from pathlib import Path

PROJECT_ROOT = Path(__file__).resolve().parent.parent


def _load_env() -> dict:
    env = {}
    f = PROJECT_ROOT / ".env"
    if f.exists():
        for line in f.read_text().splitlines():
            line = line.strip()
            if line and not line.startswith("#") and "=" in line:
                k, v = line.split("=", 1)
                env[k.strip()] = v.strip()
    return env


_ENV = _load_env()


def get(key: str, default: str | None = None) -> str | None:
    """Variabile d'ambiente > .env > default."""
    return os.environ.get(key) or _ENV.get(key) or default


DB = {
    "host": get("DB_HOST", "127.0.0.1"),
    "port": int(get("DB_PORT", "3306")),
    "user": get("DB_USER", "root"),
    "password": get("DB_PASSWORD", ""),
}


def add_db_args(parser) -> None:
    """Argomenti DB standard con default dal .env (sempre sovrascrivibili da CLI)."""
    parser.add_argument("--host", default=DB["host"])
    parser.add_argument("--port", type=int, default=DB["port"])
    parser.add_argument("--user", default=DB["user"])
    parser.add_argument("--password", default=DB["password"])
