Как узнать время, когда большинство пользователей доступны?

У меня есть идея для проекта, но у меня возникают проблемы с ее началом.

Будет приложение (возможно, реагирующее на родную), где пользователи могут зарегистрироваться. Все просто Затем пользователь добавляет временные интервалы для их доступности. Как, например, они вводят 26.05.2018 с 11:00 до 23:00 и 26.05.2018 с 18:00 до 19:00. Теперь приложение отправляет временные интервалы в firebase.

Как вы сравниваете временные интервалы / окна и находите совпадения для многих пользователей и временных окон?

Я нашел date-fns, который позволит легко проверить, перекрывает ли данный диапазон дат другой диапазон дат.

Проблема в том, что будет много пользователей, и у каждого пользователя много временных диапазонов. Я хочу найти временные диапазоны, в которых доступно большинство пользователей. Поэтому мне пришлось использовать функцию areRangesOverlapping для date-fns бесчисленное количество раз и снова, если новые пользователи добавляют или изменяют свои временные окна.

И если в начале не обнаруживаются перекрывающиеся временные диапазоны от других пользователей, это должно быть похоже на службу, работающую в бэкэнде, которая отправляет push-уведомление, если обнаружены новые совпадения временного диапазона.

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

0 ответов

Другие вопросы по тегам