diff --git a/app/Classes/Calendly.php b/app/Classes/Calendly.php index 4a7a3da..e1617e6 100644 --- a/app/Classes/Calendly.php +++ b/app/Classes/Calendly.php @@ -9,6 +9,9 @@ use Exception; use GuzzleHttp\Client; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Log; +use GuzzleHttp\HandlerStack; +use Kevinrob\GuzzleCache\CacheMiddleware; +use Kevinrob\GuzzleCache\Strategy\GreedyCacheStrategy; class Calendly { @@ -117,6 +120,24 @@ class Calendly return false; } } + public function getUserSlug() + { + // 1. Call the /users/me API to get user information + $client = new Client(); + try { + $response = $client->request('GET', 'https://api.calendly.com/users/me', [ + 'headers' => [ + 'Authorization' => 'Bearer ' . $this->accessToken(), + 'Content-Type' => 'application/json', + ] + ]); + + $data = json_decode($response->getBody(), true); + return $userUri = $data['resource']['slug']; + } catch (\Exception $e) { + return false; + } + } public function eventTypes() { // 1. Call the /users/me API to get user information @@ -145,7 +166,89 @@ class Calendly $setting->save(); } - function getAvailableDates($even_type_url, $month, $tz = "UTC") + function mapTimezone($tz){ + $timezone_maping = [ + "PST"=> "America/Los_Angeles", + "EST"=> "America/New_York", + "CST"=> "America/Chicago", + "MST"=> "America/Denver", + "PST"=> "America/Los_Angeles", + "AST"=> "America/Halifax", + ]; + return data_get($timezone_maping, $tz, $tz); + } + + function getAvailableDates($even_type_url, $month, $tz = "UTC"){ + $user_slug = $this->getUserSlug(); + //https://calendly.com/api/booking/event_types/lookup?event_type_slug=15-minute&profile_slug=vini-peptidewebmd + //https://api.calendly.com/event_types/527074d7-c194-419a-9575-60de51220a8e/calendar/range?timezone=America/Chicago&diagnostics=false&range_start=2024-10-01&range_end=2024-10-31&scheduling_link_uuid=cmm8-rtf-7q6 + //https://calendly.com/api/booking/event_types/527074d7-c194-419a-9575-60de51220a8e/calendar/range?timezone=Asia%2FKarachi&diagnostics=false&range_start=2024-10-26&range_end=2024-10-31&scheduling_link_uuid=cmm8-rtf-7q6 + // $user_slug = explode('/', $userUri)[4]; + $client = new Client(); + + + $response = $client->request('GET', $even_type_url, [ + 'headers' => [ + 'Authorization' => 'Bearer ' . $this->accessToken(), + 'Content-Type' => 'application/json', + ], + // 'query' => $queryParams + ]); + $event = json_decode($response->getBody(), true); + $web_event = json_decode($this->makeRequest("https://calendly.com/api/booking/event_types/lookup?event_type_slug={$event['resource']['slug']}&profile_slug={$user_slug}"),true); + // var_Dump("https://calendly.com/api/booking/event_types/lookup?event_type_slug={$event['resource']['slug']}&profile_slug={$user_slug}"); + $event_slug = data_get($web_event,"uuid"); + // $eventDetails = json_decode($this->makeRequest($eventDetailsUrl)); + // $eventDetailsUrl = "https://calendly.com/api/booking/event_types/lookup?event_type_slug=$event_type&profile_slug=$owner_id"; + $current_month = Carbon::now()->month; + $current_date = Carbon::now()->day; + $timezone = $this->mapTimezone($tz); + // if ($month == $current_month && $current_date > 15) {} + $date = Carbon::createFromDate(Carbon::now()->year, $month, 1); + // $start_date = Carbon::now()->startOfMonth()->tz("UTC"); + $start_date = $date->startOfMonth()->format('Y-m-d'); + $end_date = $date->endOfMonth()->format('Y-m-d'); + $uid = data_get($web_event,"scheduling_link.uid"); + $url = "https://calendly.com/api/booking/event_types/{$event_slug}/calendar/range?timezone=$timezone&diagnostics=false&range_start=$start_date&range_end=$end_date&scheduling_link_uuid={$uid}"; + $response = $client->request('GET', $url, [ + 'headers' => [ + 'Authorization' => 'Bearer ' . $this->accessToken(), + 'Content-Type' => 'application/json', + ], + ]); + + $eventDetails = json_decode($this->makeRequest($url),true); + $availableSlots = []; + foreach ($eventDetails['days'] as $_event) { + if($_event['status'] == 'available') { + $slots = [ + // 'date' => $event['date'], + + ]; + foreach ($_event['spots'] as $slot) { + if($slot['status'] == 'available'){ + $slotDateTime = Carbon::parse($slot['start_time'])->tz($timezone); + $slot['formatted_datetime'] = $slotDateTime->format('Y-m-d g:i:00'); + $slot['scheduling_url'] = "https://calendly.com/$user_slug/{$event['resource']['slug']}/{$slot['start_time']}"; + } + $slots[] = $slot; + } + $availableSlots[$_event['date']] = $slots; + } + } + + // var_dump($eventDetails); + return $availableSlots; + + } + function getAvailableDatesOld($even_type_url, $month, $tz = "UTC") + { + $cacheKey = $even_type_url . $month . $tz; + return Cache::remember($cacheKey, now()->addMinutes(2), function () use ($even_type_url, $month, $tz) { + return $this->getAvailableDates2($even_type_url, $month, $tz); + }); + } + function getAvailableDates2($even_type_url, $month, $tz = "UTC") { try { @@ -161,7 +264,6 @@ class Calendly $start_time = $date->startOfDay()->format('Y-m-d\T24:00:00.000000\Z'); $end_time = $date->addDays(7)->endOfDay()->format('Y-m-d\T24:00:00.000000\Z'); - $client = new Client(); try { @@ -172,6 +274,7 @@ class Calendly 'start_time' => $start_time, 'end_time' => $end_time ]; + // dd($queryParams); $str = "event_type=" . urlencode($queryParams['event_type']) . "&" . "start_time=" . urlencode($queryParams['start_time']) . "&" . "end_time=" . urlencode($queryParams['end_time']); $eventTypeUrl = $eventTypeUrl . "?" . ($str); // Send the request to Calendly @@ -252,12 +355,15 @@ class Calendly function getCrfToken($url) { - $response = $this->makeRequest($url); - - // var_dump($response); - // - preg_match('//', $response, $matches); - return $matches[1]; + try { + $response = $this->makeRequest($url); + preg_match('//', $response, $matches); + return $matches[1]; + } catch (Exception $e) { + $response = $this->makeRequest($url); + preg_match('//', $response, $matches); + return $matches[1]; + } } function getEventDetails($url) @@ -284,14 +390,16 @@ class Calendly $bookingDate = $url_parts[5]; $event_type = $url_parts[4]; $owner_id = $url_parts[3]; - $eventDetailsUrl = "https://calendly.com/api/booking/profiles/$owner_id/event_types/$event_type"; + $eventDetailsUrl = "https://calendly.com/api/booking/event_types/lookup?event_type_slug=$event_type&profile_slug=$owner_id"; $eventDetails = json_decode($this->makeRequest($eventDetailsUrl)); // var_dump($eventDetails); $crfToken = $this->getCrfToken($url); - - $eventUuid = $eventDetails->uuid; - $link_uuid = $eventDetails->scheduling_link->uid; - $custom_fields_id = $eventDetails->custom_fields[0]->id; + $timezone = $this->mapTimezone($timezone); + // $eventUuid = $eventDetails->uuid; + $eventUuid = data_get($eventDetails, 'eventDetails.uid'); + $link_uuid = data_get($eventDetails, 'scheduling_link.uid'); + // $custom_fields_id = $eventDetails->custom_fields[0]->id; + $custom_fields_id = data_get($eventDetails, 'custom_fields.0.id'); $booking_request_id = urlencode($this->generateRandomString(36) . "|$bookingDate|$eventUuid|$name"); //convert to php array $bookingData = [ @@ -305,14 +413,14 @@ class Calendly "booking_flow" => "v3", "seconds_to_convert" => 200 ], - "embed" => [], + "embed" => (object)[], "event" => [ "start_time" => $bookingDate, - "location_configuration" => [ + "location_configuration" => data_get($eventDetails,"location_configurations.0",[ "location" => "", "phone_number" => "", "additional_info" => "" - ], + ]), "guests" => [] ], "event_fields" => [ @@ -333,7 +441,7 @@ class Calendly "full_name" => $name, "email" => $email ], - "payment_token" => [], + "payment_token" => (object)[], "tracking" => [ "fingerprint" => $this->generateRandomString(32) ], diff --git a/app/Http/Controllers/PatientController.php b/app/Http/Controllers/PatientController.php index 90cca54..65e348a 100644 --- a/app/Http/Controllers/PatientController.php +++ b/app/Http/Controllers/PatientController.php @@ -1769,7 +1769,6 @@ class PatientController extends Controller $categorySave->category_name = $category_name[$key]; $categorySave->save(); } - ProductCategory::create([ 'product_id' => $product_id, 'category_id' => $cat_id diff --git a/app/Listeners/SendAppointmentBookedEmail.php b/app/Listeners/SendAppointmentBookedEmail.php index 78ec2db..94b196e 100644 --- a/app/Listeners/SendAppointmentBookedEmail.php +++ b/app/Listeners/SendAppointmentBookedEmail.php @@ -43,5 +43,13 @@ class SendAppointmentBookedEmail implements ShouldQueue $message->to($patient->email, $patient->first_name) ->subject('Appointment Booked.'); }); + Mail::send('emails.appointmentBooked', [ + 'patient' => $patient, + 'appointment' => $appointment, + 'setting' => $setting + ], function ($message) use ($patient) { + $message->to(ENV('ADMIN_EMAIL'), $patient->first_name) + ->subject('Appointment Booked.'); + }); } } diff --git a/app/Listeners/SendPaymentProcessedEmail.php b/app/Listeners/SendPaymentProcessedEmail.php index c8540fe..3963598 100644 --- a/app/Listeners/SendPaymentProcessedEmail.php +++ b/app/Listeners/SendPaymentProcessedEmail.php @@ -28,5 +28,9 @@ class SendPaymentProcessedEmail implements ShouldQueue $message->to($patient->email, $patient->first_name) ->subject('Payment Processed Successfully.'); }); + Mail::send('emails.process-payment', [], function ($message) { + $message->to(ENV('ADMIN_EMAIL'), "Awais") + ->subject('Payment Processed Successfully.'); + }); } } diff --git a/composer.json b/composer.json index 95adece..05c564a 100644 --- a/composer.json +++ b/composer.json @@ -12,6 +12,7 @@ "agence104/livekit-server-sdk": "^1.2", "fakerphp/faker": "^1.23", "guzzlehttp/guzzle": "^7.2", + "kevinrob/guzzle-cache-middleware": "^5.1", "laravel/framework": "^10.10", "laravel/sanctum": "^3.2", "laravel/tinker": "^2.8", diff --git a/composer.lock b/composer.lock index bf6f077..f4ff95f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ef6cab73e6119be26c66ac2906eef800", + "content-hash": "1302f567ac93a1fe133298b2a9441d06", "packages": [ { "name": "agence104/livekit-server-sdk", @@ -1397,6 +1397,91 @@ ], "time": "2023-12-03T19:50:20+00:00" }, + { + "name": "kevinrob/guzzle-cache-middleware", + "version": "v5.1.0", + "source": { + "type": "git", + "url": "https://github.com/Kevinrob/guzzle-cache-middleware.git", + "reference": "6bd64dbbe5155107d84a0f67140a8822a709c6d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Kevinrob/guzzle-cache-middleware/zipball/6bd64dbbe5155107d84a0f67140a8822a709c6d0", + "reference": "6bd64dbbe5155107d84a0f67140a8822a709c6d0", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^6.0 || ^7.0", + "guzzlehttp/promises": "^1.4 || ^2.0", + "guzzlehttp/psr7": "^1.7.0 || ^2.0.0", + "php": ">=7.2.0" + }, + "require-dev": { + "cache/array-adapter": "^0.4 || ^0.5 || ^1.0", + "cache/simple-cache-bridge": "^0.1 || ^1.0", + "doctrine/cache": "^1.10", + "illuminate/cache": "^5.0", + "league/flysystem": "^2.5", + "phpunit/phpunit": "^8.5.15 || ^9.5", + "psr/cache": "^1.0", + "symfony/cache": "^4.4 || ^5.0", + "symfony/phpunit-bridge": "^4.4 || ^5.0" + }, + "suggest": { + "doctrine/cache": "This library has a lot of ready-to-use cache storage (to be used with Kevinrob\\GuzzleCache\\Storage\\DoctrineCacheStorage). Use only versions >=1.4.0 < 2.0.0", + "guzzlehttp/guzzle": "For using this library. It was created for Guzzle6 (but you can use it with any PSR-7 HTTP client).", + "laravel/framework": "To be used with Kevinrob\\GuzzleCache\\Storage\\LaravelCacheStorage", + "league/flysystem": "To be used with Kevinrob\\GuzzleCache\\Storage\\FlysystemStorage", + "psr/cache": "To be used with Kevinrob\\GuzzleCache\\Storage\\Psr6CacheStorage", + "psr/simple-cache": "To be used with Kevinrob\\GuzzleCache\\Storage\\Psr16CacheStorage" + }, + "type": "library", + "autoload": { + "psr-4": { + "Kevinrob\\GuzzleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kevin Robatel", + "email": "kevinrob2@gmail.com", + "homepage": "https://github.com/Kevinrob" + } + ], + "description": "A HTTP/1.1 Cache for Guzzle 6. It's a simple Middleware to be added in the HandlerStack. (RFC 7234)", + "homepage": "https://github.com/Kevinrob/guzzle-cache-middleware", + "keywords": [ + "Etag", + "Flysystem", + "Guzzle", + "cache", + "cache-control", + "doctrine", + "expiration", + "guzzle6", + "handler", + "http", + "http 1.1", + "middleware", + "performance", + "php", + "promise", + "psr6", + "psr7", + "rfc7234", + "validation" + ], + "support": { + "issues": "https://github.com/Kevinrob/guzzle-cache-middleware/issues", + "source": "https://github.com/Kevinrob/guzzle-cache-middleware/tree/v5.1.0" + }, + "time": "2023-11-09T06:53:45+00:00" + }, { "name": "laravel/framework", "version": "v10.48.12", diff --git a/public/product/test.png b/public/product/test.png new file mode 100644 index 0000000..5581322 Binary files /dev/null and b/public/product/test.png differ diff --git a/public/product/testTest.png b/public/product/testTest.png new file mode 100644 index 0000000..5581322 Binary files /dev/null and b/public/product/testTest.png differ diff --git a/resources/js/@iconify/icons-bundle.js b/resources/js/@iconify/icons-bundle.js index cdde5ab..b99d5cd 100644 --- a/resources/js/@iconify/icons-bundle.js +++ b/resources/js/@iconify/icons-bundle.js @@ -4,4 +4,4 @@ addCollection({"prefix":"bx","icons":{"abacus":{"body":""},"adjust":{"body":""},"adjust-alt":{"body":""},"alarm":{"body":""},"alarm-add":{"body":""},"alarm-exclamation":{"body":""},"alarm-off":{"body":""},"alarm-snooze":{"body":""},"album":{"body":""},"ambulance":{"body":""},"analyse":{"body":""},"angry":{"body":""},"arch":{"body":""},"archive":{"body":""},"archive-in":{"body":""},"archive-out":{"body":""},"area":{"body":""},"arrow-from-bottom":{"body":""},"arrow-from-left":{"body":""},"arrow-from-right":{"body":""},"arrow-from-top":{"body":""},"arrow-to-bottom":{"body":""},"arrow-to-left":{"body":""},"arrow-to-right":{"body":""},"arrow-to-top":{"body":""},"award":{"body":""},"baby-carriage":{"body":""},"backpack":{"body":""},"badge":{"body":""},"badge-check":{"body":""},"badge-dollar":{"body":""},"baguette":{"body":""},"ball":{"body":""},"balloon":{"body":""},"band-aid":{"body":""},"bank":{"body":""},"bar-chart-alt-2":{"body":""},"bar-chart-square":{"body":""},"barcode":{"body":""},"baseball":{"body":""},"basket":{"body":""},"basketball":{"body":""},"bath":{"body":""},"battery":{"body":""},"battery-charging":{"body":""},"battery-full":{"body":""},"battery-low":{"body":""},"bed":{"body":""},"been-here":{"body":""},"beer":{"body":""},"bell":{"body":""},"bell-minus":{"body":""},"bell-off":{"body":""},"bell-plus":{"body":""},"bell-ring":{"body":""},"bible":{"body":""},"binoculars":{"body":""},"blanket":{"body":""},"bolt":{"body":""},"bolt-circle":{"body":""},"bomb":{"body":""},"bone":{"body":""},"bong":{"body":""},"book":{"body":""},"book-add":{"body":""},"book-alt":{"body":""},"book-bookmark":{"body":""},"book-content":{"body":""},"book-heart":{"body":""},"book-open":{"body":""},"book-reader":{"body":""},"bookmark":{"body":""},"bookmark-alt":{"body":""},"bookmark-alt-minus":{"body":""},"bookmark-alt-plus":{"body":""},"bookmark-heart":{"body":""},"bookmark-minus":{"body":""},"bookmark-plus":{"body":""},"bookmark-star":{"body":""},"bookmarks":{"body":""},"bot":{"body":""},"bowl-hot":{"body":""},"bowl-rice":{"body":""},"bowling-ball":{"body":""},"box":{"body":""},"brain":{"body":""},"briefcase":{"body":""},"briefcase-alt":{"body":""},"briefcase-alt-2":{"body":""},"brightness":{"body":""},"brightness-half":{"body":""},"brush":{"body":""},"brush-alt":{"body":""},"bug":{"body":""},"bug-alt":{"body":""},"building":{"body":""},"building-house":{"body":""},"buildings":{"body":""},"bulb":{"body":""},"bullseye":{"body":""},"buoy":{"body":""},"bus":{"body":""},"bus-school":{"body":""},"business":{"body":""},"cabinet":{"body":""},"cable-car":{"body":""},"cake":{"body":""},"calculator":{"body":""},"calendar":{"body":""},"calendar-alt":{"body":""},"calendar-check":{"body":""},"calendar-edit":{"body":""},"calendar-event":{"body":""},"calendar-exclamation":{"body":""},"calendar-heart":{"body":""},"calendar-minus":{"body":""},"calendar-plus":{"body":""},"calendar-star":{"body":""},"calendar-week":{"body":""},"calendar-x":{"body":""},"camera":{"body":""},"camera-home":{"body":""},"camera-movie":{"body":""},"camera-off":{"body":""},"camera-plus":{"body":""},"capsule":{"body":""},"captions":{"body":""},"car":{"body":""},"car-battery":{"body":""},"car-crash":{"body":""},"car-garage":{"body":""},"car-mechanic":{"body":""},"car-wash":{"body":""},"card":{"body":""},"caret-down-circle":{"body":""},"caret-down-square":{"body":""},"caret-left-circle":{"body":""},"caret-left-square":{"body":""},"caret-right-circle":{"body":""},"caret-right-square":{"body":""},"caret-up-circle":{"body":""},"caret-up-square":{"body":""},"carousel":{"body":""},"cart":{"body":""},"cart-add":{"body":""},"cart-alt":{"body":""},"cart-download":{"body":""},"castle":{"body":""},"cat":{"body":""},"category":{"body":""},"category-alt":{"body":""},"cctv":{"body":""},"certification":{"body":""},"chalkboard":{"body":""},"chart":{"body":""},"chat":{"body":""},"check-circle":{"body":""},"check-shield":{"body":""},"check-square":{"body":""},"checkbox":{"body":""},"checkbox-checked":{"body":""},"checkbox-minus":{"body":""},"cheese":{"body":""},"chess":{"body":""},"chevron-down":{"body":""},"chevron-down-circle":{"body":""},"chevron-down-square":{"body":""},"chevron-left":{"body":""},"chevron-left-circle":{"body":""},"chevron-left-square":{"body":""},"chevron-right":{"body":""},"chevron-right-circle":{"body":""},"chevron-right-square":{"body":""},"chevron-up":{"body":""},"chevron-up-circle":{"body":""},"chevron-up-square":{"body":""},"chevrons-down":{"body":""},"chevrons-left":{"body":""},"chevrons-right":{"body":""},"chevrons-up":{"body":""},"chip":{"body":""},"church":{"body":""},"circle":{"body":""},"circle-half":{"body":""},"circle-quarter":{"body":""},"circle-three-quarter":{"body":""},"city":{"body":""},"clinic":{"body":""},"cloud":{"body":""},"cloud-download":{"body":""},"cloud-lightning":{"body":""},"cloud-rain":{"body":""},"cloud-upload":{"body":""},"coffee":{"body":""},"coffee-alt":{"body":""},"coffee-bean":{"body":""},"coffee-togo":{"body":""},"cog":{"body":""},"coin":{"body":""},"coin-stack":{"body":""},"collection":{"body":""},"color":{"body":""},"color-fill":{"body":""},"comment":{"body":""},"comment-add":{"body":""},"comment-check":{"body":""},"comment-detail":{"body":""},"comment-dots":{"body":""},"comment-edit":{"body":""},"comment-error":{"body":""},"comment-minus":{"body":""},"comment-x":{"body":""},"compass":{"body":""},"component":{"body":""},"confused":{"body":""},"contact":{"body":""},"conversation":{"body":""},"cookie":{"body":""},"cool":{"body":""},"copy":{"body":""},"copy-alt":{"body":""},"copyright":{"body":""},"coupon":{"body":""},"credit-card":{"body":""},"credit-card-alt":{"body":""},"credit-card-front":{"body":""},"cricket-ball":{"body":""},"crop":{"body":""},"crown":{"body":""},"cube":{"body":""},"cube-alt":{"body":""},"cuboid":{"body":""},"customize":{"body":""},"cylinder":{"body":""},"dashboard":{"body":""},"data":{"body":""},"detail":{"body":""},"devices":{"body":""},"diamond":{"body":""},"dice-1":{"body":""},"dice-2":{"body":""},"dice-3":{"body":""},"dice-4":{"body":""},"dice-5":{"body":""},"dice-6":{"body":""},"direction-left":{"body":""},"direction-right":{"body":""},"directions":{"body":""},"disc":{"body":""},"discount":{"body":""},"dish":{"body":""},"dislike":{"body":""},"dizzy":{"body":""},"dock-bottom":{"body":""},"dock-left":{"body":""},"dock-right":{"body":""},"dock-top":{"body":""},"dog":{"body":""},"dollar-circle":{"body":""},"donate-blood":{"body":""},"donate-heart":{"body":""},"door-open":{"body":""},"doughnut-chart":{"body":""},"down-arrow":{"body":""},"down-arrow-alt":{"body":""},"down-arrow-circle":{"body":""},"down-arrow-square":{"body":""},"download":{"body":""},"downvote":{"body":""},"drink":{"body":""},"droplet":{"body":""},"droplet-half":{"body":""},"dryer":{"body":""},"duplicate":{"body":""},"edit":{"body":""},"edit-alt":{"body":""},"edit-location":{"body":""},"eject":{"body":""},"envelope":{"body":""},"envelope-open":{"body":""},"eraser":{"body":""},"error":{"body":""},"error-alt":{"body":""},"error-circle":{"body":""},"ev-station":{"body":""},"exit":{"body":""},"extension":{"body":""},"eyedropper":{"body":""},"face":{"body":""},"face-mask":{"body":""},"factory":{"body":""},"fast-forward-circle":{"body":""},"file":{"body":""},"file-archive":{"body":""},"file-blank":{"body":""},"file-css":{"body":""},"file-doc":{"body":""},"file-export":{"body":""},"file-find":{"body":""},"file-gif":{"body":""},"file-html":{"body":""},"file-image":{"body":""},"file-import":{"body":""},"file-jpg":{"body":""},"file-js":{"body":""},"file-json":{"body":""},"file-md":{"body":""},"file-pdf":{"body":""},"file-plus":{"body":""},"file-png":{"body":""},"file-txt":{"body":""},"film":{"body":""},"filter-alt":{"body":""},"first-aid":{"body":""},"flag":{"body":""},"flag-alt":{"body":""},"flag-checkered":{"body":""},"flame":{"body":""},"flask":{"body":""},"florist":{"body":""},"folder":{"body":""},"folder-minus":{"body":""},"folder-open":{"body":""},"folder-plus":{"body":""},"food-menu":{"body":""},"fridge":{"body":""},"game":{"body":""},"gas-pump":{"body":""},"ghost":{"body":""},"gift":{"body":""},"graduation":{"body":""},"grid":{"body":""},"grid-alt":{"body":""},"group":{"body":""},"guitar-amp":{"body":""},"hand":{"body":""},"hand-down":{"body":""},"hand-left":{"body":""},"hand-right":{"body":""},"hand-up":{"body":""},"happy":{"body":""},"happy-alt":{"body":""},"happy-beaming":{"body":""},"happy-heart-eyes":{"body":""},"hard-hat":{"body":""},"hdd":{"body":""},"heart":{"body":""},"heart-circle":{"body":""},"heart-square":{"body":""},"help-circle":{"body":""},"hide":{"body":""},"home":{"body":""},"home-alt-2":{"body":""},"home-circle":{"body":""},"home-heart":{"body":""},"home-smile":{"body":""},"hot":{"body":""},"hotel":{"body":""},"hourglass":{"body":""},"hourglass-bottom":{"body":""},"hourglass-top":{"body":""},"id-card":{"body":""},"image":{"body":""},"image-add":{"body":""},"image-alt":{"body":""},"inbox":{"body":""},"info-circle":{"body":""},"info-square":{"body":""},"injection":{"body":""},"institution":{"body":""},"invader":{"body":""},"joystick":{"body":""},"joystick-alt":{"body":""},"joystick-button":{"body":""},"key":{"body":""},"keyboard":{"body":""},"label":{"body":""},"landmark":{"body":""},"landscape":{"body":""},"laugh":{"body":""},"layer":{"body":""},"layer-minus":{"body":""},"layer-plus":{"body":""},"layout":{"body":""},"leaf":{"body":""},"left-arrow":{"body":""},"left-arrow-alt":{"body":""},"left-arrow-circle":{"body":""},"left-arrow-square":{"body":""},"left-down-arrow-circle":{"body":""},"left-top-arrow-circle":{"body":""},"lemon":{"body":""},"like":{"body":""},"location-plus":{"body":""},"lock":{"body":""},"lock-alt":{"body":""},"lock-open":{"body":""},"lock-open-alt":{"body":""},"log-in":{"body":""},"log-in-circle":{"body":""},"log-out":{"body":""},"log-out-circle":{"body":""},"low-vision":{"body":""},"magic-wand":{"body":""},"magnet":{"body":""},"map":{"body":""},"map-alt":{"body":""},"map-pin":{"body":""},"mask":{"body":""},"medal":{"body":""},"megaphone":{"body":""},"meh":{"body":""},"meh-alt":{"body":""},"meh-blank":{"body":""},"memory-card":{"body":""},"message":{"body":""},"message-add":{"body":""},"message-alt":{"body":""},"message-alt-add":{"body":""},"message-alt-check":{"body":""},"message-alt-detail":{"body":""},"message-alt-dots":{"body":""},"message-alt-edit":{"body":""},"message-alt-error":{"body":""},"message-alt-minus":{"body":""},"message-alt-x":{"body":""},"message-check":{"body":""},"message-detail":{"body":""},"message-dots":{"body":""},"message-edit":{"body":""},"message-error":{"body":""},"message-minus":{"body":""},"message-rounded":{"body":""},"message-rounded-add":{"body":""},"message-rounded-check":{"body":""},"message-rounded-detail":{"body":""},"message-rounded-dots":{"body":""},"message-rounded-edit":{"body":""},"message-rounded-error":{"body":""},"message-rounded-minus":{"body":""},"message-rounded-x":{"body":""},"message-square":{"body":""},"message-square-add":{"body":""},"message-square-check":{"body":""},"message-square-detail":{"body":""},"message-square-dots":{"body":""},"message-square-edit":{"body":""},"message-square-error":{"body":""},"message-square-minus":{"body":""},"message-square-x":{"body":""},"message-x":{"body":""},"meteor":{"body":""},"microchip":{"body":""},"microphone":{"body":""},"microphone-alt":{"body":""},"microphone-off":{"body":""},"minus-circle":{"body":""},"minus-square":{"body":""},"mobile":{"body":""},"mobile-vibration":{"body":""},"moon":{"body":""},"mouse":{"body":""},"mouse-alt":{"body":""},"movie":{"body":""},"movie-play":{"body":""},"music":{"body":""},"navigation":{"body":""},"network-chart":{"body":""},"news":{"body":""},"no-entry":{"body":""},"note":{"body":""},"notepad":{"body":""},"notification":{"body":""},"notification-off":{"body":""},"objects-horizontal-center":{"body":""},"objects-horizontal-left":{"body":""},"objects-horizontal-right":{"body":""},"objects-vertical-bottom":{"body":""},"objects-vertical-center":{"body":""},"objects-vertical-top":{"body":""},"offer":{"body":""},"package":{"body":""},"paint":{"body":""},"paint-roll":{"body":""},"palette":{"body":""},"paper-plane":{"body":""},"parking":{"body":""},"party":{"body":""},"paste":{"body":""},"pear":{"body":""},"pen":{"body":""},"pencil":{"body":""},"phone":{"body":""},"phone-call":{"body":""},"phone-incoming":{"body":""},"phone-off":{"body":""},"phone-outgoing":{"body":""},"photo-album":{"body":""},"piano":{"body":""},"pie-chart":{"body":""},"pie-chart-alt":{"body":""},"pie-chart-alt-2":{"body":""},"pin":{"body":""},"pizza":{"body":""},"plane":{"body":""},"plane-alt":{"body":""},"plane-land":{"body":""},"plane-take-off":{"body":""},"planet":{"body":""},"playlist":{"body":""},"plug":{"body":""},"plus-circle":{"body":""},"plus-square":{"body":""},"pointer":{"body":""},"polygon":{"body":""},"popsicle":{"body":""},"printer":{"body":""},"purchase-tag":{"body":""},"purchase-tag-alt":{"body":""},"pyramid":{"body":""},"quote-alt-left":{"body":""},"quote-alt-right":{"body":""},"quote-left":{"body":""},"quote-right":{"body":""},"quote-single-left":{"body":""},"quote-single-right":{"body":""},"radiation":{"body":""},"radio":{"body":""},"receipt":{"body":""},"rectangle":{"body":""},"registered":{"body":""},"rename":{"body":""},"report":{"body":""},"rewind-circle":{"body":""},"right-arrow":{"body":""},"right-arrow-alt":{"body":""},"right-arrow-circle":{"body":""},"right-arrow-square":{"body":""},"right-down-arrow-circle":{"body":""},"right-top-arrow-circle":{"body":""},"rocket":{"body":""},"ruler":{"body":""},"sad":{"body":""},"save":{"body":""},"school":{"body":""},"search":{"body":""},"search-alt-2":{"body":""},"select-multiple":{"body":""},"send":{"body":""},"server":{"body":""},"shapes":{"body":""},"share":{"body":""},"share-alt":{"body":""},"shield":{"body":""},"shield-alt-2":{"body":""},"shield-minus":{"body":""},"shield-plus":{"body":""},"shield-x":{"body":""},"ship":{"body":""},"shocked":{"body":""},"shopping-bag":{"body":""},"shopping-bag-alt":{"body":""},"shopping-bags":{"body":""},"show":{"body":""},"shower":{"body":""},"skip-next-circle":{"body":""},"skip-previous-circle":{"body":""},"skull":{"body":""},"sleepy":{"body":""},"slideshow":{"body":""},"smile":{"body":""},"sort-alt":{"body":""},"spa":{"body":""},"speaker":{"body":""},"spray-can":{"body":""},"spreadsheet":{"body":""},"square":{"body":""},"square-rounded":{"body":""},"star":{"body":""},"star-half":{"body":""},"sticker":{"body":""},"stopwatch":{"body":""},"store":{"body":""},"store-alt":{"body":""},"sun":{"body":""},"sushi":{"body":""},"t-shirt":{"body":""},"tachometer":{"body":""},"tag":{"body":""},"tag-alt":{"body":""},"tag-x":{"body":""},"taxi":{"body":""},"tennis-ball":{"body":""},"terminal":{"body":""},"thermometer":{"body":""},"time":{"body":""},"time-five":{"body":""},"timer":{"body":""},"tired":{"body":""},"to-top":{"body":""},"toggle-left":{"body":""},"toggle-right":{"body":""},"tone":{"body":""},"torch":{"body":""},"traffic":{"body":""},"traffic-barrier":{"body":""},"traffic-cone":{"body":""},"train":{"body":""},"trash":{"body":""},"trash-alt":{"body":""},"tree":{"body":""},"tree-alt":{"body":""},"trophy":{"body":""},"truck":{"body":""},"tv":{"body":""},"universal-access":{"body":""},"up-arrow":{"body":""},"up-arrow-alt":{"body":""},"up-arrow-circle":{"body":""},"up-arrow-square":{"body":""},"upside-down":{"body":""},"upvote":{"body":""},"user":{"body":""},"user-account":{"body":""},"user-badge":{"body":""},"user-check":{"body":""},"user-circle":{"body":""},"user-detail":{"body":""},"user-minus":{"body":""},"user-pin":{"body":""},"user-plus":{"body":""},"user-rectangle":{"body":""},"user-voice":{"body":""},"user-x":{"body":""},"vector":{"body":""},"vial":{"body":""},"video":{"body":""},"video-off":{"body":""},"video-plus":{"body":""},"video-recording":{"body":""},"videos":{"body":""},"virus":{"body":""},"virus-block":{"body":""},"volume":{"body":""},"volume-full":{"body":""},"volume-low":{"body":""},"volume-mute":{"body":""},"wallet":{"body":""},"wallet-alt":{"body":""},"washer":{"body":""},"watch":{"body":""},"watch-alt":{"body":""},"webcam":{"body":""},"widget":{"body":""},"window-alt":{"body":""},"wine":{"body":""},"wink-smile":{"body":""},"wink-tongue":{"body":""},"wrench":{"body":""},"x-circle":{"body":""},"x-square":{"body":""},"yin-yang":{"body":""},"zap":{"body":""},"zoom-in":{"body":""},"zoom-out":{"body":""}},"lastModified":1702311659,"width":24,"height":24}); addCollection({"prefix":"bxl","icons":{"500px":{"body":""},"99designs":{"body":""},"adobe":{"body":""},"airbnb":{"body":""},"algolia":{"body":""},"amazon":{"body":""},"android":{"body":""},"angular":{"body":""},"apple":{"body":""},"audible":{"body":""},"aws":{"body":""},"baidu":{"body":""},"behance":{"body":""},"bing":{"body":""},"bitcoin":{"body":""},"blender":{"body":""},"blogger":{"body":""},"bootstrap":{"body":""},"c-plus-plus":{"body":""},"chrome":{"body":""},"codepen":{"body":""},"creative-commons":{"body":""},"css3":{"body":""},"dailymotion":{"body":""},"deezer":{"body":""},"dev-to":{"body":""},"deviantart":{"body":""},"digg":{"body":""},"digitalocean":{"body":""},"discord":{"body":""},"discord-alt":{"body":""},"discourse":{"body":""},"django":{"body":""},"docker":{"body":""},"dribbble":{"body":""},"dropbox":{"body":""},"drupal":{"body":""},"ebay":{"body":""},"edge":{"body":""},"etsy":{"body":""},"facebook":{"body":""},"facebook-circle":{"body":""},"facebook-square":{"body":""},"figma":{"body":""},"firebase":{"body":""},"firefox":{"body":""},"flask":{"body":""},"flickr":{"body":""},"flickr-square":{"body":""},"flutter":{"body":""},"foursquare":{"body":""},"git":{"body":""},"github":{"body":""},"gitlab":{"body":""},"gmail":{"body":""},"go-lang":{"body":""},"google":{"body":""},"google-cloud":{"body":""},"google-plus":{"body":""},"google-plus-circle":{"body":""},"graphql":{"body":""},"heroku":{"body":""},"html5":{"body":""},"imdb":{"body":""},"instagram":{"body":""},"instagram-alt":{"body":""},"internet-explorer":{"body":""},"invision":{"body":""},"java":{"body":""},"javascript":{"body":""},"joomla":{"body":""},"jquery":{"body":""},"jsfiddle":{"body":""},"kickstarter":{"body":""},"kubernetes":{"body":""},"less":{"body":""},"linkedin":{"body":""},"linkedin-square":{"body":""},"magento":{"body":""},"mailchimp":{"body":""},"markdown":{"body":""},"mastercard":{"body":""},"mastodon":{"body":""},"medium":{"body":""},"medium-old":{"body":""},"medium-square":{"body":""},"messenger":{"body":""},"meta":{"body":""},"microsoft":{"body":""},"microsoft-teams":{"body":""},"mongodb":{"body":""},"netlify":{"body":""},"nodejs":{"body":""},"ok-ru":{"body":""},"opera":{"body":""},"patreon":{"body":""},"paypal":{"body":""},"periscope":{"body":""},"php":{"body":""},"pinterest":{"body":""},"pinterest-alt":{"body":""},"play-store":{"body":""},"pocket":{"body":""},"postgresql":{"body":""},"product-hunt":{"body":""},"python":{"body":""},"quora":{"body":""},"react":{"body":""},"redbubble":{"body":""},"reddit":{"body":""},"redux":{"body":""},"sass":{"body":""},"shopify":{"body":""},"sketch":{"body":""},"skype":{"body":""},"slack":{"body":""},"slack-old":{"body":""},"snapchat":{"body":""},"soundcloud":{"body":""},"spotify":{"body":""},"spring-boot":{"body":""},"squarespace":{"body":""},"stack-overflow":{"body":""},"steam":{"body":""},"stripe":{"body":""},"tailwind-css":{"body":""},"telegram":{"body":""},"tiktok":{"body":""},"trello":{"body":""},"trip-advisor":{"body":""},"tumblr":{"body":""},"tux":{"body":""},"twitch":{"body":""},"twitter":{"body":""},"typescript":{"body":""},"unity":{"body":""},"unsplash":{"body":""},"upwork":{"body":""},"venmo":{"body":""},"vimeo":{"body":""},"visa":{"body":""},"visual-studio":{"body":""},"vk":{"body":""},"vuejs":{"body":""},"whatsapp":{"body":""},"whatsapp-square":{"body":""},"wikipedia":{"body":""},"windows":{"body":""},"wix":{"body":""},"wordpress":{"body":""},"xing":{"body":""},"yahoo":{"body":""},"yelp":{"body":""},"youtube":{"body":""},"zoom":{"body":""}},"lastModified":1702311653,"width":24,"height":24}); addCollection({"prefix":"mdi","icons":{"file-remove-outline":{"body":""},"translate":{"body":""},"vuetify":{"body":""},"information-variant":{"body":""},"arrow-top-right":{"body":""},"arrow-bottom-right":{"body":""},"arrow-bottom-left":{"body":""},"arrow-top-left":{"body":""},"arrow-collapse-all":{"body":""},"arrow-down-left":{"body":""},"web":{"body":""},"cpu-32-bit":{"body":""},"alpha-r":{"body":""},"alpha-g":{"body":""},"alpha-b":{"body":""},"map-marker-off-outline":{"body":""},"alpha-t-box-outline":{"body":""},"form-select":{"body":""},"account-cog-outline":{"body":""},"laptop":{"body":""}},"lastModified":1704178618,"width":24,"height":24}); -addCollection({"prefix":"custom","lastModified":1729801217,"icons":{"checked-checkbox":{"body":""},"checked-radio":{"body":""},"indeterminate-checkbox":{"body":""},"javascript":{"body":""},"typescript":{"body":""},"unchecked-checkbox":{"body":""},"unchecked-radio":{"body":""}},"width":24,"height":24}); +addCollection({"prefix":"custom","lastModified":1729978696,"icons":{"checked-checkbox":{"body":""},"checked-radio":{"body":""},"indeterminate-checkbox":{"body":""},"javascript":{"body":""},"typescript":{"body":""},"unchecked-checkbox":{"body":""},"unchecked-radio":{"body":""}},"width":24,"height":24}); diff --git a/resources/js/@layouts/components/VerticalNav.vue b/resources/js/@layouts/components/VerticalNav.vue index f96cb21..5ef37ff 100644 --- a/resources/js/@layouts/components/VerticalNav.vue +++ b/resources/js/@layouts/components/VerticalNav.vue @@ -65,14 +65,14 @@ const handleNavScroll = evt => { - + diff --git a/resources/js/layouts/components/DefaultLayoutWithVerticalNav.vue b/resources/js/layouts/components/DefaultLayoutWithVerticalNav.vue index 2924335..e440450 100644 --- a/resources/js/layouts/components/DefaultLayoutWithVerticalNav.vue +++ b/resources/js/layouts/components/DefaultLayoutWithVerticalNav.vue @@ -146,6 +146,7 @@ const logout = () => { localStorage.removeItem("selectedSidebarMenu"); localStorage.removeItem("plan_name"); localStorage.removeItem("plan_price"); + localStorage.removeItem("getCalendlyAvailableTImes"); if (currentUser.value == "agent") { router.push("/provider/login"); } else { diff --git a/resources/js/layouts/components/Footer.vue b/resources/js/layouts/components/Footer.vue index b90a64c..218e50c 100644 --- a/resources/js/layouts/components/Footer.vue +++ b/resources/js/layouts/components/Footer.vue @@ -1,14 +1,21 @@