#!/bin/bash
# HZHub AI 后端服务启动脚本
# 功能：后台启动 hzhub-ai Spring Boot 服务
# 注意：实际启动的是 hzhub-admin 子模块

PROJECT_NAME="hzhub-ai"
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
PID_FILE="$PROJECT_DIR/.pid"
LOG_FILE="$PROJECT_DIR/logs/backend.log"

# 创建日志目录
mkdir -p "$PROJECT_DIR/logs"

# JWT 密钥（必须 >= 32 字节，与 gateway/hzhub-system 保持一致）
export JWT_SECRET="${JWT_SECRET:-Om1fovSeKIA1oLIoHdDPMF-trbqbrPQoDS3H4u1xoRY}"

echo "========================================="
echo "启动 $PROJECT_NAME 后端服务"
echo "========================================="

# 检查是否已经在运行
if [ -f "$PID_FILE" ]; then
    PID=$(cat "$PID_FILE")
    if ps -p "$PID" > /dev/null 2>&1; then
        echo "⚠️  服务已在运行中 (PID: $PID)"
        echo "如需重启，请先执行 ./stop.sh"
        exit 1
    else
        echo "清理无效的PID文件"
        rm -f "$PID_FILE"
    fi
fi

# 启动服务
echo "🚀 启动 Spring Boot 服务..."
cd "$PROJECT_DIR/hzhub-admin"

# 使用nohup后台运行Maven Spring Boot
nohup mvn spring-boot:run -Dspring-boot.run.profiles=dev > "$LOG_FILE" 2>&1 &
PID=$!

# 等待更长时间检查进程是否成功启动（Spring Boot启动较慢）
echo "⏳ 等待服务启动中..."
sleep 5

if ps -p "$PID" > /dev/null 2>&1; then
    echo "$PID" > "$PID_FILE"
    echo "✅ 服务启动成功"
    echo "   PID: $PID"
    echo "   日志: $LOG_FILE"
    echo "   API: http://localhost:6039"
    echo ""
    echo "查看日志: tail -f $LOG_FILE"
    echo "查看状态: ./status.sh"
    echo ""
    echo "💡 提示: Spring Boot 完整启动需要30-60秒"
    echo "   请执行 ./logs.sh 或 tail -f $LOG_FILE 查看启动进度"
else
    echo "❌ 服务启动失败"
    echo "请查看日志: $LOG_FILE"
    exit 1
fi