#!/bin/bash
# ============================================================
# HalaVoice On-Premise — سكربت التحقق من الجاهزية
# يفحص كل مكوّن في السلسلة قبل أول مكالمة حقيقية.
# ============================================================
set -u
HOST="${1:-127.0.0.1}"
PASS=0; FAIL=0

check() {
  local name="$1"; shift
  if "$@" > /dev/null 2>&1; then
    echo "✅ $name"; PASS=$((PASS+1))
  else
    echo "❌ $name"; FAIL=$((FAIL+1))
  fi
}

echo "== فحص مكوّنات HalaVoice On-Premise على $HOST =="

# 1) جسر AudioSocket (منفذ TCP)
check "جسر AudioSocket (9092)" timeout 3 bash -c "echo > /dev/tcp/$HOST/9092"

# 2) STT — faster-whisper
check "خادم STT (9000)" curl -sf "http://$HOST:9000/v1/models" -o /dev/null

# 3) TTS
check "خادم TTS (8001)" curl -sf "http://$HOST:8001/v1/models" -o /dev/null

# 4) LLM — Ollama/LM Studio
check "خادم LLM (11434)" curl -sf "http://$HOST:11434/v1/models" -o /dev/null

# 5) Asterisk
check "Asterisk SIP (5060/udp)" bash -c "command -v nc >/dev/null && nc -zu $HOST 5060"

echo
echo "== النتيجة: $PASS ناجح، $FAIL فاشل =="
if [ "$FAIL" -gt 0 ]; then
  echo "راجع README.ar.md — قسم استكشاف الأخطاء"
  exit 1
fi
echo "كل المكوّنات جاهزة. جرّب مكالمة على 700 من هاتف SIP الداخلي."
