import connectDatabase from "../config/database.js"; import { ObjectId } from "mongodb"; const db = await connectDatabase(); const collection = db.collection("bookings"); export const createBooking = async (req, res) => { try { const bookingData = req.body; // Convert the owner string to ObjectId bookingData.ownerId = new ObjectId(bookingData.ownerId); bookingData.apartmentId = new ObjectId(bookingData.apartmentId); const checkInDate = new Date(bookingData.checkIn); const checkOutDate = new Date(bookingData.checkOut); const overlappingBooking = await collection.findOne({ apartmentId: bookingData.apartmentId, $or: [ { checkIn: { $lt: checkOutDate }, checkOut: { $gt: checkInDate } } ] }); if (overlappingBooking) { const start = overlappingBooking.checkIn.toISOString(); const end = overlappingBooking.checkOut.toISOString(); return res.status(405).json({ error : `This apartment is already booked from ${start} to ${end}` }); } const result = await collection.insertOne(bookingData); res.status(201).json(result); } catch (error) { console.error(error); res.status(500).json({ error: "Server error" }); } };