id(); $table->string('nome', 100); $table->foreignId('sorvegliante_id')->nullable()->constrained('proclamatori')->nullOnDelete(); $table->timestamp('sciolto_at')->nullable(); $table->timestamps(); }); Schema::table('proclamatori', function (Blueprint $table) { $table->foreignId('gruppo_servizio_id')->nullable()->after('attivo')->constrained('gruppi_servizio')->nullOnDelete(); }); Schema::table('territori', function (Blueprint $table) { $table->foreignId('gruppo_servizio_id')->nullable()->after('prioritario')->constrained('gruppi_servizio')->nullOnDelete(); }); Schema::table('assegnazioni', function (Blueprint $table) { $table->foreignId('gruppo_servizio_id')->nullable()->after('campaign_id')->constrained('gruppi_servizio')->nullOnDelete(); }); Schema::table('users', function (Blueprint $table) { $table->foreignId('proclamatore_id')->nullable()->unique()->after('email')->constrained('proclamatori')->nullOnDelete(); $table->timestamp('disattivato_at')->nullable()->after('password_change_required'); }); $permesso = Permission::firstOrCreate(['name' => 'gruppo.gestisci', 'guard_name' => 'web']); Role::firstOrCreate(['name' => 'sorvegliante', 'guard_name' => 'web'])->givePermissionTo($permesso); app(PermissionRegistrar::class)->forgetCachedPermissions(); } public function down(): void { Schema::table('users', function (Blueprint $table) { $table->dropConstrainedForeignId('proclamatore_id'); $table->dropColumn('disattivato_at'); }); Schema::table('assegnazioni', fn (Blueprint $table) => $table->dropConstrainedForeignId('gruppo_servizio_id')); Schema::table('territori', fn (Blueprint $table) => $table->dropConstrainedForeignId('gruppo_servizio_id')); Schema::table('proclamatori', fn (Blueprint $table) => $table->dropConstrainedForeignId('gruppo_servizio_id')); Schema::dropIfExists('gruppi_servizio'); Role::where('name', 'sorvegliante')->delete(); Permission::where('name', 'gruppo.gestisci')->delete(); app(PermissionRegistrar::class)->forgetCachedPermissions(); } };