""" 应用配置模块 """ import os from typing import Optional from pydantic_settings import BaseSettings from pydantic import Field from sqlalchemy.orm import Session class Settings(BaseSettings): """应用配置类""" # 应用配置 APP_NAME: str = "AmazingData金融数据服务平台" APP_VERSION: str = "1.0.0" DEBUG: bool = Field(default=True, env="DEBUG") # 数据库配置 - 使用SQLite简化演示 DATABASE_URL: str = Field( default="sqlite:///./amazing_data.db", env="DATABASE_URL" ) # Redis配置 REDIS_URL: str = Field( default="redis://localhost:6379/0", env="REDIS_URL" ) # JWT配置 SECRET_KEY: str = Field( default="your-secret-key-change-in-production", env="SECRET_KEY" ) ACCESS_TOKEN_EXPIRE_HOURS: int = Field(default=24, env="ACCESS_TOKEN_EXPIRE_HOURS") ALGORITHM: str = "HS256" # 缓存配置 CACHE_DEFAULT_PERIOD: str = "daily" CACHE_DEFAULT_DAYS: int = 365 CACHE_AUTO_CLEANUP_DAYS: int = 7 CACHE_BATCH_SIZE: int = 100 CACHE_MISSING_THRESHOLD: float = 0.1 # 实时数据配置 REALTIME_SUBSCRIBE_INTERVAL: int = 1000 class Config: env_file = ".env" case_sensitive = True # 全局配置实例 settings = Settings() def load_system_configs(db: Session): """ 从数据库加载系统配置到全局settings 注意:这需要在数据库初始化后调用 """ from app.services.config_service import ConfigService system_configs = ConfigService.get_all_system_configs(db) if "DATABASE_URL" in system_configs: settings.DATABASE_URL = system_configs["DATABASE_URL"] if "REDIS_URL" in system_configs: settings.REDIS_URL = system_configs["REDIS_URL"]