FIX: Correcciones device y modulo

This commit is contained in:
Juan Felipe Zapata Moreno 2025-11-14 11:44:07 -06:00
parent 551ef38ffc
commit 82b7a179f5
4 changed files with 27 additions and 20 deletions

View File

@ -174,13 +174,16 @@ public function toggleStatus(int $id)
DB::beginTransaction(); DB::beginTransaction();
// Cambiar el status al valor opuesto $newStatus = !$module->status;
$module->update([ $module->update([
'status' => !$module->status, 'status' => $newStatus,
]); ]);
DB::commit(); DB::commit();
$module->refresh();
return ApiResponse::OK->response([ return ApiResponse::OK->response([
'message' => $module->status 'message' => $module->status
? 'Módulo activado exitosamente' ? 'Módulo activado exitosamente'

View File

@ -13,16 +13,16 @@ public function authorize(): bool
public function rules(): array public function rules(): array
{ {
$deviceId = $this->route('id'); $deviceId = $this->route('device');
return [ return [
'brand' => ['sometimes', 'string', 'max:255'], 'brand' => ['nullable', 'string', 'max:255'],
'serie' => ['sometimes', 'string', 'unique:devices,serie,' . $deviceId, 'max:255'], 'serie' => ['nullable', 'string', 'unique:devices,serie,' . $deviceId, 'max:255'],
'mac_address' => ['sometimes', 'string', 'unique:devices,mac_address,' . $deviceId, 'regex:/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/'], 'mac_address' => ['nullable', 'string', 'unique:devices,mac_address,' . $deviceId, 'regex:/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/'],
'module_id' => ['sometimes', 'exists:modules,id'], 'module_id' => ['nullable', 'exists:modules,id'],
'user_id' => ['sometimes', 'array', 'min:1'], 'user_id' => ['nullable', 'array'],
'user_id.*' => ['exists:users,id'], 'user_id.*' => ['exists:users,id'],
'status' => ['sometimes', 'boolean'], 'status' => ['nullable', 'boolean'],
]; ];
} }

View File

@ -14,9 +14,10 @@ public function authorize(): bool
public function rules(): array public function rules(): array
{ {
return [ return [
'name' => ['nullable', 'string', 'max:255'], 'name' => ['nullable', 'string', 'max:50'],
'municipality' => ['nullable', 'string', 'max:100'], 'municipality_id' => ['nullable', 'integer', 'exists:municipalities,id'],
'address' => ['nullable', 'string', 'max:255'], 'responsible_id' => ['nullable', 'integer', 'exists:users,id'],
'address' => ['nullable', 'string', 'max:50'],
'colony' => ['nullable', 'string', 'max:100'], 'colony' => ['nullable', 'string', 'max:100'],
'cp' => ['nullable', 'string', 'max:10'], 'cp' => ['nullable', 'string', 'max:10'],
'longitude' => ['nullable', 'numeric', 'between:-180,180'], 'longitude' => ['nullable', 'numeric', 'between:-180,180'],
@ -28,15 +29,17 @@ public function rules(): array
public function messages(): array public function messages(): array
{ {
return [ return [
'name.string' => 'El nombre debe ser una cadena de texto', 'name.string' => 'El nombre debe ser texto',
'name.max' => 'El nombre no debe superar los 255 caracteres', 'name.max' => 'El nombre no debe superar los 50 caracteres',
'municipality.string' => 'El municipio debe ser una cadena de texto', 'municipality_id.integer' => 'El municipio debe ser un número entero',
'municipality.max' => 'El municipio no debe superar los 100 caracteres', 'municipality_id.exists' => 'El municipio seleccionado no existe',
'address.string' => 'La dirección debe ser una cadena de texto', 'responsible_id.integer' => 'El responsable debe ser un número entero',
'address.max' => 'La dirección no debe superar los 255 caracteres', 'responsible_id.exists' => 'El responsable seleccionado no existe',
'colony.string' => 'La colonia debe ser una cadena de texto', 'address.string' => 'La dirección debe ser texto',
'address.max' => 'La dirección no debe superar los 50 caracteres',
'colony.string' => 'La colonia debe ser texto',
'colony.max' => 'La colonia no debe superar los 100 caracteres', 'colony.max' => 'La colonia no debe superar los 100 caracteres',
'cp.string' => 'El código postal debe ser una cadena de texto', 'cp.string' => 'El código postal debe ser texto',
'cp.max' => 'El código postal no debe superar los 10 caracteres', 'cp.max' => 'El código postal no debe superar los 10 caracteres',
'longitude.numeric' => 'La longitud debe ser un número', 'longitude.numeric' => 'La longitud debe ser un número',
'longitude.between' => 'La longitud debe estar entre -180 y 180', 'longitude.between' => 'La longitud debe estar entre -180 y 180',

View File

@ -48,6 +48,7 @@
Route::post('cancelacion/cancelar', [CancellationController::class, 'cancelarConstancia']); Route::post('cancelacion/cancelar', [CancellationController::class, 'cancelarConstancia']);
//Rutas de Modulos //Rutas de Modulos
Route::patch('module/{id}/toggle-status', [ModuleController::class, 'toggleStatus']);
Route::resource('module', ModuleController::class); Route::resource('module', ModuleController::class);
//Rutas de Municipios //Rutas de Municipios