import os
from dotenv import load_dotenv
from pathlib import Path

import logging

logger = logging.getLogger("agrota-config")

# Cargar variables de entorno
env_path = Path(__file__).parent.parent / ".env"
load_dotenv(dotenv_path=env_path, override=True)

if env_path.exists():
    logger.info(f"✅ Archivo .env detectado en: {env_path.absolute()}")
else:
    logger.warning(f"❌ Archivo .env NO ENCONTRADO en: {env_path.absolute()}")


class Settings:
    # LLM y MCP
    OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
    MCP_SERVER_URL = os.getenv("MCP_SERVER_URL")
    MODEL_NAME = os.getenv("MODEL_NAME")
    CLIENT_NAME = os.getenv("CLIENT_NAME")

    # Configuración Redis
    REDIS_HOST = os.getenv("REDIS_HOST")
    REDIS_PORT = int(os.getenv("REDIS_PORT", "6379"))
    REDIS_PASSWORD = os.getenv("REDIS_PASSWORD", None)
    REDIS_DB = int(os.getenv("REDIS_DB", "0"))

    # WhatsApp Configuration
    WHATSAPP_API_BASE_URL = os.getenv(
        "WHATSAPP_API_BASE_URL", "https://graph.facebook.com"
    )
    WHATSAPP_API_VERSION = os.getenv("WHATSAPP_API_VERSION", "v22.0")
    WHATSAPP_ACCESS_TOKEN = os.getenv("WHATSAPP_ACCESS_TOKEN")
    WHATSAPP_PHONE_NUMBER_ID = os.getenv("WHATSAPP_PHONE_NUMBER_ID")

    # File Bot API Settings
    FILES_API_URL = os.getenv(
        "FILES_API_URL", "https://agrota.lhia.ai/api-files-bot/v1/stored-file/save"
    )
    TRANSCRIPTION_API_URL = os.getenv("TRANSCRIPTION_API_URL", "https://agrota.lhia.ai/api-files-bot")
    UPLOAD_DOCUMENT_URL = FILES_API_URL # URL Directa al endpoint JSON de guardado

    # App Settings
    PORT = int(os.getenv("PORT", "8086"))

    # Keycloak Auth
    KEYCLOAK_TOKEN_URL = os.getenv(
        "KEYCLOAK_TOKEN_URL",
        "https://login.tws2.io/auth/realms/lhia/protocol/openid-connect/token",
    )
    KEYCLOAK_USERNAME = os.getenv("KEYCLOAK_USERNAME", "test")
    KEYCLOAK_PASSWORD = os.getenv("KEYCLOAK_PASSWORD", "test.2012")
    KEYCLOAK_CLIENT_ID = os.getenv("KEYCLOAK_CLIENT_ID", "logueoBack")


settings = Settings()
