From dd631b71bb349d806550aca8419a7fd24ebe65cc Mon Sep 17 00:00:00 2001 From: Patrick Toal Date: Mon, 13 May 2024 12:42:10 -0400 Subject: [PATCH] Refactor Reservations into new store --- src/App.vue | 3 +- .../ResourceScheduleViewerComponent.vue | 6 +- .../boat/BoatScheduleTableComponent.vue | 4 +- src/pages/schedule/BoatScheduleView.vue | 6 +- src/stores/reservation.ts | 84 +++++++++++++++++++ src/stores/schedule.ts | 82 +----------------- 6 files changed, 96 insertions(+), 89 deletions(-) create mode 100644 src/stores/reservation.ts diff --git a/src/App.vue b/src/App.vue index b502525..f1d212e 100644 --- a/src/App.vue +++ b/src/App.vue @@ -7,6 +7,7 @@ import { defineComponent, onMounted } from 'vue'; import { useScheduleStore } from './stores/schedule'; import { useBoatStore } from './stores/boat'; import { useAuthStore } from './stores/auth'; +import { useReservationStore } from './stores/reservation'; defineComponent({ name: 'OYS Borrow-a-Boat', @@ -16,7 +17,7 @@ onMounted(async () => { await useAuthStore().init(); await useScheduleStore().fetchIntervalTemplates(); await useScheduleStore().fetchIntervals(); - await useScheduleStore().fetchReservations(); + await useReservationStore().fetchReservations(); await useBoatStore().fetchBoats(); }); diff --git a/src/components/ResourceScheduleViewerComponent.vue b/src/components/ResourceScheduleViewerComponent.vue index 70d6fb3..6d85056 100644 --- a/src/components/ResourceScheduleViewerComponent.vue +++ b/src/components/ResourceScheduleViewerComponent.vue @@ -114,7 +114,7 @@ import { parsed, } from '@quasar/quasar-ui-qcalendar'; import { Boat, useBoatStore } from 'src/stores/boat'; -import { useScheduleStore } from 'src/stores/schedule'; +import { useReservationStore } from 'src/stores/reservation'; import { date } from 'quasar'; import { computed } from 'vue'; import type { StatusTypes } from 'src/stores/schedule.types'; @@ -146,7 +146,7 @@ const statusLookup = { const calendar = ref(); const boatStore = useBoatStore(); -const scheduleStore = useScheduleStore(); +const reservationStore = useReservationStore(); const selectedDate = ref(today()); const duration = ref(1); @@ -172,7 +172,7 @@ function monthFormatter() { } function getEvents(scope: ResourceIntervalScope) { - const resourceEvents = scheduleStore.getBoatReservations( + const resourceEvents = reservationStore.getBoatReservations( parseDate(date.extractDate(selectedDate.value, 'YYYY-MM-DD')) as Timestamp, scope.resource.$id ); diff --git a/src/components/scheduling/boat/BoatScheduleTableComponent.vue b/src/components/scheduling/boat/BoatScheduleTableComponent.vue index cfe50d9..4ac93d2 100644 --- a/src/components/scheduling/boat/BoatScheduleTableComponent.vue +++ b/src/components/scheduling/boat/BoatScheduleTableComponent.vue @@ -79,8 +79,10 @@ import { useScheduleStore } from 'src/stores/schedule'; import { useAuthStore } from 'src/stores/auth'; import { Interval, Reservation } from 'src/stores/schedule.types'; import { storeToRefs } from 'pinia'; +import { useReservationStore } from 'src/stores/reservation'; const scheduleStore = useScheduleStore(); +const reservationStore = useReservationStore(); const { boats } = storeToRefs(useBoatStore()); const selectedBlock = defineModel(); const selectedDate = ref(today()); @@ -187,7 +189,7 @@ function getBoatBlocks(scope: DayBodyScope): Interval[] { function getBoatReservations(scope: DayBodyScope): Reservation[] { const boat = boats.value[scope.columnIndex]; return boat - ? scheduleStore.getBoatReservations(scope.timestamp, boat.$id) + ? reservationStore.getBoatReservations(scope.timestamp, boat.$id) : []; } diff --git a/src/pages/schedule/BoatScheduleView.vue b/src/pages/schedule/BoatScheduleView.vue index f550de5..13a2acd 100644 --- a/src/pages/schedule/BoatScheduleView.vue +++ b/src/pages/schedule/BoatScheduleView.vue @@ -52,10 +52,10 @@