import os from dotenv import load_dotenv # Load appropriate .env file based on ENV_MODE env_mode = os.getenv("ENV_MODE", "production") env_file = ".env.testing" if env_mode == "testing" else ".env" load_dotenv(env_file) class Config: DISCORD_TOKEN: str = os.getenv("DISCORD_TOKEN", "") TEXT_CHANNEL_ID: int = int(os.getenv("TEXT_CHANNEL_ID", "0")) VOICES_DIR: str = os.getenv("VOICES_DIR", "./voices") DEFAULT_VOICE: str | None = os.getenv("DEFAULT_VOICE", None) @classmethod def validate(cls) -> list[str]: """Validate configuration and return list of errors.""" errors = [] if not cls.DISCORD_TOKEN: errors.append("DISCORD_TOKEN is not set") if cls.TEXT_CHANNEL_ID == 0: errors.append("TEXT_CHANNEL_ID is not set") if not os.path.exists(cls.VOICES_DIR): errors.append(f"Voices directory not found: {cls.VOICES_DIR}") return errors