#!/bin/bash

echo "=========================================="
echo "    启动 AI Chat 平台 (前端 + 后端) "
echo "=========================================="

# 设置清理函数，在收到 Ctrl+C 时关闭所有子进程
cleanup() {
    echo ""
    echo "正在关闭所有服务..."
    kill $(jobs -p) 2>/dev/null
    exit
}

# 清除旧进程
lsof -i :8000 -t | xargs -r kill -9; lsof -i :5173 -t | xargs -r kill -9;

# 捕获退出信号
trap cleanup SIGINT SIGTERM EXIT

# 启动后端
echo "[系统] 正在启动后端服务器..."
cd /home/mt/project/ai-chat-ui/server
if [ -d ".venv" ]; then
    source .venv/bin/activate
    # 使用 -u 参数强制不缓冲输出，实时显示日志
    python3 -u main.py &
else
    echo "[错误] 未找到虚拟环境 (.venv)。请先创建。"
fi

# 等待一小段时间确保后端启动
sleep 2

# 启动前端
echo "[系统] 正在启动前端服务器..."
cd /home/mt/project/ai-chat-ui
# 启动 vite 开发服务器
npm run dev &

echo "=========================================="
echo "    服务已启动，按 Ctrl+C 停止           "
echo "=========================================="

# 使用 wait 阻塞主进程，保持脚本运行，这样可以看到调试打印信息
wait
