From 974efc1c9c3c38173f86425f888562a2259d7cae Mon Sep 17 00:00:00 2001 From: Juan Felipe Zapata Moreno Date: Fri, 16 Jan 2026 09:53:29 -0600 Subject: [PATCH] fix: actualizar dispositivo --- app/Http/Controllers/Admin/UserController.php | 1 + .../Controllers/Repuve/DeviceController.php | 17 +++++++++++++++++ .../Requests/Repuve/DeviceUpdateRequest.php | 6 ++---- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index 2ae16ed..f2cbbcb 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -42,6 +42,7 @@ public function index() 'name', 'paternal', 'maternal', + 'username', 'email', 'module_id', 'deleted_at' diff --git a/app/Http/Controllers/Repuve/DeviceController.php b/app/Http/Controllers/Repuve/DeviceController.php index de6cbbe..1048e7c 100644 --- a/app/Http/Controllers/Repuve/DeviceController.php +++ b/app/Http/Controllers/Repuve/DeviceController.php @@ -122,6 +122,23 @@ public function update(DeviceUpdateRequest $request, $id) $device = Device::findOrFail($id); + // Validar unicidad solo si los valores cambiaron + if ($request->filled('serie') && $request->serie !== $device->serie) { + if (Device::where('serie', $request->serie)->exists()) { + return ApiResponse::INTERNAL_ERROR->response([ + 'message' => 'El número de serie ya está en uso.', + ]); + } + } + + if ($request->filled('mac_address') && $request->mac_address !== $device->mac_address) { + if (Device::where('mac_address', $request->mac_address)->exists()) { + return ApiResponse::INTERNAL_ERROR->response([ + 'message' => 'La dirección MAC ya está registrada.', + ]); + } + } + $device->update($request->only(['brand', 'serie', 'mac_address', 'status'])); DeviceModule::where('device_id', $device->id)->delete(); diff --git a/app/Http/Requests/Repuve/DeviceUpdateRequest.php b/app/Http/Requests/Repuve/DeviceUpdateRequest.php index 5142196..10adada 100644 --- a/app/Http/Requests/Repuve/DeviceUpdateRequest.php +++ b/app/Http/Requests/Repuve/DeviceUpdateRequest.php @@ -13,12 +13,10 @@ public function authorize(): bool public function rules(): array { - $deviceId = $this->route('device'); - return [ 'brand' => ['nullable', 'string', 'max:255'], - 'serie' => ['nullable', 'string', 'unique:devices,serie,' . $deviceId, 'max:255'], - 'mac_address' => ['nullable', 'string', 'unique:devices,mac_address,' . $deviceId, 'regex:/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/'], + 'serie' => ['nullable', 'string', 'max:255'], + 'mac_address' => ['nullable', 'string', 'regex:/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/'], 'module_id' => ['nullable', 'exists:modules,id'], 'user_id' => ['nullable', 'array'], 'user_id.*' => ['exists:users,id'],