# app/core/config.py """Summary description .... This module provides classes and functions for: - .... - .... - .... """ from typing import List, Optional from pydantic_settings import \ BaseSettings # This is the correct import for Pydantic v2 class Settings(BaseSettings): """Settings class inheriting from BaseSettings that allows values to be overridden by environment variables.""" # Project information project_name: str = "Ecommerce Backend API with Marketplace Support" # Documentation documentation_url: str = "http://localhost:8001" # Development default # Clean description without HTML description: str = """ Marketplace product import and management system with multi-vendor support. **Features:** - JWT Authentication with role-based access - Multi-marketplace product import (CSV processing) - Inventory management across multiple locations - Vendor management with individual configurations **Documentation:** Visit /documentation for complete guides **API Testing:** Use /docs for interactive API exploration """ version: str = "2.2.0" # Database database_url: str = "sqlite:///./ecommerce.db" # JWT jwt_secret_key: str = "change-this-in-production" jwt_expire_hours: int = 24 jwt_expire_minutes: int = 30 # Middleware allowed_hosts: List[str] = ["*"] # Configure for production # API api_host: str = "0.0.0.0" api_port: int = 8000 debug: bool = False # Rate Limiting rate_limit_enabled: bool = True rate_limit_requests: int = 100 rate_limit_window: int = 3600 # Logging log_level: str = "INFO" log_file: Optional[str] = None model_config = {"env_file": ".env"} # Updated syntax for Pydantic v2 settings = Settings()