#!/usr/bin/env bash
# Sunucuda ROOT ile çalıştırın.
# livekit.novazeka.com.tr için Apache userdata proxy yazar ve httpd yeniler.
#
# Önkoşul: cPanel’de subdomain + DNS A kaydı; mümkünse Cloudflare DNS only (UDP medya için).
#
# Ortam:
#   NOVA_LIVEKIT_APACHE_KIND=ssl  (varsayılan) → ssl/2_4/...  HTTPS / wss://
#   NOVA_LIVEKIT_APACHE_KIND=std  → std/2_4/...  HTTP / ws:// (SSL olmadan geçici geliştirme)

set -euo pipefail

CP_USER="${NOVA_CP_USER:-novazekacom}"
SUB="${NOVA_LIVEKIT_HOST:-livekit.novazeka.com.tr}"
KIND="${NOVA_LIVEKIT_APACHE_KIND:-ssl}"
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"

case "$KIND" in
  ssl)
    SRC="${ROOT_DIR}/deploy/apache_userdata_ssl_livekit_subdomain.conf.example"
    DST_DIR="/etc/apache2/conf.d/userdata/ssl/2_4/${CP_USER}/${SUB}"
    ;;
  std)
    SRC="${ROOT_DIR}/deploy/apache_userdata_std_livekit_subdomain.conf.example"
    DST_DIR="/etc/apache2/conf.d/userdata/std/2_4/${CP_USER}/${SUB}"
    ;;
  *)
    echo "NOVA_LIVEKIT_APACHE_KIND ssl veya std olmalı (şu an: $KIND)"
    exit 1
    ;;
esac

DST="${DST_DIR}/livekit-root.conf"

if [[ ! -f "$SRC" ]]; then
  echo "Bulunamadı: $SRC"
  exit 1
fi

mkdir -p "$DST_DIR"
cp -a "$SRC" "$DST"
chmod 644 "$DST"

/scripts/ensure_vhost_includes --all-users
/scripts/rebuildhttpdconf
systemctl restart httpd

echo "OK: $DST (kind=$KIND)"
if [[ "$KIND" == "ssl" ]]; then
  echo "Test (SSL hazırsa 401 normal):"
  curl -sS -D - -o /dev/null -m 12 --http1.1 \
    -H 'Connection: Upgrade' -H 'Upgrade: websocket' \
    -H 'Sec-WebSocket-Version: 13' -H 'Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==' \
    "https://${SUB}/rtc" 2>&1 | head -15 || true
else
  echo "Test HTTP (LiveKit ayakta ise 401 veya upgrade yanıtı):"
  curl -sS -D - -o /dev/null -m 12 --http1.1 \
    -H 'Connection: Upgrade' -H 'Upgrade: websocket' \
    -H 'Sec-WebSocket-Version: 13' -H 'Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==' \
    "http://${SUB}/rtc" 2>&1 | head -15 || true
fi
