true, 'showMenu' => true ]; $breadcrumbs = [['link' => '/admin/admin/'.auth()->user()->id.'/edit', 'name' => 'Manager'], ['name' => 'Add']]; return view('content.admin.managers.create', [ 'pageConfigs' => $pageConfigs, 'breadcrumbs' => $breadcrumbs, ]); } public function store(Request $request) { $request->validate([ 'fullName' => ['required', 'min: 3'], 'fatherName' => ['nullable', 'min: 3'], 'email' => ['required', 'email', 'unique:users'], 'phone' => ['required', 'unique:users'], 'password' => ['required', 'confirmed', Password::min(8)], 'cnic' => ['nullable','integer','digits:13'], 'dob' => ['nullable'], 'address' => ['nullable'], 'gender' => ['required'], 'notes' => ['nullable'], 'profileImage' => ['nullable', 'image'], ]); try { DB::beginTransaction(); $user = new User(); $user->name = $request->fullName; $user->father_name = $request->fatherName; $user->email = $request->email; $user->role = 'MANAGER'; $user->phone = $request->phone; $user->dob = $request->dob; $user->gender = $request->gender; $user->cnic = $request->cnic; $user->address = $request->address; $user->notes = $request->notes; $user->password = Hash::make($request->password); $user->email_verified_at = now(); $user->save(); if ($request->profileImage) { $prefix = 'profile'; $profileImagePath = $this->uploadFile($request->profileImage, $prefix, false); $user->picture = $profileImagePath; $user->save(); } DB::commit(); return redirect()->route('admin.edit',auth()->user()->id)->with([ 'success' => "Manager created successfully" ]); } catch (\Throwable $exception) { DB::rollBack(); report($exception); Log::info($exception); return redirect()->back()->with([ 'error' => $exception->getMessage() ]); } } public function edit(User $manager) { $pageConfigs = [ 'pageHeader' => true, 'showMenu' => true ]; $breadcrumbs = [['link' => '/admin/admin/'.auth()->id().'/edit', 'name' => 'Manager'], ['name' => 'Edit']]; return view('content.admin.managers.edit', [ 'pageConfigs' => $pageConfigs, 'breadcrumbs' => $breadcrumbs, 'user' => $manager, ]); } public function update(Request $request, User $manager) { $request->validate([ 'fullName' => ['required', 'min: 3'], 'fatherName' => ['required', 'min: 3'], 'email' => ['required', 'email'], 'phone' => ['required'], 'password' => ['nullable', 'confirmed', Password::min(8)], 'cnic' => ['nullable','integer','digits:13'], 'dob' => ['nullable'], 'address' => ['nullable'], 'gender' => ['required'], 'notes' => ['nullable'], 'profileImage' => ['nullable', 'image'], ]); try { DB::beginTransaction(); $manager->name = $request->fullName; $manager->father_name = $request->fatherName; $manager->email = $request->email; $manager->phone = $request->phone; $manager->dob = $request->dob; $manager->gender = $request->gender; $manager->cnic = $request->cnic; if ($request->password){ $manager->password = Hash::make($request->password); } if ($request->hasFile('profileImage')) { $prefix = 'profileImage'; $bannerImagePath = $this->updateFile($request->profileImage, $manager->picture, $prefix, false); $manager->picture = $bannerImagePath; } $manager->update(); DB::commit(); return redirect()->back()->with([ 'success' => "Manager updated successfully" ]); } catch (\Throwable $exception) { DB::rollBack(); return redirect()->back()->with([ 'error' => $exception->getMessage() ]); } } public function destroy(User $manager) { try { DB::beginTransaction(); if ($manager->picture){ $this->deleteFile($manager->picture); } $manager->delete(); DB::commit(); return redirect()->back()->with([ 'success' => "Manager deleted successfully" ]); } catch (\Throwable $exception) { DB::rollBack(); return redirect()->back()->with([ 'error' => $exception->getMessage() ]); } } }