repository = new SectionRepository(); $this->service = new Sections(); } public function index() { $sections = $this->service->all(); return response()->json([ 'sections' => $sections, ]); } public function lazyLoadSectionItems(Request $request, Section $section) { $items = $this->service->lazyLoadSectionItems($section, $request->skipped); return response()->json([ 'items' => $items, ]); } public function store(SectionRequest $request) { $section = $this->repository->create($request->title, $request->layout, $request->order); if ($section) { return response()->json([ 'message' => __('frontend::common.section-saved'), 'section' => $section, ]); } return response()->json([ 'message' => __('frontend::common.store-section-failed'), ], 400); } public function update(SectionRequest $request) { $result = $this->repository->update($request->id, $request->title, $request->layout, $request->order); if ($result) { return response()->json([ 'message' => __('frontend::common.section-updated'), 'section' => $result, ]); } return response()->json([ 'message' => __('frontend::common.update-section-failed'), ], 400); } public function destroy(SectionRequest $request) { $result = $this->repository->destroy($request->id); if ($result) { return response()->json([ 'message' => __('frontend::common.section-deleted'), ]); } return response()->json([ 'message' => __('frontend::common.delete-section-failed'), ], 400); } public function updateSectionItems(Request $request, Section $section) { $sections = $request->items; $this->service->updateSectionItems($section, $sections); return response()->json([ 'message' => __('frontend::common.section-items-updated'), ]); } public function updateSectionCategories(Request $request, Section $section) { $categories = $request->items; $this->service->updateSectionCategories($section, $categories); return response()->json([ 'message' => __('frontend::common.section-categories-updated'), ]); } public function updateSectionTranslations(Request $request, Section $section) { $translations = $request->items; $this->service->updateSectionTranslations($section, $translations); return response()->json([ 'message' => __('frontend::common.section-translations-updated'), ]); } public function updateSectionStatus(Request $request, Section $section) { $this->service->updateSectionStatus($section, $request->state); return response()->json([ 'message' => __('frontend::common.section-status-updated'), ]); } }