#!/bin/bash
# 99-verify.sh — приёмочная проверка после разворачивания.
set -uo pipefail
cd "$(dirname "$0")"; source ./env.sh

log "Сервисы"
for s in mariadb "$PHP_FPM_SVC" httpd nginx firewalld; do
  systemctl is-active --quiet "$s" && ok "$s active" || warn "$s НЕ active"
done

log "Слушающие порты (ожидаем 80,443 nginx | 8888 httpd | 9082 php-fpm | 3306 mariadb)"
ss -ltnp 2>/dev/null | grep -E ":(80|443|8888|8887|9082|3306)\b" || warn "не вижу части портов"

log "Версии"
grep -h SM_VERSION "$WEBROOT/bitrix/modules/main/classes/general/version.php" 2>/dev/null | head -1
$PHP_BIN -v | head -1
mariadb --version 2>/dev/null || true

log "SSL — wildcard?"
CERT="/etc/letsencrypt/live/$DOMAIN_PUNY/cert.pem"
if [ -f "$CERT" ]; then
  if openssl x509 -in "$CERT" -noout -text 2>/dev/null | grep -q "DNS:\*\.$DOMAIN_PUNY"; then
    ok "wildcard *.$DOMAIN_PUNY в сертификате"
  else
    warn "wildcard SAN не найден — возможно активен старый SAN-cert (перевыпусти, см. 35-ssl.sh)"
  fi
  grep -q "authenticator = dns-cloudflare" "/etc/letsencrypt/renewal/$DOMAIN_PUNY.conf" 2>/dev/null \
    && ok "renew через Cloudflare DNS-01" || warn "renew не через dns-cloudflare — проверь renewal.conf"
else
  warn "нет $CERT"
fi

log "HTTP/HTTPS ответ сайта"
curl -skI "https://$DOMAIN_PUNY/" | grep -iE "^HTTP/|x-powered-by|server:" || warn "сайт не ответил по https"
echo "  (ожидаем HTTP 200 и X-Powered-By: PHP/8.2.x)"

log "Smoke по страницам (если есть штатный health-check сайта)"
HC="$WEBROOT/patch/scripts/health-check.sh"
if [ -f "$HC" ]; then HOST="https://$DOMAIN_PUNY" bash "$HC"; else
  for p in / /catalog/ /contacts/ /about/ /jobs/; do
    code=$(curl -s -o /dev/null -w "%{http_code}" -k -L --max-time 30 "https://$DOMAIN_PUNY$p")
    echo "  $code  $p"
  done
fi

log "БД (если импортирована)"
TBLS=$(mariadb -N -e "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='$DB_NAME';" 2>/dev/null || echo "?")
echo "  таблиц в $DB_NAME: $TBLS"

echo
ok "Проверка завершена. Критерии приёмки — в CHECKLIST.md"
