#!/bin/bash

# ===== CONFIGURATION =====
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
CONFIG_FILE="$SCRIPT_DIR/../config/config.php"

# استخراج اطلاعات دیتابیس از فایل کانفیگ PHP
DB_NAME=$(grep "define('DB_NAME'" "$CONFIG_FILE" | cut -d"'" -f4)
DB_USER=$(grep "define('DB_USER'" "$CONFIG_FILE" | cut -d"'" -f4)
DB_PASS=$(grep "define('DB_PASSWORD'" "$CONFIG_FILE" | cut -d"'" -f4)

SOURCE_DIR="/var/www/mpour-app.ir/fundyar/"
BACKUP_DIR="/var/www/mpour-app.ir/fundyar/backups"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")

# ایجاد پوشه بک‌آپ در صورت عدم وجود
mkdir -p "$BACKUP_DIR"

# ===== CORE LOGIC: DATABASE BACKUP =====
DB_BACKUP_FILE="$BACKUP_DIR/db_backup_$TIMESTAMP.sql.gz"
echo "Starting Database Backup..."
mysqldump -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" | gzip > "$DB_BACKUP_FILE"

# ===== CORE LOGIC: FILES BACKUP =====
FILES_BACKUP_FILE="$BACKUP_DIR/files_backup_$TIMESTAMP.tar.gz"
echo "Starting Files Backup..."
# فشرده‌سازی فایل‌ها با استثنا کردن خود پوشه بک‌آپ‌ها برای جلوگیری از بک‌آپ تکراری
tar -czf "$FILES_BACKUP_FILE" -C "$SOURCE_DIR" --exclude="backups" .

# ===== CLEANUP: REMOVE OLD BACKUPS (Older than 48 hours) =====
echo "Cleaning up old backups (older than 48 hours)..."
find "$BACKUP_DIR" -type f -name "*.gz" -mmin +2880 -delete

echo "Backup process completed successfully at $(date)"
