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