"""Application configuration loaded from environment variables / .env."""
import os

from dotenv import load_dotenv

load_dotenv()


def _f(name: str, default: float) -> float:
    try:
        return float(os.getenv(name, default))
    except (TypeError, ValueError):
        return default


class Settings:
    DATABASE_URL: str = os.getenv("DATABASE_URL", "sqlite:///./trading_lab.db")
    SECRET_KEY: str = os.getenv("SECRET_KEY", "dev-secret-change-me")
    ACCESS_TOKEN_EXPIRE_MINUTES: int = int(os.getenv("ACCESS_TOKEN_EXPIRE_MINUTES", "1440"))
    FRONTEND_ORIGIN: str = os.getenv("FRONTEND_ORIGIN", "http://localhost:3000")

    DATA_PROVIDER: str = os.getenv("DATA_PROVIDER", "mock")

    # Risk rules
    ACCOUNT_EQUITY: float = _f("ACCOUNT_EQUITY", 100_000.0)
    MAX_RISK_PER_TRADE_PCT: float = _f("MAX_RISK_PER_TRADE_PCT", 1.0)
    MAX_DAILY_RISK_PCT: float = _f("MAX_DAILY_RISK_PCT", 6.0)
    MIN_RISK_REWARD: float = _f("MIN_RISK_REWARD", 2.0)
    MIN_CONFIDENCE: float = _f("MIN_CONFIDENCE", 65.0)
    MIN_PROBABILITY: float = _f("MIN_PROBABILITY", 55.0)


settings = Settings()
