#!/bin/bash
# EPOLaw Backup Script
# Creates timestamped backups of critical files and database

# Set backup directory with timestamp
BACKUP_DIR="/var/www/lawbot/backups/backup_$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"

echo "Starting backup to: $BACKUP_DIR"

# Backup Python files
echo "Backing up Python files..."
cp /var/www/lawbot/*.py "$BACKUP_DIR/" 2>/dev/null

# Backup templates
echo "Backing up templates..."
mkdir -p "$BACKUP_DIR/templates"
cp -r /var/www/lawbot/templates/* "$BACKUP_DIR/templates/" 2>/dev/null

# Backup config files
echo "Backing up config files..."
mkdir -p "$BACKUP_DIR/config"
cp -r /var/www/lawbot/config/* "$BACKUP_DIR/config/" 2>/dev/null

# Try to backup database (might fail if credentials change)
echo "Attempting database backup..."
mysqldump -u lawbot_user -p'AK$82Z5FOn38i&!XQ' lawbot > "$BACKUP_DIR/lawbot_database.sql" 2>/dev/null && \
    echo "Database backed up successfully" || \
    echo "Database backup failed - check credentials"

# Create backup summary
echo "Backup Summary:" > "$BACKUP_DIR/backup_info.txt"
echo "Date: $(date)" >> "$BACKUP_DIR/backup_info.txt"
echo "Files backed up:" >> "$BACKUP_DIR/backup_info.txt"
ls -la "$BACKUP_DIR/" >> "$BACKUP_DIR/backup_info.txt"

echo "Backup completed to: $BACKUP_DIR"
echo "Total size: $(du -sh $BACKUP_DIR | cut -f1)"

# Keep only last 10 backups to save space
echo "Cleaning old backups (keeping last 10)..."
cd /var/www/lawbot/backups/
ls -t | tail -n +11 | xargs -r rm -rf

echo "Backup process complete!"