# from sqlalchemy.pool import QueuePool
from pathlib import Path

data_sources = {
    "default": {
        "type": "sqlalchemy",
        "sqlalchemy.url": "postgresql+psycopg2://postgres@/evadb",
        #"sqlalchemy.echo": True,
        "sqlalchemy.pool_size": 2,
        "sqlalchemy.pool_recycle": 3600,
        "sqlalchemy.poolclass": 'QueuePool',
        "sqlalchemy.pool_use_lifo": True,
        "sqlalchemy.max_overflow": 10,
        "sqlalchemy.pool_timeout": 1200,
    },
    "rdisk": {
        "class": "modules.rdisk.data_driver.rdisk:RDiskDataDriver",
        "uri": "file:///opt/eva-app/files/",
    }
}
cache_settings = {
    "default": {
        "unix_socket_path": "/var/run/redis/redis-server.sock",
        "type": "redis",
        "host": "localhost",
        "db": 7
    }
}

# Для запуска на icrm.carbonsoft.ru укажите в ./custom/config.py:
# from common.config_test_settings_example import test_settings

# Для запуска локально и необходимости что-то изменить в настройках
# скопируйте дикт из того файла к себе в ./custom/config.py и меняйте.
# ./custom/config.py сохраняется между обновлениями и находится в .gitignore
test_settings = None


# 2022-09-16 не нужно
# def _calc_cloud_name():
#     """
#     Обеспечиваем обновляемость и работу для виртуалок и в evacrm.ru и в evateam.ru
#     можно сменить CLOUD_NAME на evateam.ru когда _всех_ клиентов туда переведём. Да и вообще этот код удалить.
#     https://bcrm.carbonsoft.ru/desk/cards?obj=Task:DEV-1624972358
#     """
#     cloud_name_path = Path('/opt/crm/custom/cloud_name')
#     if not cloud_name_path.is_file():  # нет файла, "легаси"
#         return 'evacrm.ru'
#     cloud_name = cloud_name_path.read_text().strip()
#     # Защита от бага с пустым, но существующим файлом
#     return cloud_name if cloud_name else 'evacrm.ru'
# CLOUD_NAME = _calc_cloud_name()


def _calc_org_name():
    org_name = Path('/opt/eva-app/custom/org_name')
    return org_name.read_text().strip() if org_name.is_file() else None


ORG_NAME = _calc_org_name()

# Дефолты. В других облаках должны переопределяться в ./custom/config.py
PROPAGATE_EXCEPTIONS = True
UPLOAD_DIR = "/opt/eva-app/files/"
SECRET_KEY = 'top_mega_secret_key'
JSON_AS_ASCII = False

WHATSAPP_MESSENGER_URL = 'https://whatsapp.evacrm.ru'
WHATSAPP_PROXY_URL = 'http://localhost:8080'

SERVICES = ['eva-app', 'eva-celery']
PUB_ACCEPT_TYPES = dict(
    CmfPluginZadarma=['token'],
    CmfForm=['token'],
    CmfPluginTelphin=['token'],
    CmfAuthOpenIdPlugin=[]
)

FAKE_LOGIN = False  # Возможность входить под любым логином для отладки
# PHONE_REGIONS = ['RU']

SMTP_SERVER = "smtp-sender.local.evacrm.ru"
SMTP_PORT = 25

CONVERTER_URL = "http://converter.local.evacrm.ru:8080/converter/"

#  Описание полей конфигурации https://bcrm.carbonsoft.ru/project/Document/DOC-004285
ORG_DOMAIN = 'evateam.ru'
APP_NAME = f'{ORG_NAME}'
APP_FQDN = f'{APP_NAME}.{ORG_DOMAIN}'
AUTH_SERVER_URL = 'https://account.evateam.ru'
AUTH_SESSION_COOKIE_DOMAIN = f'.{ORG_DOMAIN}'
HOSTNAME_FQDN = APP_FQDN
# fixme выключить потом
DEBUG = True
# fixme временный хак для клиентов у которых проблемый с доступом к публичным документам. Удалить после патча клиентов.
PUBLIC_FILES_HACK = False
IMPORT_POCESSES = None # По умолчанию вычисляется максимально доступное
IMPORT_THREADS = 25
EVA_ACCOUNT_USE = True
# Текст политики использования перед входом в систему
POLICY_BANNER = ''
# Подпись подтверждения что ознакомлен с политикой
POLICY_CONFIRM_TEXT = ''

# spec-007971A
# Логин ИБ-администратора для просмотра аудита по ссылке /auth/show_audit
IB_ADMIN_LOGIN = ''
# Задержка проверки логина/пароля для защиты от перебора паролей (в секундах)
AUTH_FREEZE_AFTER_LOGIN_FAIL = 0
# Проверка captcha при неправильном вводе логина/пароля
AUTH_CHECK_CAPTCHA = False

MAX_SIZE_MEGABYTE = 2048  # максимальный размер загружаемого файла в МБ
TOKEN_TTL_DAYS = 90  # 0.001
PROLONG_DAYS = 7  # 0.0005 - дублирование с Signin, иначе циклическая зависимость
