Сервер BOOCO Meteor (v 1.x) / Примеры правил бронирования
Проверка на наличие конфликта с другим бронированием того же ресурса
◼ Проверка наличия у пользователя бронирований других ресурсов
Проверка на бронирование ресурса другим пользователем
Проверка на частоту бронирования ресурса
Ограничение на создание нескольких бронирований подряд
Ограничение на количество бронирований в день
Загрузка файла resource-rules-default.json
на сервер BOOCO
Правило не разрешает пользователю бронировать ресурс, если он уже забронировал другой ресурс.
Система выполняет поиск всех бронирований, созданных пользователем (исключая выбранный ресурс ({ "$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"] }
}
}
]