import json from typing import List from pydantic_settings import BaseSettings from functools import lru_cache class Settings(BaseSettings): APP_NAME: str = "A股智投后端服务" APP_ENV: str = "development" APP_DEBUG: bool = True APP_HOST: str = "0.0.0.0" APP_PORT: int = 8000 CORS_ORIGINS: str = '["http://localhost:5173","http://localhost:3000"]' REDIS_URL: str = "redis://localhost:6379/0" CACHE_TTL: int = 60 LOG_LEVEL: str = "INFO" EASTMONEY_API: str = "https://push2.eastmoney.com" THS_API: str = "https://q.10jqka.com.cn" XUEQIU_API: str = "https://stock.xueqiu.com" TENCENT_API: str = "https://web.sqt.gtimg.cn" WS_HEARTBEAT_INTERVAL: int = 30 WS_RECONNECT_DELAY: int = 5 @property def cors_origins_list(self) -> List[str]: return json.loads(self.CORS_ORIGINS) class Config: env_file = ".env" env_file_encoding = "utf-8" @lru_cache() def get_settings() -> Settings: return Settings() settings = get_settings()