57 lines
1.9 KiB
Python
57 lines
1.9 KiB
Python
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)
|