Сервер BOOCO Meteor (v 1.x) / Настройка системы
Правила бронирования позволяют ограничить бронирование ресурсов. Например, правила проверяют:
Правила бронирования настраиваются в файле resource-rules-default.json
, который загружается на сервер BOOCO в Инструментах администратора.
Для загрузки файла resource-rules-default.json
на сервер BOOCO у пользователя admin
должно быть право create:any
для ресурса collection
.
[{
# Раздел настроек правила 1:
"_id": идентификатор правила (создается автоматически при импорте правил),
"name": #имя правила (указывается произвольно),
"type": #тип правила: "pipeline",
"collection": #название коллекции ресурсов, для которых действует правило, по умолчанию — "bookings" (бронирования),
"pipeline": #массив с правилом, копируется из инструкции с нужным примером правила бронирования,
"venueType": #тип ресурсов, для которых действует правило
},
{
# Раздел настроек правила 2:
"_id": идентификатор правила (создается автоматически при импорте правил),
"name": #имя правила (указывается произвольно),
"type": #тип правила: "pipeline",
"collection": #название коллекции ресурсов, для которых действует правило, по умолчанию — "bookings" (бронирования),
"pipeline": #массив с правилом, копируется из инструкции с нужным примером правила бронирования,
"venueType": #тип ресурсов, для которых действует правило
"disabled": #параметр, который разрешает или запрещает использование правила. Если true — правило отключено,
},
{
# Раздел настроек правила n:
...
}]
В файле resource-rules-default.json
создайте разделы настроек всех нужных правил бронирования. В каждом разделе укажите нужные значения для соответствующих типов ресурсов и правил в строках:
Строка | Возможные значения | Описание |
---|---|---|
"venueType" |
Тип ресурсов, для которого действует правило | |
“meeting-room” |
Переговорные комнаты | |
“desk” |
Рабочие места | |
“parking” |
Парковочные места | |
“nappod” |
Капсулы сна и другие ресурсы из категории Здоровье и отдых | |
"pipeline" |
Массив с правилом, копируется из инструкции примером правила бронирования | |
"name" |
Имя правила (указывается произвольно) | |
"alreadyBooked” |
Имя правила Проверка на бронирование ресурса другим пользователем | |
"NextBookingTimeout” |
Имя правила Проверка на частоту бронирования ресурса | |
"NappodTimeout” |
Имя правила Ограничение на создание нескольких бронирований подряд (для капсул сна) | |
"anotherParkingBooked” |
Имя правила Проверка наличия у пользователя бронирований других ресурсов (для парковочных мест) | |
"alreadyDeskBooked” |
Имя правила Проверка на наличие конфликта с другим бронированием того же ресурса (для рабочих мест) | |
"alreadyMeetingRoomBooked” |
Имя правила Проверка на наличие конфликта с другим бронированием того же ресурса (для переговорных комнат) | |
"NappodLimitPerDay” |
Имя правила Ограничение на количество бронирований в день (для капсул сна) |
После сохранения изменений загрузите обновленный файл resource-rules-default.json
на сервер BOOCO.
Пример с настройкой ограничения на создание нескольких бронирований капсул сна подряд:
[{
"_id": "635ea10e4a9e0fbd013a5fc9",
"name": "NappodTimeout",
"type": "pipeline",
"collection": "bookings",
"venueType": "nappod",
"pipeline": "[
{
"$addFields": {
"diff": { "$subtract": [{ "$toDate": "$newEvent.start" }, {"$toDate":
"$end" }] }
}
},
{
"$match": {
"$and": [
{ "$expr": { "$eq": ["$venueId", "$newEvent.venueId"] } },
{ "$expr": { "$eq": ["$organizer", "$newEvent.organizer"] } },
{ "$and": [{ "diff": { "$lt": 1200000 } }, { "diff": { "$gte": 0 }
}] }
]
}
},
{
"$addFields": {
"message": "Капсулу сна нельзя бронировать подряд"
}
}
]