# =============================================================================
# flows-backend (.env.example)
# =============================================================================
# Приложение читает переменные окружения напрямую через pydantic BaseSettings
# (src/flow/config.py). У верхнеуровневого класса Settings префикса нет — его
# поля задаются переменными с именем поля в ВЕРХНЕМ регистре (напр. BASE_HOST).
# Вложенные секции конфигурируются отдельными классами со своим env_prefix
# (PG_, DJANGO_, DOCUMENTATION_, RABBITMQ_, TRACING_ и т.д.).
#
# Приложение НЕ загружает .env автоматически (нет python-dotenv/env_file) —
# экспортируйте переменные в окружение самостоятельно, напр.:
#   set -a && . ./.env && set +a
# =============================================================================

# App / общие настройки (класс Settings, без префикса)
SERVICE_NAME=review-service
SERVICE_HOST=0.0.0.0
SERVICE_PORT=8000
# Префикс за реверс-прокси (в кластере: /flows)
PROXY_PATH_PREFIX=
API_PREFIX=/api/v1
API_INTERNAL_PREFIX=/internal/v1
BASE_HOST=https://lk.sarex.io
DEBUG=False
# Проверка подписи JWT (True в кластере; False удобно для локальной разработки)
JWT_AUTH_ENABLE=True
# Таймаут gunicorn (используется в entrypoint.sh, не кодом)
TIMEOUT=120

# Feature-флаги
ENABLE_MAILINGS=True
ENABLE_MAILGUN=True
ENABLE_CELERY=True
ENABLE_EVENTS=True
ENABLE_ANALYTICS=False
SYNC_RESOURCE_ID=False

# Logger (класс LoggerSettings, префикс LOG_)
LOG_LEVEL=INFO

# Database — основной PostgreSQL (класс PostgresSettings, префикс PG_)
PG_HOST=127.0.0.1
PG_PORT=6432
PG_LOGIN=flow
PG_PASSWORD=password
PG_DB=flows_db

# Documentation PG — БД сервиса документаций (класс DocumentationDBSettings, префикс DOCUMENTATION_PG_)
DOCUMENTATION_PG_HOST=127.0.0.1
DOCUMENTATION_PG_PORT=6432
DOCUMENTATION_PG_USERNAME=flow
DOCUMENTATION_PG_PASSWORD=password
DOCUMENTATION_PG_DATABASE=flows_db

# RabbitMQ (класс RabbitSettings, префикс RABBITMQ_)
RABBITMQ_HOST=localhost
RABBITMQ_PORT=5672
RABBITMQ_USERNAME=flow
RABBITMQ_PASSWORD=flow
RABBITMQ_VHOST=flows

# Celery (класс CelerySettings, префикс CELERY_; брокер берётся из RABBITMQ_*)
CELERY_QUEUE=flow

# Sarex backend (Django) (класс DjangoSettings, префикс DJANGO_)
DJANGO_USE=True
DJANGO_HOST=http://localhost:8000/api
DJANGO_TIMEOUT=60
# base64(login:password) для Basic-auth
DJANGO_TOKEN=

# Documentation service (класс DocumentationSettings, префикс DOCUMENTATION_)
DOCUMENTATION_USE=True
DOCUMENTATION_HOST=https://api.sarex.io/documentations/api/v1
DOCUMENTATION_EXTERNAL_HOST=https://api.sarex.io/documentations/api/v1
DOCUMENTATION_TIMEOUT=60

# EAV service (класс EAVSettings, префикс EAV_)
EAV_HOST=http://eav-service.eav-prod
EAV_TIMEOUT=60

# Planning management / MSP (класс PlanningManagementSettings, префикс PLANNING_)
PLANNING_USE=True
PLANNING_HOST=https://api.sarex.io/api/pm/msp
PLANNING_TIMEOUT=60

# Checklists service (класс CheckListsSettings, префикс CHECKLIST_)
CHECKLIST_USE=True
CHECKLIST_HOST=https://stage-api.sarex.io/checklists
CHECKLIST_TIMEOUT=60

# Workflows service (класс WorkflowsSettings, префикс WORKFLOWS_)
WORKFLOWS_USE=True
WORKFLOWS_HOST=https://lk.sarex.io/workflows/api/v1
WORKFLOWS_TIMEOUT=60

