#!/bin/bash
# RAG 서비스 - API 서버와 Event Hub Consumer 동시 실행 스크립트

set -e  # 에러 발생 시 스크립트 종료

echo "=========================================="
echo "RAG 서비스 시작"
echo "=========================================="

# 로그 디렉토리 생성
mkdir -p logs

# Event Hub Consumer를 백그라운드로 실행
echo "[1/2] Event Hub Consumer 시작..."
python start_consumer.py > logs/consumer.log 2>&1 &
CONSUMER_PID=$!
echo "Consumer PID: $CONSUMER_PID"

# API 서버 시작 (포그라운드)
echo "[2/2] REST API 서버 시작..."
python -m uvicorn src.api.main:app --host 0.0.0.0 --port 8000 &
API_PID=$!
echo "API Server PID: $API_PID"

# PID 파일 저장
echo $CONSUMER_PID > logs/consumer.pid
echo $API_PID > logs/api.pid

echo "=========================================="
echo "RAG 서비스 시작 완료"
echo "  - API Server: http://0.0.0.0:8000"
echo "  - Consumer PID: $CONSUMER_PID"
echo "  - API PID: $API_PID"
echo "=========================================="

# 종료 시그널 처리 (graceful shutdown)
trap "echo 'Shutting down...'; kill $CONSUMER_PID $API_PID; exit 0" SIGTERM SIGINT

# 두 프로세스 모두 실행 중인지 모니터링
while kill -0 $CONSUMER_PID 2>/dev/null && kill -0 $API_PID 2>/dev/null; do
    sleep 5
done

# 하나라도 종료되면 모두 종료
echo "One of the processes stopped. Shutting down all..."
kill $CONSUMER_PID $API_PID 2>/dev/null || true
wait
