#!/bin/bash

# Configuration
VPS_IP="89.167.103.172"
VPS_USER="root"
VPS_PASS="PNCauiqx7twnhtbiaTiAa"
LOCAL_DIR="/Users/ii/Documents/ChatGPT/cvapplications/uitestphantom/rvsnapchat"

export SSHPASS=$VPS_PASS

echo "1. Preparing files for upload (ignoring sockets, venv, and large browser caches)..."
cd "$LOCAL_DIR"
tar --exclude='venv' --exclude='__pycache__' --exclude='*.bin' --exclude='snapchat_session/Default/Cache' --exclude='snapchat_session/Default/Code Cache' --exclude='snapchat_session/Default/GPUCache' --exclude='snapchat_session/Default/Service Worker/CacheStorage' -czf rvsnapchat_deploy.tar.gz .

echo "2. Uploading rvsnapchat to the VPS..."
sshpass -e scp -o StrictHostKeyChecking=no rvsnapchat_deploy.tar.gz $VPS_USER@$VPS_IP:/root/
rm rvsnapchat_deploy.tar.gz

echo "3. Setting up environment and starting the backend on the VPS..."
sshpass -e ssh -o StrictHostKeyChecking=no $VPS_USER@$VPS_IP << 'EOF'
  mkdir -p /root/rvsnapchat
  cd /root/rvsnapchat
  
  # Extract files
  tar -xzf /root/rvsnapchat_deploy.tar.gz
  rm /root/rvsnapchat_deploy.tar.gz
  
  # Install pip and venv if not present
  apt-get update && apt-get install -y python3-pip python3-venv
  
  # Setup virtual environment
  rm -rf /root/rvsnapchat/venv
  python3 -m venv venv
  source venv/bin/activate
  
  # Install dependencies
  pip install playwright
  python -m playwright install chromium
  python -m playwright install-deps chromium
  
  # Use pm2 to run the app
  if command -v pm2 &> /dev/null
  then
      pm2 delete rvsnapchat || true
      pm2 start backend.py --name rvsnapchat --interpreter /root/rvsnapchat/venv/bin/python
      pm2 save
  else
      # fallback to nohup
      pkill -f "python backend.py"
      nohup /root/rvsnapchat/venv/bin/python backend.py > backend.log 2>&1 &
  fi
  
  echo "Deployment complete! Backend should be running."
EOF
