#!/bin/bash
# test-comments.sh — полный end-to-end цикл проверки комментариев.
# Запускать НА СЕРВЕРЕ: bash /var/www/opt.rodnoy.site/admin/scripts/test-comments.sh [PAGE]
#
# Что делает:
#   1. POST   /api/comments                    -> создать
#   2. GET    /api/comments/all?page=PAGE       -> проверить
#   3. PUT    /api/comments/:id/status          -> сменить статус
#   4. PUT    /api/comments/:id/reply           -> добавить aiReply  ⚠️ поле "aiReply", не "reply"
#   5. DELETE /api/comments/:id                 -> удалить
#   6. GET    (финальный)                       -> подтвердить удаление
#
# Аргументы:
#   $1 — страница (по умолчанию "opt-plan")
set -u

BASE="http://127.0.0.1:3040"
PAGE="${1:-opt-plan}"
SECTION="E2E_TEST"
AUTHOR="e2e-bot"
BODY="[E2E TEST] $(date -u +%Y-%m-%dT%H:%M:%SZ) — please ignore"

echo "=== Endpoint: $BASE  page: $PAGE  section: $SECTION ==="
echo

# 1) POST
echo "=== 1) POST /api/comments ==="
RESP=$(curl -s -w "\n__HTTP__%{http_code}" -X POST "$BASE/api/comments" \
  -H "Content-Type: application/json" \
  -d "{\"page\":\"$PAGE\",\"section\":\"$SECTION\",\"author\":\"$AUTHOR\",\"body\":\"$BODY\"}")
echo "$RESP"
HTTP=$(echo "$RESP" | tail -1 | sed 's/__HTTP__//')
BODY_JSON=$(echo "$RESP" | head -n -1)
CID=$(echo "$BODY_JSON" | python3 -c 'import sys,json; print(json.load(sys.stdin).get("id",""))' 2>/dev/null || true)
echo "HTTP=$HTTP  id=$CID"
if [ -z "$CID" ]; then echo "[FAIL] no id returned"; exit 1; fi

# 2) GET
echo
echo "=== 2) GET /api/comments/all?page=$PAGE ==="
curl -s -w "\nHTTP %{http_code}\n" "$BASE/api/comments/all?page=$PAGE"

# 3) PUT status
echo
echo "=== 3) PUT /api/comments/$CID/status -> read ==="
curl -s -w "\nHTTP %{http_code}\n" -X PUT "$BASE/api/comments/$CID/status" \
  -H "Content-Type: application/json" \
  -d '{"status":"read"}'

# 4) PUT reply (ВАЖНО: поле "aiReply", не "reply")
echo
echo "=== 4) PUT /api/comments/$CID/reply (aiReply) ==="
curl -s -w "\nHTTP %{http_code}\n" -X PUT "$BASE/api/comments/$CID/reply" \
  -H "Content-Type: application/json" \
  -d '{"aiReply":"[AI test reply] confirmed, marked as addressed"}'

# 5) GET финальный
echo
echo "=== 5) GET final state ==="
curl -s -w "\nHTTP %{http_code}\n" "$BASE/api/comments/all?page=$PAGE"

# 6) DELETE
echo
echo "=== 6) DELETE /api/comments/$CID ==="
curl -s -w "\nHTTP %{http_code}\n" -X DELETE "$BASE/api/comments/$CID"

# 7) Подтверждение удаления
echo
echo "=== 7) GET (после удаления) ==="
curl -s -w "\nHTTP %{http_code}\n" "$BASE/api/comments/all?page=$PAGE"

echo
echo "=== DONE ==="
