From bc0a509c663199fb6c407f490b8daef1960f3af3 Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Wed, 11 Mar 2026 16:25:57 -0400 Subject: [PATCH] just to have --- src/helpers/service-location-helper.js | 52 ++--- src/layouts/schedule-page/schedule-page.vue | 75 +++++-- .../suggest-timeslot-modal.vue | 186 ++++++++++++++++++ 3 files changed, 279 insertions(+), 34 deletions(-) create mode 100644 src/layouts/schedule-page/suggest-timeslot-modal/suggest-timeslot-modal.vue diff --git a/src/helpers/service-location-helper.js b/src/helpers/service-location-helper.js index 72572256..13aced81 100644 --- a/src/helpers/service-location-helper.js +++ b/src/helpers/service-location-helper.js @@ -15,8 +15,23 @@ function processZipCodeResults(request) { })); } -export async function getZipCodeData(zipCode) { - return await processZipCodeResults(useMainStore().validateZip({ zip: zipCode })); +export async function getAvailabilityRating( + startDate, + endDate, + shopAppointmentType, + providerNumber +) { + // For a given shop provider number and date range, get the appointment time slots available + const shopTimeSlots = await useMainStore().getShopTimeSlots(startDate, endDate, shopAppointmentType, providerNumber); + + const numberOfDaysToEvaluate = 2; + const isGoodAvailability = + shopTimeSlots.data.days.filter((x) => x.timeSlots.length > 0).length + >= numberOfDaysToEvaluate; + + const shopStatus = isGoodAvailability ? 'high' : 'low'; + + return Promise.resolve(shopStatus); } export async function getMobileZipCodeData(zipCode) { @@ -42,25 +57,6 @@ export async function getPricedMobileFeePart(serviceZipCode) { return Promise.resolve(pricingResults[0]); } -export async function getAvailabilityRating( - startDate, - endDate, - shopAppointmentType, - providerNumber -) { - // For a given shop provider number and date range, get the appointment time slots available - const shopTimeSlots = await useMainStore().getShopTimeSlots(startDate, endDate, shopAppointmentType, providerNumber); - - const numberOfDaysToEvaluate = 2; - const isGoodAvailability = - shopTimeSlots.data.days.filter((x) => x.timeSlots.length > 0).length - >= numberOfDaysToEvaluate; - - const shopStatus = isGoodAvailability ? 'high' : 'low'; - - return Promise.resolve(shopStatus); -} - export function getProviderData() { const mainStore = useMainStore(); const storeServiceLocation = mainStore.order.serviceLocation; @@ -73,6 +69,18 @@ export function getProviderData() { return { storeServiceLocation, isMobileAppointment, storeSelectedProvider, serviceZipCode } } +export async function getZipCodeData(zipCode) { + return await processZipCodeResults(useMainStore().validateZip({ zip: zipCode })); +} + +export function mapTimeSlot(timeSlot, timeOfDay) { + return { + ...timeSlot, + isDropoff: timeSlot.id.endsWith('DROP OFF'), + timeOfDay + }; +} + export async function onProviderChanged() { const { isMobileAppointment, storeSelectedProvider, serviceZipCode } = getProviderData(); if (!storeSelectedProvider) { @@ -101,4 +109,4 @@ export async function onProviderChanged() { } await settleAllPromises(promiseResultMap); -} \ No newline at end of file +} diff --git a/src/layouts/schedule-page/schedule-page.vue b/src/layouts/schedule-page/schedule-page.vue index 610ececc..7a57cd9f 100644 --- a/src/layouts/schedule-page/schedule-page.vue +++ b/src/layouts/schedule-page/schedule-page.vue @@ -60,6 +60,9 @@ + + + \ No newline at end of file