# Gateway / Resources (поля класса Settings, используются при SYNC_RESOURCE_ID=1)
GATEWAY_URL=https://stage-api.sarex.io/gateway
RESOURCE_URL=https://stage-api.sarex.io/resources

# Event bus (класс EventBusSettings, префикс EVENTS_)
EVENTS_HOST=ws://localhost:8000/ws
EVENTS_CONNECTION_TIMEOUT=5
EVENTS_COUNT_RETRIES=100

# Admin panel (класс AdminPanelSettings, префикс ADMIN_PANEL_)
ADMIN_PANEL_SECRET_KEY=hex
ADMIN_PANEL_TOKEN_MAX_AGE=86400

# Auth (RSA public key для проверки JWT; в кластере монтируется как JWT_PUBLIC_KEY)
JWT_PUBLIC_KEY=

# Sentry (класс SentrySettings, префикс SENTRY_)
SENTRY_DSN=
SENTRY_ENVIRONMENT=production
SENTRY_TRACES_SAMPLE_RATE=1.0
SENTRY_SEND_DEFAULT_PII=True

# Почта: SMTP (поля класса Settings; альтернатива Mailgun)
SMTP_HOST=
SMTP_PORT=
FROM_EMAIL=

# OpenTelemetry / трейсинг (класс TraceSettings, префикс TRACING_)
TRACING_USE=False
TRACING_HOST=localhost:4317
TRACING_INSECURE=False
TRACING_SERVICE_NAME=flows
TRACING_ENVIRONMENT=prod
TRACING_MODULE=flows
TRACING_TEAM=team_proc
TRACING_COMPONENT=backend

# Прочее (не читается приложением, задаётся в инфраструктуре)
# ENABLE_METRICS=0

# =============================================================================
# Переменные ТОЛЬКО для celery-воркера и scheduler
# (src/worker/notifications_config.py, src/worker/sync_config.py)
# =============================================================================

# Flows DB (класс FlowsDatabase, префикс FLOWS_DB_)
FLOWS_DB_HOST=127.0.0.1
FLOWS_DB_PORT=6432
FLOWS_DB_DB=flows_db
FLOWS_DB_USERNAME=flow
FLOWS_DB_PASSWORD=password

# Issues DB (класс IssuesDatabase, префикс ISSUES_DB_)
ISSUES_DB_HOST=127.0.0.1
ISSUES_DB_PORT=6432
ISSUES_DB_DB=issues_db
ISSUES_DB_USERNAME=issues
ISSUES_DB_PASSWORD=password

# RFI DB (класс RFIDatabase, префикс RFI_DB_)
RFI_DB_HOST=127.0.0.1
RFI_DB_PORT=6432
RFI_DB_DB=rfi_db
RFI_DB_USERNAME=rfi
RFI_DB_PASSWORD=password

# Django-клиент воркера (класс DjangoClient, префикс DJANGO_)
DJANGO_BASE_HOST=https://lk.sarex.io
# DJANGO_HOST — см. выше
# DJANGO_AUTH — base64(login:password); в кластере берётся из секрета django
DJANGO_AUTH=

# Resources-клиент воркера (класс ResourcesClient, префикс RESOURCES_)
RESOURCES_HOST=http://iams.iam.svc.cluster.local:8080

# Flows-клиент воркера (класс FlowsClient, префикс FLOWS_)
FLOWS_HOST=https://api.sarex.io/flows

# Настройки рассылок воркера (класс NotificationGlobalSettings, префикс NOTIFICATION_SETTINGS_)
NOTIFICATION_SETTINGS_ENABLE_MAILINGS=True
NOTIFICATION_SETTINGS_USE_MAILGUN=True

# Mailgun (класс MailgunClient, префикс MAILGUN_)
MAILGUN_HOST=https://api.mailgun.net/v3/mg.sarex.io
MAILGUN_API_KEY=

# Отправка уведомлений через Workflows (класс WorkflowsNotificationsSettings, префикс WORKFLOWS_NOTIFICATIONS_)
WORKFLOWS_NOTIFICATIONS_REGISTRY=cr.yandex/crp3ccidau046kdj8g9q
WORKFLOWS_NOTIFICATIONS_SMTP_HOST=127.0.0.1
WORKFLOWS_NOTIFICATIONS_SMTP_PORT=42069
WORKFLOWS_NOTIFICATIONS_FROM_EMAIL=hello@sarex.io
