#!/usr/bin/env bash
# Automated backup for local SeedVault site
# Backs up DB, wp-config.php, and plugin directory to ~/seedvault-backup-TIMESTAMP/
# Keeps last 5 backups to avoid disk bloat

set -euo pipefail

TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/home/vincent/seedvault-backup-${TIMESTAMP}"
WP_DIR="/var/www/seedvault-local"

mkdir -p "${BACKUP_DIR}"

# 1. Database dump
mysqldump -u seedvault -p'seedvault_local_pass_2026' seedvault_local 2>/dev/null \
  | gzip > "${BACKUP_DIR}/db.sql.gz"

# 2. Config
cp "${WP_DIR}/wp-config.php" "${BACKUP_DIR}/"

# 3. Plugins (active only — skip large uploads)
rsync -a --filter='+- */' \
  --filter='+ */woocommerce/' \
  --filter='+ */litespeed-cache/' \
  --filter='+ */mailpoet/' \
  --filter='+ */wordpress-seo/' \
  --filter='+ */seedvault-trust-badges/' \
  --filter='- *' \
  "${WP_DIR}/wp-content/plugins/" "${BACKUP_DIR}/plugins/" 2>/dev/null || true

# 4. Cleanup: keep only last 5 backups
cd /home/vincent/
ls -dt seedvault-backup-* 2>/dev/null | tail -n +6 | xargs -r rm -rf

# 5. Report
DB_SIZE=$(du -h "${BACKUP_DIR}/db.sql.gz" | cut -f1)
TOTAL=$(du -sh "${BACKUP_DIR}" | cut -f1)
echo "Backup complete: ${BACKUP_DIR} (${TOTAL}) — DB: ${DB_SIZE}"