when($request->integer('menu_id'), fn ($q, $menuId) => $q->where('menu_id', $menuId)) ->orderBy('id') ->get(); return response()->json([ 'success' => true, 'data' => MenuItemResource::collection($items), ]); } public function show(int $id): JsonResponse { $item = MenuItem::find($id); if (! $item) { return response()->json([ 'success' => false, 'message' => 'Không tìm thấy menu item', ], 404); } return response()->json([ 'success' => true, 'data' => MenuItemResource::make($item), ]); } public function store(StoreMenuItemRequest $request): JsonResponse { $item = MenuItem::create($request->validated()); return response()->json([ 'success' => true, 'message' => 'Tạo menu item thành công', 'data' => MenuItemResource::make($item), ], 201); } public function update(int $id, StoreMenuItemRequest $request): JsonResponse { $item = MenuItem::find($id); if (! $item) { return response()->json([ 'success' => false, 'message' => 'Không tìm thấy menu item', ], 404); } $item->update($request->validated()); return response()->json([ 'success' => true, 'message' => 'Cập nhật menu item thành công', 'data' => MenuItemResource::make($item), ]); } public function destroy(int $id): JsonResponse { $item = MenuItem::find($id); if (! $item) { return response()->json([ 'success' => false, 'message' => 'Không tìm thấy menu item', ], 404); } $item->delete(); return response()->json([ 'success' => true, 'message' => 'Xoá menu item thành công', ]); } }