diff --git a/src/App.vue b/src/App.vue index ea4a4fa..855fff1 100644 --- a/src/App.vue +++ b/src/App.vue @@ -5,6 +5,8 @@ diff --git a/src/components/BoatReservationComponent.vue b/src/components/BoatReservationComponent.vue new file mode 100644 index 0000000..db27e48 --- /dev/null +++ b/src/components/BoatReservationComponent.vue @@ -0,0 +1,246 @@ + + + diff --git a/src/components/scheduling/ReservationCardComponent.vue b/src/components/scheduling/ReservationCardComponent.vue index ee3270e..b3ad01d 100644 --- a/src/components/scheduling/ReservationCardComponent.vue +++ b/src/components/scheduling/ReservationCardComponent.vue @@ -14,6 +14,8 @@ Start: {{ formatDate(reservation.start) }}
End: {{ formatDate(reservation.end) }} +
+ Type: {{ reservation.reason }}

@@ -50,7 +52,7 @@ + :to="{ name: 'edit-reservation', params: { id: reservation.$id } }"> Modify ({ required: true }); const cancelReservation = () => { cancelDialog.value = true; }; - -const modifyReservation = () => { - return; -}; diff --git a/src/pages/schedule/BoatReservationPage.vue b/src/pages/schedule/BoatReservationPage.vue index 095cd25..201b52c 100644 --- a/src/pages/schedule/BoatReservationPage.vue +++ b/src/pages/schedule/BoatReservationPage.vue @@ -1,217 +1,11 @@ diff --git a/src/pages/schedule/ListBookingsPage.vue b/src/pages/schedule/ListReservationsPage.vue similarity index 91% rename from src/pages/schedule/ListBookingsPage.vue rename to src/pages/schedule/ListReservationsPage.vue index 23ecec7..353d077 100644 --- a/src/pages/schedule/ListBookingsPage.vue +++ b/src/pages/schedule/ListReservationsPage.vue @@ -59,13 +59,11 @@ diff --git a/src/pages/schedule/ModifyBoatReservation.vue b/src/pages/schedule/ModifyBoatReservation.vue new file mode 100644 index 0000000..fc5ab3d --- /dev/null +++ b/src/pages/schedule/ModifyBoatReservation.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/router/routes.ts b/src/router/routes.ts index ad0e90d..9f6382b 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -42,8 +42,15 @@ const routes: RouteRecordRaw[] = [ }, { path: 'list', - component: () => import('src/pages/schedule/ListBookingsPage.vue'), - name: 'list-bookings', + component: () => + import('src/pages/schedule/ListReservationsPage.vue'), + name: 'list-reservations', + }, + { + path: 'edit/:id', + component: () => + import('src/pages/schedule/ModifyBoatReservation.vue'), + name: 'edit-reservation', }, { path: 'manage', diff --git a/src/stores/auth.ts b/src/stores/auth.ts index 79ef05a..808800c 100644 --- a/src/stores/auth.ts +++ b/src/stores/auth.ts @@ -50,7 +50,8 @@ export const useAuthStore = defineStore('auth', () => { currentUser.value = await account.get(); } - function getUserNameById(id: string) { + function getUserNameById(id: string | undefined | null): string { + if (!id) return 'No User'; try { if (!userNames.value[id]) { userNames.value[id] = ''; diff --git a/src/stores/reservation.ts b/src/stores/reservation.ts index 43da87d..a6c5b8b 100644 --- a/src/stores/reservation.ts +++ b/src/stores/reservation.ts @@ -47,6 +47,19 @@ export const useReservationStore = defineStore('reservation', () => { setDateLoaded(startDate, endDate, 'error'); } }; + const getReservationById = async (id: string) => { + try { + const response = await databases.getDocument( + AppwriteIds.databaseId, + AppwriteIds.collection.reservation, + id + ); + return response as Reservation; + } catch (error) { + console.error('Failed to fetch reservation: ', error); + } + }; + const createReservation = async (reservation: Reservation) => { try { const response = await databases.createDocument( @@ -75,7 +88,6 @@ export const useReservationStore = defineStore('reservation', () => { return false; } - console.log(id); try { await databases.deleteDocument( AppwriteIds.databaseId, @@ -203,6 +215,7 @@ export const useReservationStore = defineStore('reservation', () => { return { getReservationsByDate, + getReservationById, createReservation, deleteReservation, fetchReservationsForDateRange, diff --git a/src/stores/schedule.types.ts b/src/stores/schedule.types.ts index f0c0a24..9591264 100644 --- a/src/stores/schedule.types.ts +++ b/src/stores/schedule.types.ts @@ -10,6 +10,8 @@ export type Reservation = Partial & { status?: StatusTypes; reason: string; comment: string; + members?: string[]; + guests?: string[]; }; // 24 hrs in advance only 2 weekday, and 1 weekend slot