#!/bin/bash

# PANJIT 文件翻譯系統 - 一鍵部署腳本
# 版本: 2.0.0
# 日期: 2025-09-04

set -e

echo "🚀 PANJIT 文件翻譯系統部署腳本"
echo "================================="

# 檢查 Docker 環境
echo "📋 檢查 Docker 環境..."
if ! command -v docker &> /dev/null; then
    echo "❌ Docker 未安裝，請先安裝 Docker"
    exit 1
fi

if ! command -v docker-compose &> /dev/null; then
    echo "❌ Docker Compose 未安裝，請先安裝 Docker Compose"
    exit 1
fi

echo "✅ Docker 環境檢查完成"

# 檢查端口
echo "📋 檢查端口 12010..."
if lsof -Pi :12010 -sTCP:LISTEN -t >/dev/null; then
    echo "⚠️  端口 12010 已被占用"
    echo "請停止占用端口的服務或修改配置中的端口號"
    echo "當前占用進程："
    lsof -Pi :12010 -sTCP:LISTEN
    read -p "是否繼續部署？(y/N): " -n 1 -r
    echo
    if [[ ! $REPLY =~ ^[Yy]$ ]]; then
        exit 1
    fi
else
    echo "✅ 端口 12010 可用"
fi

# 創建必要目錄
echo "📁 創建必要目錄..."
mkdir -p uploads cache logs
chmod 755 uploads cache logs
echo "✅ 目錄創建完成"

# 停止舊服務
echo "🛑 停止現有服務..."
docker-compose down 2>/dev/null || true

# 建置映像
echo "🏗️  建置 Docker 映像..."
docker-compose build

# 啟動服務
echo "🚀 啟動服務..."
docker-compose up -d

# 等待服務啟動
echo "⏳ 等待服務啟動..."
sleep 30

# 健康檢查
echo "🔍 檢查服務狀態..."
if curl -f http://localhost:12010/api/v1/health >/dev/null 2>&1; then
    echo "✅ 主應用服務正常"
else
    echo "❌ 主應用服務異常"
    echo "查看日誌："
    docker-compose logs app
    exit 1
fi

# 檢查 Celery Worker
echo "🔍 檢查 Celery Worker..."
if docker-compose exec -T celery-worker celery -A app.celery inspect ping >/dev/null 2>&1; then
    echo "✅ Celery Worker 正常"
else
    echo "⚠️  Celery Worker 可能異常，請檢查日誌"
fi

# 顯示服務狀態
echo ""
echo "📊 服務狀態："
docker-compose ps

echo ""
echo "🎉 部署完成！"
echo "================================="
echo "📱 系統訪問地址: http://localhost:12010"
echo "🔧 API 文檔: http://localhost:12010/api"
echo "❤️  健康檢查: http://localhost:12010/api/v1/health"
echo ""
echo "📋 管理命令："
echo "  查看日誌: docker-compose logs -f"
echo "  停止服務: docker-compose down"
echo "  重啟服務: docker-compose restart"
echo "  服務狀態: docker-compose ps"
echo ""
echo "📞 技術支援: it-support@panjit.com.tw"
echo "================================="