#!/bin/bash

# AirwavePBX Clean Install Preparation Script
# This script helps prepare for a clean installation

set -e

echo "=== AirwavePBX Clean Install Preparation ==="
echo
echo "This script will help you prepare for a clean installation of AirwavePBX v1.0.25"
echo

# Backup existing data
if [[ -d "/opt/airwavepbx" ]]; then
    echo "Found existing AirwavePBX installation"
    read -p "Do you want to backup existing data? (y/n): " -n 1 -r
    echo
    if [[ $REPLY =~ ^[Yy]$ ]]; then
        BACKUP_DIR="/root/airwavepbx-backup-$(date +%Y%m%d-%H%M%S)"
        echo "Creating backup at $BACKUP_DIR..."
        mkdir -p "$BACKUP_DIR"
        
        # Backup database if exists
        if command -v pg_dump &> /dev/null; then
            echo "Backing up database..."
            sudo -u postgres pg_dump airwavepbx > "$BACKUP_DIR/database.sql" 2>/dev/null || echo "Database backup skipped"
        fi
        
        # Backup configurations
        cp /opt/airwavepbx/config/.env "$BACKUP_DIR/" 2>/dev/null || echo "Config backup skipped"
        
        # Save credentials
        cp /root/airwavepbx-credentials.txt "$BACKUP_DIR/" 2>/dev/null || echo "Credentials backup skipped"
        
        echo "Backup complete at: $BACKUP_DIR"
    fi
fi

echo
echo "Steps for clean installation:"
echo "1. Stop existing services:"
echo "   systemctl stop airwavepbx nginx asterisk"
echo
echo "2. Remove existing installation:"
echo "   rm -rf /opt/airwavepbx"
echo
echo "3. Upload and extract AirwavePBX v1.0.25:"
echo "   cd /tmp"
echo "   tar -xzf airwavepbx-1.0.25.tar.gz"
echo "   cd airwavepbx-1.0.25"
echo
echo "4. Run the installer:"
echo "   sudo ./install.sh"
echo
echo "The v1.0.25 installer includes:"
echo "- Fixed socket.io-client dependency"
echo "- Proper file permissions for nginx"
echo "- Enhanced build verification"
echo "- All previous fixes from v1.0.23-1.0.24"
echo
echo "Ready to proceed with clean installation!"