| import os | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| class Settings: | |
| PROJECT_NAME: str = "k9t Trader API" | |
| YAHOO_SEARCH_URL: str = "https://query2.finance.yahoo.com/v1/finance/search" | |
| YAHOO_QUOTE_URL: str = "https://query2.finance.yahoo.com/v7/finance/quote" | |
| # Header to mimic a browser to avoid getting blocked by Yahoo | |
| HEADERS: dict = { | |
| "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" | |
| } | |
| # Google Auth | |
| GOOGLE_CLIENT_ID: str = os.getenv("GOOGLE_CLIENT_ID", "") | |
| GOOGLE_CLIENT_SECRET: str = os.getenv("GOOGLE_CLIENT_SECRET", "") | |
| GOOGLE_REDIRECT_URI: str = os.getenv("GOOGLE_REDIRECT_URI", "http://localhost:8000/api/auth/google/callback") | |
| # JWT Config | |
| SECRET_KEY: str = os.getenv("SECRET_KEY", "your-super-secret-key-change-me") | |
| ALGORITHM: str = "HS256" | |
| ACCESS_TOKEN_EXPIRE_MINUTES: int = 60 * 24 * 7 # 1 week | |
| MARKET_INDICES: list = [ | |
| {"symbol": "^GSPC", "name": "S&P 500"}, | |
| {"symbol": "^IXIC", "name": "NASDAQ"}, | |
| {"symbol": "^DJI", "name": "DOW"}, | |
| {"symbol": "^VIX", "name": "VIX"} | |
| ] | |
| settings = Settings() | |