"""应用配置:从 .env / 环境变量加载。""" from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): """所有可配置项;不允许在源码中硬编码凭据。""" model_config = SettingsConfigDict( env_file=".env", env_file_encoding="utf-8", case_sensitive=False, extra="ignore", ) # Zendesk 凭据 zendesk_subdomain: str zendesk_email: str zendesk_api_token: str # 业务默认值 default_locale: str = "en-us" # 缓存刷新时间(本地时区,24 小时制) cache_refresh_hour: int = 0 cache_refresh_minute: int = 0 # HTTP http_timeout: int = 30 @property def zendesk_base_url(self) -> str: return f"https://{self.zendesk_subdomain}.zendesk.com/api/v2/help_center" @property def zendesk_auth(self) -> tuple[str, str]: # Zendesk API Token 鉴权格式:("{email}/token", api_token) return (f"{self.zendesk_email}/token", self.zendesk_api_token) settings = Settings()