#!/bin/bash

# Script di pull per aggiornamenti dal server locale
# Da eseguire sul server remoto
# Uso: ./pull-from-local.sh

echo "🔄 Pull aggiornamenti dal server locale..."

# Parametri configurabili
LOCAL_HOST="192.168.0.xxx"  # IP del server locale (da configurare)
LOCAL_USER="michele"
LOCAL_PATH="/home/michele/netgescon/netgescon-laravel/"
REMOTE_PATH="/var/www/netgescon/"

# Verifica connessione al server locale
if ! ping -c 1 $LOCAL_HOST &> /dev/null; then
    echo "❌ Impossibile raggiungere il server locale $LOCAL_HOST"
    exit 1
fi

# Backup prima del pull
echo "📦 Creazione backup locale..."
tar -czf backup-$(date +%Y%m%d_%H%M%S).tar.gz --exclude='backup-*.tar.gz' .

# Pull dal server locale
echo "🔄 Pull file dal server locale..."
rsync -rz --delete --checksum --exclude='.git' --exclude='node_modules' --exclude='vendor' --exclude='storage/logs' --exclude='storage/framework' --exclude='bootstrap/cache' \
  $LOCAL_USER@$LOCAL_HOST:$LOCAL_PATH $REMOTE_PATH

if [ $? -eq 0 ]; then
    echo "✅ Pull completato con successo!"
    
    # Aggiorna dipendenze e database
    echo "🔧 Aggiornamento dipendenze..."
    composer install --no-dev --optimize-autoloader
    
    echo "🗃️ Aggiornamento database..."
    php artisan migrate --force
    
    echo "⚡ Ottimizzazione cache..."
    php artisan config:cache
    php artisan route:cache
    php artisan view:cache
    
    echo "🔄 Riavvio servizi..."
    sudo systemctl restart nginx
    
    echo "🚀 Aggiornamento completato!"
else
    echo "❌ Errore durante il pull"
    exit 1
fi
