subscriptionService = $subscriptionService; $this->contactUsService = $contactUsService; } /** * Main landing page */ public function home() { $data['homePage'] = Page::where('code', 'homepage')->first(); $data['transformations'] = Transformation::all(); $data['videoTestimonials'] = Testimonial::where('status', 'active')->where('link', '!=', '')->orderBy('ordering', 'asc')->get(); $data['normalTestimonials'] = Testimonial::where('status', 'active')->where('link', null)->orderBy('ordering', 'asc')->get(); $data['teamMembers'] = TeamMember::orderBy('id', 'asc')->take(4)->get(); $data['aboutPage'] = Page::where('code', 'about_us')->first(); $data['blogs'] = Blog::orderBy('id', 'desc')->get(); return view("theme.spade.index", $data); } /** * About us page */ public function aboutUs() { $data['aboutPage'] = Page::where('code', 'about_us')->first(); $data['services'] = Service::where('status', 'active')->get(); return view('theme.spade.pages.about-us', $data); } /** * Hair cluster page */ public function hairTransplant() { $page = Page::where('code', 'hair_transplant')->first(); $data['subPage'] = false; $data['pageDetail'] = $page; $data['posts'] = $page->posts->where('sidebar_flag', '11')->sortBy('order'); $data['ageGroupOptions'] = Consultation::AGE_GROUP_OPTIONS; $data['procedureOptions'] = Consultation::PROCEDURE_OPTIONS; $data['transformations'] = Transformation::all(); return view('theme.spade.pages.hair-transplant.cluster', $data); } /** * Hair single page */ public function hairTransplantChild($slug) { $page = Page::where('code', 'hair_transplant')->first(); $data['subPage'] = true; $data['pageDetail'] = $page; $data['posts'] = $page->posts->where('sidebar_flag', '11')->sortBy('order'); $data['ageGroupOptions'] = Consultation::AGE_GROUP_OPTIONS; $data['procedureOptions'] = Consultation::PROCEDURE_OPTIONS; $data['post'] = Post::where('slug', $slug)->first(); $data['transformations'] = Transformation::all(); return view('theme.spade.pages.hair-transplant.child', $data); } /** * Service page */ public function service($slug) { $data['service'] = Service::with('serviceMeta')->where('slug', $slug)->where('status', 'active')->first(); $data['otherServices'] = Service::where('slug', '!=', $slug)->where('status', 'active')->get(); return view('theme.spade.pages.service', $data); } /** * Team member page */ public function doctorProvider() { $data['teamMembers'] = TeamMember::orderBy('id', 'asc')->get()->groupBy('group_id'); return view('theme.spade.pages.doctor-provider.grid', $data); } /** * Team member appointment page */ public function appointment(Request $request) { $id = $request->input('id'); $data['teamMemberDetail'] = TeamMember::where('id', $id)->first(); return view('theme.spade.pages.doctor-provider.appointment', $data); } /** * Blogs page */ public function blogs() { $data['blogs'] = Blog::where('status', 'active') ->orderBy('id', 'desc') ->paginate(env('LIMIT_PER_PAGE')); return view('theme.spade.pages.blog.grid', $data); } /** * Blog single page */ public function singleBlog($slug) { $data['page'] = Page::where('slug', 'blog-single')->first(); $data['blog'] = Blog::with('blogMeta')->where('slug', $slug)->first(); $data['ageGroupOptions'] = Consultation::AGE_GROUP_OPTIONS; $data['procedureOptions'] = Consultation::PROCEDURE_OPTIONS; $data['otherBlogs'] = Blog::where('slug', '!=', $slug)->where('status', 'active')->orderBy('id', 'desc')->limit(7)->get(); return view('theme.spade.pages.blog.detail', $data); } /** * Faq page */ public function faqs() { $data['faqs'] = Faq::where('status', 'active')->orderBy('ordering', 'asc')->get(); return view('theme.spade.pages.faq', $data); } /** * Contact us page */ public function contactUs() { $data = array(); return view("theme.spade.pages.contact-us", $data); } /** * Privacy policy page */ public function privacyPolicy() { $data = []; return view('theme.spade.pages.privacy-policy', $data); } /** * Terms and condition page */ public function termsOfService() { $data = []; return view('theme.spade.pages.term-and-condition', $data); } /** * Extra page */ public function extraPage($slug) { $data['page'] = Page::with('pageMeta')->where('slug', $slug)->where('status', 'active')->first(); return view('theme.spade.pages.extra', $data); } public function storeSubscription(Request $request) { $request->validate([ 'email' => 'required|email', ]); // Check if a subscription with the provided email already exists $existingSubscription = Subscription::where('email', $request->email)->exists(); if ($existingSubscription) { // Subscription already exists, return message or redirect with error toastr()->error("Wow! It's seems like you already subscribe. Thanks for subscription..."); return back(); } // Proceed with storing the new subscription $validated = ['email' => $request->email]; $this->subscriptionService->storeSubscription($validated); // toastr()->success('Thanks for subscribing'); return redirect("/thankyou")->with('success','Message Sent Successfully'); } public function storeContactUs(CreateContactUsRequest $request) { $validated = $request->validated(); try { $this->contactUsService->storeContactUs($validated); toastr()->success('Thanks for contacting us...'); return back(); } catch (\Throwable $th) { report($th); } } public function storeConsultation(CreateConsultationRequest $request) { $validated = $request->validated(); try { $consultationController = new ConsultationController(); $consultationController->store($request); // toastr()->success('Thanks for consulting us...'); return redirect("/thankyou")->with('success','Message Sent Successfully'); } catch (\Throwable $th) { report($th); } } }