from __future__ import annotations

from pydantic_settings import BaseSettings, SettingsConfigDict
from pydantic import Field


class Settings(BaseSettings):
    """Application settings (dev defaults). Bind to a .env later if needed."""

    app_env: str = "development"
    debug: bool = True

    # CORS - default dev origins; can tighten later
    cors_origins: list[str] = Field(
        default_factory=lambda: [
            "http://localhost:3000",
            "http://127.0.0.1:3000",
        ]
    )

    # API keys (optional here; use backend/.env in dev)
    alpha_vantage_api_key: str | None = None
    openrouter_api_key: str | None = None

    # Providers
    binance_ws_url: str = "wss://stream.binance.com:9443/ws"

    model_config = SettingsConfigDict(env_file=".env", extra="ignore")


settings = Settings()
