from pydantic import Field from pydantic_settings import BaseSettings, SettingsConfigDict from .settings import * class GlobalConfigSettings(BaseSettings): """应用全局配置""" # ============ 应用基础配置 ============ app_name: str = Field(default="LongArticleTaskServer", description="应用名称") environment: str = Field( default="development", description="运行环境: development/pre/production" ) debug: bool = Field(default=False, description="调试模式") # ============ 数据库配置 ============ aigc_db: AigcDatabaseConfig = Field(default_factory=AigcDatabaseConfig) long_video_db: LongVideoDatabaseConfig = Field( default_factory=LongVideoDatabaseConfig ) long_articles_db: LongArticlesDatabaseConfig = Field( default_factory=LongArticlesDatabaseConfig ) piaoquan_crawler_db: PiaoquanCrawlerDatabaseConfig = Field( default_factory=PiaoquanCrawlerDatabaseConfig ) growth_db: GrowthDatabaseConfig = Field(default_factory=GrowthDatabaseConfig) # ============ 外部服务配置 ============ deepseek: DeepSeekConfig = Field(default_factory=DeepSeekConfig) aliyun_log: AliyunLogConfig = Field(default_factory=AliyunLogConfig) aliyun_oss: AliyunOssConfig = Field(default_factory=AliyunOssConfig) elasticsearch: ElasticsearchConfig = Field(default_factory=ElasticsearchConfig) apollo: ApolloConfig = Field(default_factory=ApolloConfig) # ============ 业务配置 ============ cold_start: ColdStartConfig = Field(default_factory=ColdStartConfig) category: CategoryConfig = Field(default_factory=CategoryConfig) task_chinese_name: TaskChineseNameConfig = Field( default_factory=TaskChineseNameConfig ) read_rate_limit: ReadRateLimited = Field(default_factory=ReadRateLimited) model_config = SettingsConfigDict( env_file=".env", env_file_encoding="utf-8", case_sensitive=False, extra="ignore" )