#!/bin/bash

# Content Service 통합 테스트 스크립트
# 작성일: 2025-10-30
# 테스트 대상: content-service (포트 8084)

BASE_URL="http://localhost:8084/api/v1/content"
COLOR_GREEN='\033[0;32m'
COLOR_RED='\033[0;31m'
COLOR_YELLOW='\033[1;33m'
COLOR_NC='\033[0m' # No Color

echo "=========================================="
echo "Content Service 통합 테스트 시작"
echo "=========================================="
echo ""

# 테스트 데이터
EVENT_ID="EVT-str_dev_test_001-20251029220003-610158ce"
TEST_IMAGE_ID=1

# 1. Health Check
echo -e "${COLOR_YELLOW}[1/7] Health Check${COLOR_NC}"
curl -s http://localhost:8084/actuator/health | jq . || echo -e "${COLOR_RED}❌ Health check 실패${COLOR_NC}"
echo ""

# 2. 이미지 생성 요청 (HTTP 통신 테스트)
echo -e "${COLOR_YELLOW}[2/7] 이미지 생성 요청 (HTTP 통신)${COLOR_NC}"
RESPONSE=$(curl -s -X POST "$BASE_URL/images/generate" \
  -H "Content-Type: application/json" \
  -d @test-image-generation.json)

echo "$RESPONSE" | jq .
JOB_ID=$(echo "$RESPONSE" | jq -r '.jobId')
echo -e "${COLOR_GREEN}✅ Job ID: $JOB_ID${COLOR_NC}"
echo ""

# 3. Job 상태 조회 (Job 관리 테스트)
echo -e "${COLOR_YELLOW}[3/7] Job 상태 조회 (Job 관리)${COLOR_NC}"
if [ ! -z "$JOB_ID" ] && [ "$JOB_ID" != "null" ]; then
  curl -s "$BASE_URL/images/jobs/$JOB_ID" | jq .
  echo -e "${COLOR_GREEN}✅ Job 상태 조회 성공${COLOR_NC}"
else
  echo -e "${COLOR_RED}❌ JOB_ID가 없어 테스트 건너뜀${COLOR_NC}"
fi
echo ""

# 4. EventId 기반 콘텐츠 조회
echo -e "${COLOR_YELLOW}[4/7] EventId 기반 콘텐츠 조회${COLOR_NC}"
curl -s "$BASE_URL/events/$EVENT_ID" | jq .
echo -e "${COLOR_GREEN}✅ 콘텐츠 조회 성공${COLOR_NC}"
echo ""

# 5. 이미지 목록 조회
echo -e "${COLOR_YELLOW}[5/7] 이미지 목록 조회${COLOR_NC}"
curl -s "$BASE_URL/events/$EVENT_ID/images" | jq .
echo -e "${COLOR_GREEN}✅ 이미지 목록 조회 성공${COLOR_NC}"
echo ""

# 6. 이미지 목록 조회 (필터링: style)
echo -e "${COLOR_YELLOW}[6/7] 이미지 필터링 (style=SIMPLE)${COLOR_NC}"
curl -s "$BASE_URL/events/$EVENT_ID/images?style=SIMPLE" | jq .
echo ""

# 7. 이미지 재생성 요청
echo -e "${COLOR_YELLOW}[7/7] 이미지 재생성 요청${COLOR_NC}"
REGEN_RESPONSE=$(curl -s -X POST "$BASE_URL/images/$TEST_IMAGE_ID/regenerate" \
  -H "Content-Type: application/json" \
  -d '{"newPrompt": "Updated image with modern Korean BBQ theme"}')

echo "$REGEN_RESPONSE" | jq .
REGEN_JOB_ID=$(echo "$REGEN_RESPONSE" | jq -r '.jobId')
if [ ! -z "$REGEN_JOB_ID" ] && [ "$REGEN_JOB_ID" != "null" ]; then
  echo -e "${COLOR_GREEN}✅ 재생성 Job ID: $REGEN_JOB_ID${COLOR_NC}"
else
  echo -e "${COLOR_YELLOW}⚠️ 이미지 ID가 존재하지 않을 수 있음${COLOR_NC}"
fi
echo ""

echo "=========================================="
echo "테스트 완료"
echo "=========================================="
