<?php

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

return new class extends Migration
{
    public function up(): void
    {
        Schema::table('inventarios', function (Blueprint $table) {
            $table->foreignId('tipo_impuesto_id')->nullable()->after('proveedor_id')->constrained('tipos_impuesto');
        });

        $exentoId = DB::table('tipos_impuesto')->where('nombre', 'Exento')->value('id');
        $predeterminadoId = DB::table('tipos_impuesto')->where('predeterminado', true)->value('id');

        DB::table('inventarios')->where('exento_iva', true)->update(['tipo_impuesto_id' => $exentoId]);
        DB::table('inventarios')->whereNull('tipo_impuesto_id')->update(['tipo_impuesto_id' => $predeterminadoId]);

        Schema::table('inventarios', function (Blueprint $table) {
            $table->dropColumn('exento_iva');
        });
    }

    public function down(): void
    {
        Schema::table('inventarios', function (Blueprint $table) {
            $table->boolean('exento_iva')->default(false);
            $table->dropConstrainedForeignId('tipo_impuesto_id');
        });
    }
};
