Проверка наличия у пользователя бронирований других ресурсов

Сервер 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"] }
    }
   }
 ]