"""
=========================================================
CV6 AI Trading OS
File : app/core/settings.py
Purpose : Load all application settings from .env
=========================================================
"""

import os
from dotenv import load_dotenv

# --------------------------------------------------------
# Load Environment Variables
# --------------------------------------------------------

load_dotenv()


# --------------------------------------------------------
# Settings Class
# --------------------------------------------------------

class Settings:
    """
    Application Settings

    Reads all configuration values from the .env file.
    These settings are available throughout the project.
    """

    # ----------------------------------------------------
    # Application
    # ----------------------------------------------------

    APP_NAME = os.getenv("APP_NAME", "CV6 AI Trading OS")
    APP_VERSION = os.getenv("APP_VERSION", "1.0.0")
    DEBUG = os.getenv("DEBUG", "True").lower() == "true"

    # ----------------------------------------------------
    # Server
    # ----------------------------------------------------

    HOST = os.getenv("HOST", "127.0.0.1")
    PORT = int(os.getenv("PORT", "8000"))

    # ----------------------------------------------------
    # Security
    # ----------------------------------------------------

    SECRET_KEY = os.getenv(
        "SECRET_KEY",
        "cv6_secret_key_change_later"
    )

    # ----------------------------------------------------
    # Database
    # ----------------------------------------------------

    DATABASE_URL = os.getenv(
        "DATABASE_URL",
        "sqlite:///cv6.db"
    )

    # ----------------------------------------------------
    # OpenAI
    # ----------------------------------------------------

    OPENAI_API_KEY = os.getenv(
        "OPENAI_API_KEY",
        ""
    )

    GPT_MODEL = os.getenv(
        "GPT_MODEL",
        "gpt-4o-mini"
    )

    GPT_MAX_TOKENS = int(
        os.getenv(
            "GPT_MAX_TOKENS",
            "2048"
        )
    )

    GPT_TEMPERATURE = float(
        os.getenv(
            "GPT_TEMPERATURE",
            "0.2"
        )
    )

    GPT_TIMEOUT = int(
        os.getenv(
            "GPT_TIMEOUT",
            "60"
        )
    )

    # ----------------------------------------------------
    # Claude (Anthropic)
    # ----------------------------------------------------

    ANTHROPIC_API_KEY = os.getenv(
        "ANTHROPIC_API_KEY",
        ""
    )

    CLAUDE_MODEL = os.getenv(
        "CLAUDE_MODEL",
        "claude-sonnet-4-0"
    )

    CLAUDE_MAX_TOKENS = int(
        os.getenv(
            "CLAUDE_MAX_TOKENS",
            "2048"
        )
    )

    CLAUDE_TEMPERATURE = float(
        os.getenv(
            "CLAUDE_TEMPERATURE",
            "0.2"
        )
    )

    CLAUDE_TIMEOUT = int(
        os.getenv(
            "CLAUDE_TIMEOUT",
            "60"
        )
    )


# --------------------------------------------------------
# Global Settings Object
# --------------------------------------------------------

settings = Settings()