#!/usr/bin/env bash
# فاز۱۶ — آپدیت یک‌دکمه‌ای: گارد اصلی در API است (PANEL_ALLOW_SELF_UPDATE=1 + تأیید رمز).
# این اسکریپت: pull → نصب وابستگی‌ها ← ری‌استارت. لاگ به data/self-update.log
set -u
cd "$(dirname "$0")/.." || exit 1
LOG="data/self-update.log"
mkdir -p data
{
  echo "===== $(date -Is) self-update START ====="
  if [ -d .git ]; then
    git pull --ff-only || echo "⚠️ git pull ناموفق بود (local changes؟) — ادامه"
  else
    echo "ℹ️ بدون مخزن git — فقط نصب و ری‌استارت"
  fi
  npm install --no-audit --no-fund
  echo "✅ وابستگی‌ها به‌روز شد"
  if [ -f .env ]; then set -a; . ./.env; set +a; fi
  if command -v systemctl >/dev/null 2>&1 && systemctl list-units --type=service | grep -q panelvino; then
    systemctl restart panelvino && echo "✅ سرویس systemd ری‌استارت شد"
  elif command -v pm2 >/dev/null 2>&1; then
    pm2 restart panelvino 2>/dev/null || pm2 restart all || echo "⚠️ pm2 restart ناموفق"
  else
    pkill -f "node src/server.js" && echo "✅ فرایند node متوقف شد — runner/parent دوباره بالا می‌آورد"
  fi
  echo "===== $(date -Is) self-update DONE ====="
} >> "$LOG" 2>&1
