""" Configuration module - loads environment variables and secrets. DO NOT commit actual secrets to version control. """ from pydantic_settings import BaseSettings from typing import Optional import os class Settings(BaseSettings): """Application settings loaded from environment variables.""" # App APP_NAME: str = "ChatApp" APP_VERSION: str = "1.0.0" DEBUG: bool = False SECRET_KEY: str = "change-me-in-production" # TODO: Set via env # Database DATABASE_URL: str = "postgresql+asyncpg://user:pass@localhost:5432/chatapp" # JWT JWT_SECRET: str = "jwt-secret-change-me" JWT_ALGORITHM: str = "HS256" JWT_EXPIRATION_MINUTES: int = 60 * 24 * 7 # 7 days # Redis (for async queue) REDIS_URL: str = "redis://localhost:6379/0" # GitHub (for storage backup) GITHUB_TOKEN: Optional[str] = None GITHUB_REPO: Optional[str] = None # e.g., "username/chat-storage" # HuggingFace (optional) HF_TOKEN: Optional[str] = None HF_SPACE_ID: Optional[str] = None # Compression settings COMPRESSION_ENABLED: bool = True MAX_BATCH_SIZE_MB: int = 10 BATCH_INTERVAL_MINUTES: int = 60 # Storage STORAGE_PATH: str = "./storage/data" class Config: env_file = ".env" case_sensitive = True settings = Settings()