search) , function ($query) use ($request){ $query->where(function ($q) use ($request) { $q->where('name', 'LIKE', "%{$request->search}%") ->orWhere('label','LIKE', "%{$request->search}%"); }); }) ->latest() ->paginate(20) ->withQueryString() ->onEachSide(1); return Inertia::admin('Permissions/index', [ 'permissions' => PermissionResource::collection($permissions), 'search' => $request->search, ]); } public function create() { $permissions = Permission::latest()->where('parent_id' , 0)->get(); return Inertia::admin('Permissions/create_and_edit', [ 'permissions' => PermissionResource::collection($permissions), ]); } public function store(Request $request) { $valid = $request->validate([ 'name' => ['required' , 'max:255'], 'label' => ['required' , 'max:255'], ]); Permission::create([ 'name' => $valid['name'], 'label' => $valid['label'], 'parent_id' => $request->parent_id ?? 0, ]); session()->flash('success', 'سطح جدید با موفقیت ایجاد شد.'); return response(null , 201); } public function bulkDelete(Request $request) { Permission::destroy($request->ids); session()->flash('success', 'سطح های مورد نظر با موفقیت حذف شدند.'); return response(null , 200); } public function exportData(Request $request) { $filters = $request->only(['search']); return Excel::download(new PermissionExport($filters), 'permissions.xlsx'); } public function show(Permission $permission) { // } public function edit(Permission $permission) { $permissions = Permission::latest()->where('parent_id' , 0)->get(); return Inertia::admin('Permissions/create_and_edit', [ 'permission' => [ 'id' => $permission->id, 'name' => $permission->name, 'label' => $permission->label, 'parent_id' => $permission->parent_id, 'created_at' => optional($permission->created_at)->format('Y-m-d H:i:s'), ], 'permissions' => PermissionResource::collection($permissions), 'is_edit' => true, ]); } public function update(Request $request, Permission $permission) { $valid = $request->validate([ 'name' => ['required' , 'max:255'], 'label' => ['required' , 'max:255'], ]); $permission->update([ 'name' => $valid['name'], 'label' => $valid['label'], 'parent_id' => $request->parent_id ?? 0, ]); session()->flash('success', 'سطح مورد نظر با موفقیت بروزرسانی شد.'); return response(null , 200); } public function destroy(Permission $permission) { $permission->delete(); session()->flash('success', 'سطح مورد نظر با موفقیت حذف شد.'); return response(null , 200); } }