pluck('slug')->toArray(); // Filter out module-specific pages when modules are disabled if (!module_enabled('products')) { $activePagesSlugs = array_diff($activePagesSlugs, ['produtos']); } if (!module_enabled('services')) { $activePagesSlugs = array_diff($activePagesSlugs, ['servicos']); } $customPages = Page::where('active', true) ->whereNotIn('slug', $coreSlugs) ->get(['title', 'slug']); $activeGalleries = \App\Models\Gallery::where('active', true)->get(['title', 'slug', 'category_id']); $galleryCategories = []; $activeGalleryCategories = \App\Models\GalleryCategory::where('active', true)->orderBy('name')->get(); foreach ($activeGalleryCategories as $category) { $galleries = \App\Models\Gallery::where('active', true) ->where('category_id', $category->id) ->orderBy('title') ->get(['title', 'slug']); if ($galleries->count() > 0) { $galleryCategories[$category->name] = $galleries; } } // Global Company Data $company = [ 'name' => \App\Models\Setting::get('company_name', 'Syspanel'), 'cnpj' => \App\Models\Setting::get('company_cnpj'), 'email' => \App\Models\Setting::get('company_email'), 'phone' => \App\Models\Setting::get('company_phone', '(11) 99999-9999'), 'address' => \App\Models\Setting::get('company_address', 'Endereço não configurado'), 'hours' => \App\Models\Setting::get('company_hours'), 'instagram' => \App\Models\Setting::get('company_instagram'), 'facebook' => \App\Models\Setting::get('company_facebook'), 'linkedin' => \App\Models\Setting::get('company_linkedin'), ]; $view->with([ 'activePages' => $activePagesSlugs, 'customPages' => $customPages, 'activeGalleries' => $activeGalleries, 'galleryCategories' => $galleryCategories, 'activeGalleryCategories' => $activeGalleryCategories, 'company' => (object)$company, 'whatsapp_enabled' => $this->checkWhatsappAvailability() ]); }); } /** * Check if the WhatsApp button should be visible based on schedule. */ private function checkWhatsappAvailability(): bool { if (\App\Models\Setting::get('whatsapp_floating_button') !== 'on') { return false; } $now = now(); $currentTime = $now->format('H:i'); $startTime = \App\Models\Setting::get('whatsapp_start_time', '08:00'); $endTime = \App\Models\Setting::get('whatsapp_end_time', '18:00'); $lunchStart = \App\Models\Setting::get('whatsapp_lunch_start'); $lunchEnd = \App\Models\Setting::get('whatsapp_lunch_end'); // Outside business hours if ($currentTime < $startTime || $currentTime > $endTime) { return false; } // If lunch break is configured if ($lunchStart && $lunchEnd) { if ($currentTime >= $lunchStart && $currentTime <= $lunchEnd) { return false; } } return true; } }