Skip to content

Instantly share code, notes, and snippets.

@alt-j
Last active November 3, 2023 14:40
Show Gist options
  • Save alt-j/f4dea60bad6a8774d982bc6b52184a08 to your computer and use it in GitHub Desktop.
Save alt-j/f4dea60bad6a8774d982bc6b52184a08 to your computer and use it in GitHub Desktop.
/**
* @typedef {Object} Person
* @property {String} login Идентификатор сотрудника.
* @property {Number} floor "Домашний" этаж сотрудника.
* @property {String} avatar Ссылка на аватар.
*/
/**
* @typedef {Object} Room
* @property {Number} id Идентификатор переговорки.
* @property {String} title Название переговорки.
* @property {Number} capacity Вместимость (количество человек).
* @property {Number} floor Этаж, на котором расположена переговорка.
*/
/**
* @typedef {Object} EventDate
* @property {Number} start Timestamp начала встречи.
* @property {Number} end Timestamp окончания встречи.
*/
/**
* @typedef {Object} Event
* @property {String} id Идентификатор встречи.
* @property {String} title Название встречи.
* @property {String[]} members Логины участников встречи.
* @property {EventDate} date Дата и время проведения встречи.
* @property {Number} room Идентификатор переговорки.
*/
/**
* @typedef {Object} RoomsSwap
* @property {string} event Идентификатор встречи.
* @property {String} room Новый идентификатор переговорки.
*/
/**
* @typedef {Object} Recommendation
* @property {EventDate} date Дата и время проведения встречи.
* @property {String} room Идентификатор переговорки.
* @property {RoomsSwap[]} [swap] Необходимые замены переговорк для реализации рекомендации.
*/
/**
* @param {EventDate} date Дата планируемой встречи.
* @param {Person[]} members Участники планируемой встречи.
* @param {Object} db
* @param {Event[]} db.events Список все встреч.
* @param {Room[]} db.rooms Список всех переговорок.
* @param {Person[]} db.persons Список всех сотрудников.
* @returns {Recommendation[]}
*/
function getRecommendation(date, members, db) {}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment