Supongamos que tengo una matriz muy simple como esta totalSpots = [95] y solo tiene un valor. Ahora se crea una nueva reserva y quiero asignar automáticamente 1 lugar de estacionamiento al usuario que lo reservó y reducir el valor de la matriz en 1 o lo que el usuario ingrese para hacerlo [94] or [95 - user_request_number]
A continuación se muestra la consulta para crear una reserva:
exports.createBooking = async (req, res) => { try { const user = await Auth.findOne({ _id: req.data.id }); if (!user) return res.status(404).json({ error: "User not found" }); const { parkingId, date, startTime } = req.body; const parking = await Parking.findOne({ _id: parkingId, date }); if (!parking) return res.status(404).json({ error: "Parking details not available" }); const bookingDetails = new Booking({ user, parking, startTime, duration: req.body.duration, date: moment(req.body.date).format("MMM DD, YYYY"), endTime: req.body.endTime, paymentAmount: req.body.paymentAmount, isFeePaid: req.body.isFeePaid, status: "sent", }); const save = await bookingDetails.save(); return res.status(200).json({ success: true, msg: "Service Booked", data: { details: save }, }); } catch (error) { return res.status(500).json({ error: error.message }); } };Actualmente no me estoy enfocando en tomar valores puntuales de los usuarios, pero lo haré en el futuro.
Y cuando un consumidor retira su vehículo de ese lugar, quiero aumentar un valor también, pero no más alto que los puntos totales que ha establecido el comerciante.
Estoy almacenando totalSpots como una matriz porque en el futuro el valor podría ser así totalSpots = [1, 2, 3 ...upto 95]
Creo que debe repensar su solución, si guarda esta información en una matriz, la información se guardará en la memoria, si su servidor se reinicia, perderá esta información. Debe controlar esto en la base de datos. Por ejemplo, supongamos que tenemos este comerciante:
{ id: 1, name: "Merchant 1", capacity: 50 }Y tenemos estas reservas:
{ id_merchant: 1, User: "Paul" } { id_merchant: 1, User: "John" } { id_merchant: 1, User: "mary" }Restas la capacidad comercial (50) por el recuento de reservas que tiene (3), todavía tenemos 47 espacios libres. Y agrega lógica para que el sistema no permita reservar sobre la capacidad