<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\DB;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        // Verifica se l'indice esiste già controllando direttamente nel database
        $indexExists = DB::select("SHOW INDEX FROM amministratori WHERE Key_name = 'amministratori_codice_univoco_unique_idx'");
        
        if (empty($indexExists)) {
            // Aggiungi l'indice univoco per codice_univoco
            Schema::table('amministratori', function (Blueprint $table) {
                $table->unique('codice_univoco', 'amministratori_codice_univoco_unique_idx');
            });
            
            echo "Indice univoco per codice_univoco creato con successo.\n";
        } else {
            echo "Indice univoco per codice_univoco già esistente.\n";
        }
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        // Rimuovi l'indice univoco se esiste
        $indexExists = DB::select("SHOW INDEX FROM amministratori WHERE Key_name = 'amministratori_codice_univoco_unique_idx'");
        
        if (!empty($indexExists)) {
            Schema::table('amministratori', function (Blueprint $table) {
                $table->dropUnique('amministratori_codice_univoco_unique_idx');
            });
        }
    }
};
