#!/bin/bash

# Chatwoot Backup Script for CRM Genius-Systems Online
BACKUP_DIR="/home/ashraffarid2010/crm.genius-systems.online/backups"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_NAME="crm_chatwoot_backup_$DATE"

# Create backup directory if it doesn't exist
mkdir -p "$BACKUP_DIR"

echo "Starting Chatwoot backup - $DATE"

# Backup PostgreSQL database
echo "Backing up PostgreSQL database..."
docker exec crm_chatwoot_postgres pg_dump -U crm_chatwoot_user crm_chatwoot_db > "$BACKUP_DIR/${BACKUP_NAME}_database.sql"

# Backup storage volume
echo "Backing up storage volume..."
docker run --rm -v chatwoot_crm_chatwoot_storage:/source -v "$BACKUP_DIR":/backup alpine tar czf "/backup/${BACKUP_NAME}_storage.tar.gz" -C /source .

# Backup configuration files
echo "Backing up configuration files..."
tar czf "$BACKUP_DIR/${BACKUP_NAME}_config.tar.gz" docker-compose.yml .env

# Clean up old backups (keep last 7 days)
echo "Cleaning up old backups..."
find "$BACKUP_DIR" -name "crm_chatwoot_backup_*" -type f -mtime +7 -delete

echo "Backup completed: $BACKUP_NAME"
ls -lh "$BACKUP_DIR/${BACKUP_NAME}_"*