hasPermissionTo('manage-rahdaran-country') ? Rahdaran::query() : ($user->hasPermissionTo('manage-rahdaran-province') ? Rahdaran::query()->where('province_id', '=', $user->province_id) : Rahdaran::query()->where('edareh_shahri_id', '=', $user->edarate_shahri_id) ); return response()->json(DataTableFacade::run( $query, $request, allowedFilters: ['*'], allowedSortings: ['*']) ); } public function store(StoreRequest $request): JsonResponse { $province = Province::query()->find($request->input('province_id')); Rahdaran::query()->create([ 'name' => $request->name, 'code' => $request->code, 'mobile' => $request->mobile, 'province_id' => $province->id, 'province_name' => $province->name_fa, 'is_driver' => $request->is_driver, ]); return $this->successResponse(); } public function show(Rahdaran $rahdaran): JsonResponse { return $this->successResponse($rahdaran); } public function update(UpdateRequest $request, Rahdaran $rahdaran): JsonResponse { $province = Province::query()->find($request->input('province_id')); $rahdaran->update([ 'name' => $request->name, 'code' => $request->code, 'mobile' => $request->mobile, 'province_id' => $province->id, 'province_name' => $province->name_fa, 'is_driver' => $request->is_driver, ]); return $this->successResponse(); } public function destroy(Rahdaran $rahdaran): JsonResponse { try { $rahdaran->delete(); return $this->successResponse(); } catch (QueryException $exception) { return $this->errorResponse('امکان حذف وجود ندارد'); } } public function list(): JsonResponse { return $this->successResponse(Rahdaran::all()); } public function search(Request $request): JsonResponse { $matchedSearchedRahdaran = Rahdaran::query() ->where('code', 'LIKE', "%{$request->search}%") ->orWhere('name', 'LIKE', "%{$request->search}%") ->get(); return $this->successResponse($matchedSearchedRahdaran); } }