<?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
    {
        // Cualquier usuario que por algun motivo no haya quedado con role_id
        // tras el backfill (no deberia pasar) cae en Operador por defecto,
        // nunca se deja un usuario sin rol.
        $operadorId = DB::table('roles')->where('nombre', 'Operador')->value('id');
        DB::table('users')->whereNull('role_id')->update(['role_id' => $operadorId]);

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

    public function down(): void
    {
        Schema::table('users', function (Blueprint $table) {
            $table->unsignedTinyInteger('nivel')->default(1)->after('password');
        });

        DB::table('users')
            ->whereIn('role_id', DB::table('roles')->where('nombre', 'Administrador')->pluck('id'))
            ->update(['nivel' => 2]);
    }
};
