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" });
}
};