<?php

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

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('contatti_anagrafica', function (Blueprint $table) {
            $table->id();
            $table->bigInteger('anagrafica_id')->unsigned()->index()->comment('FK verso anagrafica_condominiale');
            
            $table->enum('tipo_contatto', ['email', 'pec', 'telefono', 'cellulare', 'whatsapp', 'telegram', 'altro'])
                ->comment('Tipo di contatto');
            $table->string('valore')->comment('Valore del contatto (email, numero, etc.)');
            $table->string('etichetta')->nullable()->comment('Etichetta personalizzata (es: "lavoro", "casa", "emergenza")');
            
            $table->boolean('principale')->default(false)->comment('Se è il contatto principale per questo tipo');
            $table->boolean('attivo')->default(true)->comment('Se il contatto è attivo');
            $table->boolean('verificato')->default(false)->comment('Se il contatto è stato verificato');
            $table->timestamp('data_verifica')->nullable();
            
            // Preferenze di comunicazione
            $table->boolean('usa_per_convocazioni')->default(true)->comment('Usare per convocazioni assemblee');
            $table->boolean('usa_per_comunicazioni')->default(true)->comment('Usare per comunicazioni generali');
            $table->boolean('usa_per_emergenze')->default(false)->comment('Usare per emergenze');
            $table->boolean('usa_per_solleciti')->default(true)->comment('Usare per solleciti pagamento');
            
            $table->text('note')->nullable();
            $table->timestamps();
            $table->softDeletes();
            
            // Indici per performance
            $table->index(['anagrafica_id', 'tipo_contatto']);
            $table->index(['tipo_contatto', 'principale']);
            $table->index(['anagrafica_id', 'attivo']);
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('contatti_anagrafica');
    }
};
