authorize('pets.index'); $lists = Pet::with(['owner']) ->when(isset($request->search) , function ($query) use ($request){ $query->where(function ($q) use ($request) { $q->where('name', 'LIKE', "%{$request->search}%") ->orWhere('id', $request->search); }); }) ->when(isset($request->type) && $request->type != 'همه نوع ها', function ($query) use ($request) { $query->whereIn('type' , $request->type); }) ->when(isset($request->gender) && $request->gender != 'همه جنسیت ها', function ($query) use ($request) { $query->where('gender' , $request->gender); }) ->latest() ->paginate(20) ->withQueryString() ->onEachSide(1); $pets = PetResource::collection($lists); return Inertia::admin('Pets/index', [ 'pets' => $pets, 'search' => $request->search, 'type' => $request->type, 'gender' => $request->gender, 'permissions_edit' => auth()->user()->can('pets.edit') ? false : true, 'permissions_delete' => auth()->user()->can('pets.delete') ? false : true, ]); } public function create() { $this->authorize('pets.create'); return Inertia::admin('Pets/create_and_edit'); } public function store(PetRequest $request) { $this->authorize('pets.create'); auth()->user()->pets()->create([ 'name' => $request->name, 'type' => $request->type, 'gender' => $request->gender, 'breed' => $request->breed, 'weight' => $request->weight, 'sterilized' => $request->sterilized, 'birthday' => $request->birthday, ]); session()->flash('success', 'کیس با موفقیت ثبت شد'); return response(null , 200); } public function show(Pet $pet) { // } public function edit(Pet $pet) { $this->authorize('pets.edit'); return Inertia::admin('Pets/create_and_edit', [ 'pet' => PetResource::make($pet)->resource, 'is_edit' => true, ]); } public function update(PetRequest $request, Pet $pet) { $this->authorize('pets.edit'); $pet->update([ 'name' => $request->name, 'type' => $request->type, 'gender' => $request->gender, 'breed' => $request->breed, 'weight' => $request->weight, 'sterilized' => $request->sterilized, 'birthday' => $request->birthday, ]); session()->flash('success', 'کیس با موفقیت بروزرسانی شد'); return response(null , 200); } public function destroy(Pet $pet) { $this->authorize('pets.delete'); $pet->delete(); session()->flash('success', 'کیس با موفقیت حذف شد'); return response(null , 200); } public function bulkDelete(Request $request) { $this->authorize('pets.delete'); Pet::destroy($request->ids); session()->flash('success', 'کیس های مورد نظر با موفقیت حذف شدند.'); return response(null , 200); } public function exportData(Request $request) { $filters = $request->only(['type', 'gender', 'search']); return Excel::download(new PetExport($filters), 'pets.xlsx'); } public function getOptions(Request $request) { $this->authorize('pets.index'); $lists = Pet::when(isset($request->search) , function ($query) use ($request){ $query->where('name', 'LIKE', "%{$request->search}%") ->orWhere('id', $request->search); }) ->latest() ->take(20) ->get(['id', 'name']); $options = $lists->map(function ($pet) { return [ 'label' => $pet->name, 'value' => $pet->id ]; }); return response()->json([ 'success' => true, 'data' => $options ]); } }