Проверка на наличие конфликта с другим бронированием того же ресурса

Сервер BOOCO Meteor (v 1.x) / Примеры правил бронирования

Описание

Правило:

  • позволяет проверить, есть ли у бронируемого ресурса другие бронирования, которые пересекаются по времени с новым бронированием;
  • может применяться ко всем типам ресурсов.

Принцип работы

Система выполняет поиск всех бронирований ресурса, которые пересекаются по времени с новым бронированием.

Если система находит такие бронирования, то отображается сообщение о конфликте.

Пример использования

[
  {
    "$match": {
      "$and": [
        { "removed": { "$ne": true } },
        { "$expr": { "$ne": [ "$_id", "$newEvent._id"] } },
        { "$expr": { "$eq": [ "$venueId", "$newEvent.venueId"] } },
        { "$expr": { "$lt": [ "$start", "$newEvent.end"] } },
        { "$expr": { "$gt": [ "$end", "$newEvent.start"] } }
      ]
    }
  },
  { "$limit": 1 },
  {
    "$addFields": {
      "message": "Конфликт с другим бронированием"
     }
   }
 ]