import os from pydantic_settings import BaseSettings from dotenv import load_dotenv # Загружаем переменные окружения из .env файла load_dotenv() class Settings(BaseSettings): # Основные настройки приложения APP_NAME: str = "Интернет-магазин API" APP_VERSION: str = "0.1.0" APP_DESCRIPTION: str = "API для интернет-магазина на FastAPI" # Настройки базы данных DATABASE_URL: str = os.getenv("DATABASE_URL", "postgresql://postgres:postgres@localhost:5434/shop_db") # Настройки безопасности SECRET_KEY: str = os.getenv("SECRET_KEY", "your-secret-key-for-jwt-please-change-in-production") ALGORITHM: str = "HS256" ACCESS_TOKEN_EXPIRE_MINUTES: int = 30*60*24 # Настройки CORS CORS_ORIGINS: list = [ "http://localhost", "http://localhost:3000", "http://localhost:8000", "http://localhost:8080", ] # Настройки для загрузки файлов UPLOAD_DIRECTORY: str = "uploads" MAX_UPLOAD_SIZE: int = 5 * 1024 * 1024 # 5 MB ALLOWED_UPLOAD_EXTENSIONS: list = ["jpg", "jpeg", "png", "gif", "webp"] # Настройки для платежных систем (пример) PAYMENT_GATEWAY_API_KEY: str = os.getenv("PAYMENT_GATEWAY_API_KEY", "") PAYMENT_GATEWAY_SECRET: str = os.getenv("PAYMENT_GATEWAY_SECRET", "") # Настройки для отправки email (пример) SMTP_SERVER: str = os.getenv("SMTP_SERVER", "") SMTP_PORT: int = int(os.getenv("SMTP_PORT", "587")) SMTP_USERNAME: str = os.getenv("SMTP_USERNAME", "") SMTP_PASSWORD: str = os.getenv("SMTP_PASSWORD", "") EMAIL_FROM: str = os.getenv("EMAIL_FROM", "noreply@example.com") class Config: env_file = ".env" env_file_encoding = "utf-8" # Создаем экземпляр настроек settings = Settings()