#!/bin/bash

# AI Chat Docker 部署脚本
set -e

echo "🚀 开始部署 AI Chat 应用..."

# 检查Docker是否安装
if ! command -v docker &> /dev/null; then
    echo "❌ Docker 未安装，请先安装 Docker"
    exit 1
fi

# 检查Docker Compose是否安装
if ! command -v docker-compose &> /dev/null; then
    echo "❌ Docker Compose 未安装，请先安装 Docker Compose"
    exit 1
fi

# 检查dist目录是否存在
if [ ! -d "dist" ]; then
    echo "❌ dist 目录不存在，请先构建项目"
    echo "运行: npm run build"
    exit 1
fi

# 创建日志目录
mkdir -p logs

# 选择部署模式
echo "请选择部署模式："
echo "1) 简单模式 (端口 3000)"
echo "2) 完整模式 (端口 3000)"
echo "3) 带反向代理 (端口 80)"

read -p "请输入选择 (1-3): " choice

case $choice in
    1)
        echo "📦 使用简单模式部署..."
        docker-compose -f docker-compose.simple.yml down 2>/dev/null || true
        docker-compose -f docker-compose.simple.yml up -d --build
        echo "✅ 部署完成！访问地址: http://localhost:3000"
        ;;
    2)
        echo "📦 使用完整模式部署..."
        docker-compose down 2>/dev/null || true
        docker-compose up -d --build
        echo "✅ 部署完成！访问地址: http://localhost:3000"
        ;;
    3)
        echo "📦 使用反向代理模式部署..."
        docker-compose --profile proxy down 2>/dev/null || true
        docker-compose --profile proxy up -d --build
        echo "✅ 部署完成！访问地址: http://localhost"
        ;;
    *)
        echo "❌ 无效选择"
        exit 1
        ;;
esac

# 等待服务启动
echo "⏳ 等待服务启动..."
sleep 5

# 检查服务状态
if [ "$choice" = "1" ]; then
    docker-compose -f docker-compose.simple.yml ps
else
    docker-compose ps
fi

echo ""
echo "🎉 部署完成！"
echo ""
echo "📋 常用命令："
echo "  查看日志: docker-compose logs -f"
echo "  停止服务: docker-compose down"
echo "  重启服务: docker-compose restart"
echo ""
echo "🔍 健康检查:"
if curl -s http://localhost:3000 > /dev/null 2>&1 || curl -s http://localhost > /dev/null 2>&1; then
    echo "✅ 服务运行正常"
else
    echo "⚠️  服务可能还在启动中，请稍等片刻"
fi
