import os
import logging
from dotenv import load_dotenv

class Config:
    """Clase de configuración centralizada"""
    
    # Cargar variables de entorno
    load_dotenv()
    
    # =============================================================================
    # TELEGRAM & WEBHOOK
    # =============================================================================
    TELEGRAM_TOKEN = os.getenv("TELEGRAM_TOKEN", "").strip()
    WEBHOOK_SECRET = os.getenv("WEBHOOK_SECRET", "").strip()
    SITE_URL = os.getenv("SITE_URL", "https://www.krakeneyeacademy.com")
    SUBSCRIPTION_URL = os.getenv("SUBSCRIPTION_URL", f"{SITE_URL}/telegram-bot/plans/")
    SUPPORT_URL = os.getenv("SUPPORT_URL", "https://t.me/KrakenEyeSupport")
    BOT_WEBHOOK_URL = os.getenv("BOT_WEBHOOK_URL", "https://bot.krakeneyeacademy.com/webhook")

    # =============================================================================
    # BASE DE DATOS
    # =============================================================================
    DB_HOST = os.getenv("DB_HOST", "localhost")
    DB_USER = os.getenv("DB_USER", "root")
    DB_PASSWORD = os.getenv("DB_PASSWORD", "")
    DB_NAME = os.getenv("DB_NAME", "krakene1_krakeneye")
    DB_PORT = os.getenv("DB_PORT", "3306")
    
    # URL para SQLAlchemy
    DATABASE_URL = f"mysql+mysqlconnector://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}"

    # =============================================================================
    # NOWPAYMENTS & SETTINGS
    # =============================================================================
    NOWPAYMENTS_API_KEY = os.getenv("NOWPAYMENTS_API_KEY", "")
    NOWPAYMENTS_IPN_SECRET = os.getenv("NOWPAYMENTS_IPN_SECRET", "")
    NOWPAYMENTS_SANDBOX = os.getenv("NOWPAYMENTS_SANDBOX", "False").lower() == "true"

    DEV_MODE = os.getenv("DEV_MODE", "False").lower() == "true"
    USE_POLLING = os.getenv("USE_POLLING", "True").lower() == "true"
    
    # =============================================================================
    # CONFIGURACIÓN DE ANÁLISIS
    # =============================================================================
    DEFAULT_TIMEFRAME = os.getenv("DEFAULT_TIMEFRAME", "1h")
    
    TOP_SYMBOLS_RAW = os.getenv(
        "TOP_SYMBOLS", 
        "BTC/USDT,ETH/USDT,BNB/USDT,SOL/USDT,XRP/USDT,ADA/USDT,DOGE/USDT,DOT/USDT,MATIC/USDT,AVAX/USDT,LINK/USDT,UNI/USDT"
    )
    TOP_SYMBOLS = [s.strip() for s in TOP_SYMBOLS_RAW.split(",") if s.strip()]
    
    EXCHANGE_PRIORITY_RAW = os.getenv("EXCHANGE_PRIORITY", "bitget,bybit,kucoin")
    EXCHANGE_PRIORITY = [e.strip() for e in EXCHANGE_PRIORITY_RAW.split(",") if e.strip()]
    
    # =============================================================================
    # ZONA HORARIA
    # =============================================================================
    TIMEZONE = os.getenv("TIMEZONE", "America/Caracas")
    
    # =============================================================================
    # Logging
    # =============================================================================
    LOG_DIR = "logs"
    LOG_FILE = os.path.join(LOG_DIR, "bot.log")
    os.makedirs(LOG_DIR, exist_ok=True)
    
    # Validación inicial
    if not TELEGRAM_TOKEN:
        logging.error("❌ TELEGRAM_TOKEN no configurado en .env")
    else:
        logging.info(f"✅ Configuración cargada correctamente desde .env (Zona: {TIMEZONE})")