fix: creación de dispositivo

This commit is contained in:
Juan Felipe Zapata Moreno 2026-01-16 09:29:03 -06:00
parent 0a7b46c0bc
commit 22f7e0226e
2 changed files with 57 additions and 7 deletions

View File

@ -53,20 +53,31 @@ public function store(DeviceStoreRequest $request)
]);
// Asignar módulo y usuarios usando el modelo DeviceModule
$userIds = $request->input('user_id');
$userIds = $request->input('user_id', []);
foreach ($userIds as $userId) {
if (!empty($userIds)) {
// Si hay usuarios, crear un registro por cada usuario
foreach ($userIds as $userId) {
DeviceModule::create([
'device_id' => $device->id,
'module_id' => $request->module_id,
'user_id' => $userId,
'status' => true,
]);
}
} else {
// Si no hay usuarios, crear solo la relación device-module
DeviceModule::create([
'device_id' => $device->id,
'module_id' => $request->module_id,
'user_id' => $userId,
'user_id' => null,
'status' => true,
]);
}
DB::commit();
$device->load('modules');
$device->load('deviceModules.module');
return ApiResponse::CREATED->response([
'message' => 'Dispositivo creado exitosamente.',
@ -75,6 +86,7 @@ public function store(DeviceStoreRequest $request)
'brand' => $device->brand,
'serie' => $device->serie,
'status' => $device->status,
'module' => $device->deviceModules->first()?->module,
],
]);
} catch (\Exception $e) {
@ -114,12 +126,22 @@ public function update(DeviceUpdateRequest $request, $id)
DeviceModule::where('device_id', $device->id)->delete();
$userIds = $request->input('user_id');
foreach ($userIds as $userId) {
$userIds = $request->input('user_id', []);
if (!empty($userIds)) {
foreach ($userIds as $userId) {
DeviceModule::create([
'device_id' => $device->id,
'module_id' => $request->module_id,
'user_id' => $userId,
'status' => true,
]);
}
} else {
DeviceModule::create([
'device_id' => $device->id,
'module_id' => $request->module_id,
'user_id' => $userId,
'user_id' => null,
'status' => true,
]);
}

View File

@ -0,0 +1,28 @@
<?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::table('device_module', function (Blueprint $table) {
$table->foreignId('user_id')->nullable()->change();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('device_module', function (Blueprint $table) {
$table->foreignId('user_id')->nullable(false)->change();
});
}
};