settingService->get(); return $this->successResponse(payload: new CompanySettingResource($setting)); } public function update(CompanySettingRequest $request): JsonResponse { $setting = $this->settingService->upsert($request->validated()); return $this->successResponse( payload: new CompanySettingResource($setting), message: __('messages.updated'), ); } public function uploadHeroImage(CompanyHeroImageRequest $request): JsonResponse { $setting = $this->settingService->uploadHeroBackground($request->file('image')); return $this->successResponse( payload: new CompanySettingResource($setting), message: __('messages.updated'), ); } public function removeHeroImage(): JsonResponse { $setting = $this->settingService->removeHeroBackground(); return $this->successResponse( payload: new CompanySettingResource($setting), message: __('messages.updated'), ); } public function indexBenefits(): JsonResponse { $benefits = $this->benefitService->getAll(); return $this->successResponse(payload: CompanyBenefitResource::collection($benefits)); } public function storeBenefit(CompanyBenefitRequest $request): JsonResponse { $benefit = $this->benefitService->create($request->validated()); return $this->successResponse( payload: new CompanyBenefitResource($benefit), message: __('messages.created'), code: 201, ); } public function updateBenefit(CompanyBenefitRequest $request, int $id): JsonResponse { $benefit = $this->benefitService->update($id, $request->validated()); return $this->successResponse( payload: new CompanyBenefitResource($benefit), message: __('messages.updated'), ); } public function reorderBenefits(Request $request): JsonResponse { $items = $request->validate([ '*.id' => 'required|integer|exists:company_benefits,id', '*.order' => 'required|integer|min:0', ]); $this->benefitService->reorder($items); return $this->successResponse(message: __('messages.updated')); } public function destroyBenefit(int $id): JsonResponse { $this->benefitService->delete($id); return $this->successResponse(message: __('messages.deleted'), code: 204); } }