#!/bin/bash

# Скрипт для генерации .env файла из Vault
set -e

ENV_FILE="/opt/03-business/documenso/.env"

echo "🔐 Получение секретов из Vault..."

# Получаем SMTP секреты через прямой docker exec
SMTP_SECRETS=$(docker exec -i vault vault kv get -format=json secret/documenso/smtp 2>/dev/null)
SMTP_HOST=$(echo "$SMTP_SECRETS" | jq -r '.data.data.host')
SMTP_PORT=$(echo "$SMTP_SECRETS" | jq -r '.data.data.port')
SMTP_FROM_ADDRESS=$(echo "$SMTP_SECRETS" | jq -r '.data.data.from_address')
SMTP_FROM_NAME=$(echo "$SMTP_SECRETS" | jq -r '.data.data.from_name')

# Получаем Database секреты
DB_SECRETS=$(docker exec -i vault vault kv get -format=json secret/documenso/database 2>/dev/null)
DB_PASSWORD=$(echo "$DB_SECRETS" | jq -r '.data.data.password')

# Генерируем NEXTAUTH_SECRET
NEXTAUTH_SECRET=$(openssl rand -base64 32)

# Создаем .env файл
cat > "$ENV_FILE" << EOL
# Database
DB_PASSWORD=$DB_PASSWORD

# NextAuth
NEXTAUTH_SECRET=$NEXTAUTH_SECRET

# SMTP
SMTP_HOST=$SMTP_HOST
SMTP_PORT=$SMTP_PORT
SMTP_USERNAME=
SMTP_PASSWORD=
SMTP_FROM_NAME=$SMTP_FROM_NAME
SMTP_FROM_ADDRESS=$SMTP_FROM_ADDRESS

# OIDC (будет настроено позже в Authentik)
AUTHENTIK_OIDC_CLIENT_ID=
AUTHENTIK_OIDC_CLIENT_SECRET=
AUTHENTIK_OIDC_ISSUER=
EOL

echo "✅ .env файл создан: $ENV_FILE"
echo "📧 SMTP настроен: $SMTP_HOST:$SMTP_PORT"
