import os from typing import List from pydantic_settings import BaseSettings from dotenv import load_dotenv # Загрузка .env файла load_dotenv() class Settings(BaseSettings): """Настройки приложения""" # Основные настройки DEBUG: bool = os.getenv("DEBUG", "False").lower() == "true" HOST: str = os.getenv("HOST", "0.0.0.0") PORT: int = int(os.getenv("PORT", "8000")) LOG_LEVEL: str = os.getenv("LOG_LEVEL", "INFO") # CORS ALLOWED_ORIGINS: List[str] = [ "http://localhost:3000", "http://localhost:8080", "https://localhost:3000", "https://localhost:8080" ] # Redis REDIS_HOST: str = os.getenv("REDIS_HOST", "localhost") REDIS_PORT: int = int(os.getenv("REDIS_PORT", "6379")) REDIS_PASSWORD: str = os.getenv("REDIS_PASSWORD", "") REDIS_DB: int = int(os.getenv("REDIS_DB", "0")) # Core Service CORE_SERVICE_URL: str = os.getenv("CORE_SERVICE_URL", "http://localhost:8080") # Документы DOCUMENTS_CACHE_TTL: int = int(os.getenv("DOCUMENTS_CACHE_TTL", "86400")) # 24 часа MAX_DOCUMENT_SIZE: int = int(os.getenv("MAX_DOCUMENT_SIZE", "10485760")) # 10MB # Пути для файлов TEMPLATES_DIR: str = os.getenv("TEMPLATES_DIR", "app/templates") OUTPUT_DIR: str = os.getenv("OUTPUT_DIR", "app/output") # QR коды QR_CODE_SIZE: int = int(os.getenv("QR_CODE_SIZE", "10")) QR_CODE_BORDER: int = int(os.getenv("QR_CODE_BORDER", "2")) class Config: env_file = ".env" case_sensitive = False # Создание экземпляра настроек settings = Settings() # Создание директорий если не существуют os.makedirs(settings.TEMPLATES_DIR, exist_ok=True) os.makedirs(settings.OUTPUT_DIR, exist_ok=True)