#!/bin/bash

set -euo pipefail

PROJECT_PORT="${PROJECT_PORT:-5000}"
PROXY_PORT="${PROXY_PORT:-3000}"
WEB_PORT="${WEB_PORT:-8080}"
COZE_WORKSPACE_PATH="${COZE_WORKSPACE_PATH:-/app/project}"
COZE_PROJECT_TYPE="${COZE_PROJECT_TYPE:-agent}"
PYTHONPATH="/app/project/src:${PYTHONPATH:-}"

# 未显式配置 COZE_API_URL 时：
# 1) 若配置了 OPENAI_API_KEY，默认转发到本地 project 服务
# 2) 若未配置 OPENAI_API_KEY，默认转发到线上 Coze 服务（避免空回复）
if [ -z "${COZE_API_URL:-}" ]; then
  if [ -n "${OPENAI_API_KEY:-}" ]; then
    COZE_API_URL="http://127.0.0.1:${PROJECT_PORT}/stream_run"
  else
    COZE_API_URL="https://mn9nmdp972.coze.site/stream_run"
  fi
fi

export PROXY_PORT
export COZE_API_URL
export COZE_WORKSPACE_PATH
export COZE_PROJECT_TYPE
export PYTHONPATH

echo "╔════════════════════════════════════════════════════════╗"
echo "║          Unified Docker Service Starting...            ║"
echo "╠════════════════════════════════════════════════════════╣"
echo "║  project service  : http://localhost:${PROJECT_PORT}                 ║"
echo "║  coze proxy       : http://localhost:${PROXY_PORT}                 ║"
echo "║  static web       : http://localhost:${WEB_PORT}                 ║"
echo "║  proxy upstream   : ${COZE_API_URL}"
echo "╚════════════════════════════════════════════════════════╝"
echo ""

python3 /app/project/src/main.py -m http -p "${PROJECT_PORT}" &
PROJECT_PID=$!

echo "✅ project 服务已启动 (PID: ${PROJECT_PID})"

node /app/coze-proxy.js &
PROXY_PID=$!

echo "✅ coze 代理已启动 (PID: ${PROXY_PID})"

python3 -m http.server "${WEB_PORT}" --directory /app &
WEB_PID=$!

echo "✅ 静态 Web 服务已启动 (PID: ${WEB_PID})"

echo ""
echo "按 Ctrl+C 停止所有服务"

cleanup() {
  kill "${PROJECT_PID}" "${PROXY_PID}" "${WEB_PID}" 2>/dev/null || true
}

trap cleanup INT TERM EXIT
wait -n
