#!/bin/bash
# 🛡️ SENTINEL INFRA - TARGETED BACKUP SYSTEM v2.3

# --- ⚙️ BEÁLLÍTÁSOK (A te környezeti változóid alapján) ---
DB_CONTAINER_NAME="3aa4b73d81e8_shared-postgres" 
DB_USER="kincses"  # <--- Beállítva a te POSTGRES_USER értékedre

PROJECT_ROOT="/opt/docker/dev/service_finder"
NAS_ROOT="/mnt/nas/app_data/backups"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
DOM=$(date +%d) 
DOW=$(date +%u) 

mkdir -p $NAS_ROOT/daily $NAS_ROOT/weekly $NAS_ROOT/monthly

echo "--- 📦 Célzott mentés indítása: $TIMESTAMP ---"

# 1. ADATBÁZIS MENTÉS (Streaming - kincses felhasználóval)
DB_BACKUP="db_dump_$TIMESTAMP.sql.gz"
echo "🐘 Adatbázis dump készítése ($DB_USER felhasználóval)..."
docker exec $DB_CONTAINER_NAME pg_dumpall -U $DB_USER | gzip > /tmp/$DB_BACKUP

# Ellenőrzés: ha 20 bájt, akkor még mindig hiba van
SIZE=$(stat -c%s "/tmp/$DB_BACKUP")
if [ $SIZE -lt 100 ]; then
    echo "❌ HIBA: A mentés sikertelen (méret: $SIZE bytes). Ellenőrizd a logokat!"
else
    echo "✅ DB mentés sikeres ($SIZE bytes)."
fi

# 2. KIJELÖLT MAPPÁK MENTÉSE
FILE_BACKUP="project_files_$TIMESTAMP.tar.gz"
echo "📁 Fájlok tömörítése..."
tar -czf /tmp/$FILE_BACKUP -C $PROJECT_ROOT \
    backend docs frontend logs docker-compose.yml .env 2>/dev/null

# 3. MÁSOLÁS A NAS-RA (Hibakezeléssel)
echo "🚚 Másolás a NAS-ra..."
for f in $DB_BACKUP $FILE_BACKUP; do
    if [ -f "/tmp/$f" ]; then
        cp "/tmp/$f" "$NAS_ROOT/daily/$f" && rm "/tmp/$f"
        
        # GFS Rotáció
        if [ "$DOM" == "01" ]; then cp "$NAS_ROOT/daily/$f" "$NAS_ROOT/monthly/"; fi
        if [ "$DOW" == "7" ]; then cp "$NAS_ROOT/daily/$f" "$NAS_ROOT/weekly/"; fi
    fi
done

# 4. TAKARÍTÁS (Régi szemetek törlése)
find $NAS_ROOT/daily -type f -mtime +7 -delete 2>/dev/null

echo "✅ Mentési folyamat sikeresen lezárva."