Сервер BOOCO Meteor (v 1.x) / Примеры правил бронирования
Проверка на наличие конфликта с другим бронированием того же ресурса
◼ Проверка наличия у пользователя бронирований других ресурсов
Проверка на бронирование ресурса другим пользователем
Проверка на частоту бронирования ресурса
Описание
Правило не разрешает пользователю бронировать ресурс, если он уже забронировал другой ресурс.
Принцип работы
Система выполняет поиск всех бронирований, созданных пользователем (исключая выбранный ресурс ({ "$expr": { "$ne": [ "$_id", "$newEvent._id"] } }
), которые пересекаются по времени. Если система находит такие бронирования, то отображается сообщение о конфликте с указанием имени забронированного ресурса.
Пример использования
[
{
"$match": {
"$and": [
{ "removed": { "$ne": true } },
{ "$expr": { "$ne": [ "$_id", "$newEvent._id"] } },
{ "$expr": { "$eq": [ "$venueType", "$newEvent.venueType"] } },
{ "$expr": { "$eq": [ "$organizer", "$newEvent.organizer"] } },
{ "$expr": { "$lt": [ "$start", "$newEvent.end"] } },
{ "$expr": { "$gt": [ "$end", "$newEvent.start"] } }
]
}
},
{
"$addFields": {
"message": { "$concat": ["У вас уже забронировано: ", "$venueName"] }
}
}
]