"""Application configuration.""" import os from functools import lru_cache from pydantic_settings import BaseSettings class Settings(BaseSettings): """Application settings.""" # MongoDB settings MONGO_URI: str = os.getenv("MONGO_URI", "mongodb://localhost:27017") DB_NAME: str = os.getenv("DB_NAME", "tts_api") # Storage paths STORAGE_PATH: str = os.getenv("STORAGE_PATH", "/app/storage") AUDIO_DIR: str = os.path.join(STORAGE_PATH, "audio") TEXT_DIR: str = os.path.join(STORAGE_PATH, "text") TEMP_DIR: str = os.path.join(STORAGE_PATH, "temp") # Ensure directories exist def __init__(self, **kwargs): super().__init__(**kwargs) os.makedirs(self.AUDIO_DIR, exist_ok=True) os.makedirs(self.TEXT_DIR, exist_ok=True) os.makedirs(self.TEMP_DIR, exist_ok=True) class Config: """Pydantic config.""" env_file = ".env" @lru_cache() def get_settings() -> Settings: """Get cached settings.""" return Settings() # Create settings instance settings = get_settings() # Export directory paths AUDIO_DIR = settings.AUDIO_DIR TEXT_DIR = settings.TEXT_DIR TEMP_DIR = settings.TEMP_DIR