diff --git a/src/waitingList/service.ts b/src/waitingList/service.ts index fad565a..ddda36f 100644 --- a/src/waitingList/service.ts +++ b/src/waitingList/service.ts @@ -12,6 +12,7 @@ import { RESERVATIONS_QUEUE_NAME, ReservationsQueue, } from '../reservations/config' +import { Reservation } from '../reservations/entity' import { ReservationsService } from '../reservations/service' import { WaitingListDetails } from './types' @@ -90,12 +91,25 @@ export class WaitingListService { return } + // don't book something within the ~~danger zone~~ + const now = dayjs() + const { safe, dangerous } = reservations.reduce<{ + safe: Reservation[] + dangerous: Reservation[] + }>( + (acc, res) => + now.diff(res.dateRangeStart, 'hours') > 5 + ? { safe: [...acc.safe, res], dangerous: acc.dangerous } + : { safe: acc.safe, dangerous: [...acc.dangerous, res] }, + { safe: [], dangerous: [] }, + ) + this.loggerService.debug( - `Found ${reservations.length} reservations on waiting list`, + `Found ${safe.length} safe reservations on waiting list (${dangerous.length} dangerous)`, ) await this.reservationsQueue.addBulk( - reservations.map((r) => ({ + safe.map((r) => ({ data: { reservation: r, speedyMode: false }, opts: { attempts: 1 }, })),