"""
Configuration — loads .env variables
"""
import os
from pathlib import Path
from dotenv import load_dotenv

load_dotenv(override=True)

# Load all API keys as a list (GEMINI_API_KEY accepted as legacy single-key name)
GEMINI_KEYS_RAW: str = os.getenv("GEMINI_API_KEYS") or os.getenv("GEMINI_API_KEY", "")
GEMINI_API_KEYS: list = [k.strip() for k in GEMINI_KEYS_RAW.split(",") if k.strip()]
GEMINI_MODEL: str = os.getenv("GEMINI_MODEL", "gemini-2.5-flash")
GROQ_API_KEY: str = os.getenv("GROQ_API_KEY", "")

BASE_DIR = Path(__file__).resolve().parent
DATABASE_URL: str = os.getenv("DATABASE_URL", f"sqlite:///{BASE_DIR}/data/legal_assistant.db")

SECRET_KEY: str = os.getenv("SECRET_KEY", "change-me-in-production-secret-key-32chars")
ALGORITHM: str = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES: int = int(os.getenv("ACCESS_TOKEN_EXPIRE_MINUTES", "60"))

LAWYERS_DATASET_PATH: str = str(BASE_DIR / "data" / "Lawyers_Dataset.xlsx")
APP_NAME: str = "AI Legal Assistant"
DEBUG: bool = os.getenv("DEBUG", "true").lower() == "true"

# ── Zoom Meeting API (Server-to-Server OAuth) ────────────────────────────────
# Create at: https://marketplace.zoom.us → Build App → Server-to-Server OAuth
ZOOM_ACCOUNT_ID:   str = os.getenv("ZOOM_ACCOUNT_ID", "")
ZOOM_CLIENT_ID:    str = os.getenv("ZOOM_CLIENT_ID", "")
ZOOM_CLIENT_SECRET: str = os.getenv("ZOOM_CLIENT_SECRET", "")
# Leave all three blank to use Jitsi Meet as free fallback
