#!/bin/bash
# ─────────────────────────────────────────────────────────────────────────────
# backup-pull.sh — Rapatrie les backups PostgreSQL du VPS vers le PC local
#
# Usage : ./backup-pull.sh
# Cron WSL : 0 4 * * * /home/taaazzz/projects/iliacloud/scripts/backup-pull.sh
# ─────────────────────────────────────────────────────────────────────────────

set -euo pipefail

# ── Configuration ────────────────────────────────────────────────────────────
VPS_HOST="ubuntu@141.94.42.172"
REMOTE_DIR="/home/ubuntu/backups"
LOCAL_DIR="/home/taaazzz/projects/iliacloud/backup_application"
RETENTION_DAYS=14  # garder plus longtemps en local que sur le VPS

# ── Pull ─────────────────────────────────────────────────────────────────────

mkdir -p "$LOCAL_DIR"

echo "[$(date '+%Y-%m-%d %H:%M:%S')] Synchronisation des backups depuis le VPS..."

rsync -avz --include='iliacloud_*.sql.gz' --exclude='*' \
  "$VPS_HOST:$REMOTE_DIR/" "$LOCAL_DIR/"

echo "[$(date '+%Y-%m-%d %H:%M:%S')] Synchronisation terminee."

# ── Rotation locale ──────────────────────────────────────────────────────────

DELETED=$(find "$LOCAL_DIR" -name "iliacloud_*.sql.gz" -mtime +"$RETENTION_DAYS" -print -delete | wc -l)
if [ "$DELETED" -gt 0 ]; then
  echo "[$(date '+%Y-%m-%d %H:%M:%S')] Rotation locale : $DELETED ancien(s) backup(s) supprime(s)"
fi

echo "[$(date '+%Y-%m-%d %H:%M:%S')] Backups locaux :"
ls -lh "$LOCAL_DIR"/iliacloud_*.sql.gz 2>/dev/null || echo "  (aucun)"
