filled('serie') && !$request->filled('brand')){ return ApiResponse::BAD_REQUEST->response([ 'message' => 'Debe proporcionar al menos uno de los siguientes parĂ¡metros: serie o marca.' ]); } if ($request->filled('serie')){ $query->where('serie', 'LIKE', '%' . $request->input('serie') . '%'); } if ($request->filled('brand')){ $query->where('brand', 'LIKE', '%' . $request->input('brand') . '%'); } $perPage = $request->input('per_page', 10); $devices = $query->paginate($perPage); return ApiResponse::OK->response([ 'devices' => $devices->map(function ($devices){ return [ 'id' => $devices->id, 'brand' => $devices->brand, 'serie' => $devices->serie, 'status' => $devices->status, ]; }), 'pagination' => [ 'total' => $devices->total(), 'per_page' => $devices->perPage(), 'current_page' => $devices->currentPage(), 'last_page' => $devices->lastPage(), 'from' => $devices->firstItem(), 'to' => $devices->lastItem(), ], ]); } catch(\Exception $e){ return ApiResponse::INTERNAL_ERROR->response([ 'message' => 'Error al obtener la lista de dispositivos.', 'error' => $e->getMessage(), ]); } } }