#!/bin/bash

# Script per riparare le migration duplicate
# Uso: ./fix-migrations.sh

echo "🔧 Riparazione migration duplicate..."

REMOTE_USER="michele"
REMOTE_HOST="192.168.0.43"
REMOTE_PATH="/var/www/netgescon"

echo "📋 Verifica stato migration sul server remoto..."
ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_PATH && php artisan migrate:status"

echo ""
echo "🗑️ Opzioni disponibili:"
echo "1. Rollback dell'ultima migration fallita"
echo "2. Reset completo database (ATTENZIONE: cancella tutti i dati)"
echo "3. Rimuovi solo la tabella 'rate' problematica"
echo "4. Verifica solo lo stato senza modifiche"

read -p "Scegli un'opzione (1-4): " choice

case $choice in
    1)
        echo "🔄 Rollback ultima migration..."
        ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_PATH && php artisan migrate:rollback --step=1"
        ;;
    2)
        echo "⚠️  ATTENZIONE: Questo cancellerà tutti i dati!"
        read -p "Sei sicuro? (y/N): " confirm
        if [ "$confirm" = "y" ] || [ "$confirm" = "Y" ]; then
            echo "🗑️ Reset completo database..."
            ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_PATH && php artisan migrate:fresh --seed"
        else
            echo "❌ Operazione annullata"
        fi
        ;;
    3)
        echo "🗑️ Rimozione tabella 'rate'..."
        ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_PATH && php artisan tinker --execute=\"DB::statement('DROP TABLE IF EXISTS rate'); echo 'Tabella rate rimossa';\""
        echo "🔄 Riprova migration..."
        ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_PATH && php artisan migrate"
        ;;
    4)
        echo "📊 Stato attuale migration:"
        ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_PATH && php artisan migrate:status"
        echo ""
        echo "🗃️ Tabelle presenti nel database:"
        ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_PATH && php artisan tinker --execute=\"DB::select('SHOW TABLES')\""
        ;;
    *)
        echo "❌ Opzione non valida"
        exit 1
        ;;
esac

echo "✅ Operazione completata"
