#!/bin/bash
# ZJPB v2.2 Git Patch 部署脚本
# 在生产服务器上执行

echo "================================"
echo "ZJPB v2.2 Git Patch 部署"
echo "================================"
echo ""

# 项目路径
PROJECT_DIR="/opt/1panel/apps/zjpb"

# 检查是否在正确目录
cd $PROJECT_DIR || { echo ">>> 项目目录不存在"; exit 1; }

echo "当前目录: $(pwd)"
echo ""

# 停止应用
echo "1. 停止应用..."
./manage.sh stop
sleep 2

# 检查Git状态
echo "2. 检查Git状态..."
git status

# 备份未提交的修改（如果有）
echo "3. 备份当前修改（如有）..."
if ! git diff-index --quiet HEAD --; then
    echo "   发现未提交的修改，正在保存..."
    git stash save "backup_before_v2.2_$(date +%Y%m%d_%H%M%S)"
fi

# 应用patch
echo "4. 应用v2.2.0补丁..."
if [ -f "v2.2.0.patch" ]; then
    git apply --check v2.2.0.patch
    if [ $? -eq 0 ]; then
        git apply v2.2.0.patch
        echo "   >>> 补丁应用成功"
    else
        echo "   >>> 补丁应用失败，请检查"
        exit 1
    fi
else
    echo "   >>> v2.2.0.patch 文件不存在"
    exit 1
fi

# 提交更改
echo "5. 提交更改到Git..."
git add .
git commit -m "release: v2.2.0 - 博查新闻搜索功能

通过patch部署，包含以下更新：
- 集成博查Web Search API
- 新闻自动获取和展示
- 智能新闻更新机制（每日首次访问触发）
- News模型扩展（source_name, source_icon）
- 网站详情页新闻模块
- 定期任务脚本和测试工具
"

# 激活虚拟环境
echo "6. 激活虚拟环境..."
source venv/bin/activate

# 安装依赖（检查是否有新依赖）
echo "7. 检查依赖..."
pip install -r requirements.txt -q

# 运行数据库迁移
echo "8. 运行数据库迁移..."
if [ -f "migrate_news_fields.py" ]; then
    python migrate_news_fields.py
    if [ $? -eq 0 ]; then
        echo "   >>> 数据库迁移成功"
    else
        echo "   >>> 数据库迁移失败"
        exit 1
    fi
else
    echo "   >>> migrate_news_fields.py 不存在，跳过"
fi

# 重启应用
echo "9. 重启应用..."
./manage.sh start
sleep 3

# 检查状态
echo "10. 检查应用状态..."
./manage.sh status

echo ""
echo "================================"
echo ">>> 部署完成！"
echo "================================"
echo ""
echo "Git提交历史："
git log --oneline -3
echo ""
echo "请访问网站验证更新是否成功"
echo ""
echo "验证清单："
echo "1. 访问任意网站详情页，检查是否显示相关新闻"
echo "2. 登录后台 /admin/newsadmin/ 查看新闻管理"
echo "3. 检查日志确认没有错误"
echo ""
