#config/settings.py
import os
from dotenv import load_dotenv

load_dotenv()


class Config:
    """Application configuration settings"""
    # Database
    DATABASE_URI = os.getenv("DATABASE_URI")

    # LLM
    OLLAMA_MODEL = os.getenv("OLLAMA_MODEL", "command-r7b-arabic:7b")
    SQL_MODEL = os.getenv("SQL_MODEL", "sqlcoder:7b")
    TRANSLATE_MODEL = os.getenv("TRANSLATE_MODEL", "NLLB-200-distilled-600M")

    # Security
    SUPER_ADMIN_SECRET_KEY = os.getenv("SUPER_ADMIN_SECRET_KEY")

    # Logging
    LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO")

    # Redis Cache
    REDIS_HOST = os.getenv("REDIS_HOST", "localhost")
    REDIS_PORT = int(os.getenv("REDIS_PORT", 6379))

    # API Configuration
    API_TITLE = "ERP AI Assistant"
    API_DESCRIPTION = "Intelligent AI assistant for ERP system queries with document generation."
    API_VERSION = "3.0.0"

    # CORS Configuration
    CORS_ORIGINS = ["*"]
    CORS_CREDENTIALS = True
    CORS_METHODS = ["*"]
    CORS_HEADERS = ["*"]
    NIGHTLY_START_HOUR = int(os.getenv("NIGHTLY_START_HOUR", 0))
    NIGHTLY_DURATION_HOURS = int(os.getenv("NIGHTLY_DURATION_HOURS", 3))
    @classmethod
    def validate(cls):
        """Validate required environment variables"""
        required_vars = {
            "DATABASE_URI": cls.DATABASE_URI,
            "SUPER_ADMIN_SECRET_KEY": cls.SUPER_ADMIN_SECRET_KEY
        }

        missing_vars = [var for var, value in required_vars.items() if not value]

        if missing_vars:
            raise ValueError(f"Missing required environment variables: {', '.join(missing_vars)}")

        return True

