import { StatusEnum } from "@seed/interfaces/components"; import { SuccessResponse } from "@seed/interfaces/response"; import DB from "@seed/services/database/DBService"; import _ from "lodash"; import { DateTime } from "luxon"; import BookingModel from "../bookings/bookings.engine.model"; export class BookingCronService { async removeDrafts(): Promise { const bookings = await new BookingModel().getAll({ query:{ 'createdAt' : {"$lte": DateTime.utc().minus({minutes:30}).toJSDate()}, 'status': StatusEnum.draft, }}) bookings.forEach((element,index) => { bookings[index].status = StatusEnum.expired; }); if (bookings.length > 0) { // Move them to the other collection await (await DB.getInstance()).db.collection('bookings.archives').insertMany(bookings); const bookingIds = _.map(bookings,'_id'); await (await new BookingModel().db()).deleteMany({_id:{'$in':bookingIds}}); } return {success:true}; } }