#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
LogBoard+ - Конфигурация приложения
Автор: Сергей Антропов
Сайт: https://devops.org.ru
"""

import os
from fastapi.templating import Jinja2Templates

# Настройки приложения
APP_PORT = int(os.getenv("LOGBOARD_PORT", "9001"))
DEFAULT_TAIL = int(os.getenv("LOGBOARD_TAIL", "500"))
DEFAULT_PROJECT = os.getenv("COMPOSE_PROJECT_NAME", "")
DEFAULT_PROJECTS = os.getenv("LOGBOARD_PROJECTS", "")
SKIP_UNHEALTHY = os.getenv("LOGBOARD_SKIP_UNHEALTHY", "true").lower() == "true"
CONTAINER_LIST_TIMEOUT = int(os.getenv("LOGBOARD_CONTAINER_LIST_TIMEOUT", "10"))
CONTAINER_INFO_TIMEOUT = int(os.getenv("LOGBOARD_CONTAINER_INFO_TIMEOUT", "3"))
HEALTH_CHECK_TIMEOUT = int(os.getenv("LOGBOARD_HEALTH_CHECK_TIMEOUT", "2"))

# Настройки безопасности
SECRET_KEY = os.getenv("SECRET_KEY", "your-secret-key-here")
ENCRYPTION_KEY = os.getenv("ENCRYPTION_KEY", "your-encryption-key-here")
ALGORITHM = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES = int(os.getenv("SESSION_TIMEOUT", "3600")) // 60  # 1 час по умолчанию

# Настройки пользователей
ADMIN_USERNAME = os.getenv("LOGBOARD_USER", "admin")
ADMIN_PASSWORD = os.getenv("LOGBOARD_PASS", "admin")

# Настройки AJAX обновления
AJAX_UPDATE_INTERVAL = int(os.getenv("LOGBOARD_AJAX_UPDATE_INTERVAL", "2000"))

# Настройки режима отладки
DEBUG_MODE = os.getenv("DEBUG_MODE", "false").lower() == "true"

# Инициализация шаблонов
templates = Jinja2Templates(directory="/app/templates")

# Директории
SNAP_DIR = os.getenv("LOGBOARD_SNAPSHOT_DIR", "/app/snapshots")
STATIC_DIR = os.getenv("LOGBOARD_STATIC_DIR", "/app/static")
INDEX_HTML = os.getenv("LOGBOARD_INDEX_HTML", "/app/templates/index.html")

# Настройки веб-интерфейса
WEB_TITLE = os.getenv("WEB_TITLE", "LogBoard+")
WEB_DESCRIPTION = os.getenv("WEB_DESCRIPTION", "Веб-панель для просмотра логов микросервисов")
WEB_VERSION = os.getenv("WEB_VERSION", "1.0.0")

# Настройки производительности
MAX_CONNECTIONS = int(os.getenv("MAX_CONNECTIONS", "100"))
CONNECTION_TIMEOUT = int(os.getenv("CONNECTION_TIMEOUT", "30"))
READ_TIMEOUT = int(os.getenv("READ_TIMEOUT", "60"))

# Настройки аутентификации
AUTH_ENABLED = os.getenv("AUTH_ENABLED", "true").lower() == "true"
AUTH_METHOD = os.getenv("AUTH_METHOD", "jwt")

# Настройки уведомлений
NOTIFICATIONS_ENABLED = os.getenv("NOTIFICATIONS_ENABLED", "false").lower() == "true"
SMTP_HOST = os.getenv("SMTP_HOST", "")
SMTP_PORT = int(os.getenv("SMTP_PORT", "587"))
SMTP_USER = os.getenv("SMTP_USER", "")
SMTP_PASS = os.getenv("SMTP_PASS", "")
SMTP_FROM = os.getenv("SMTP_FROM", "")

# Настройки Docker
DOCKER_HOST = os.getenv("DOCKER_HOST", "unix:///var/run/docker.sock")
DOCKER_TLS_VERIFY = os.getenv("DOCKER_TLS_VERIFY", "")
DOCKER_CERT_PATH = os.getenv("DOCKER_CERT_PATH", "")
DOCKER_NETWORKS = os.getenv("DOCKER_NETWORKS", "iaas,infrastructure_iaas")

# Настройки логирования
LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO")
LOG_FORMAT = os.getenv("LOG_FORMAT", "json")

# Настройки API ключей для удаленных клиентов
LOGBOARD_API_KEYS = os.getenv("LOGBOARD_API_KEYS", "")
LOGBOARD_DEFAULT_API_KEY = os.getenv("LOGBOARD_DEFAULT_API_KEY", "dev-key-123")

# Временная зона
TZ_TS = os.getenv("TZ_TS", "Europe/Moscow")
