RU All Dialogs сервіс
Проходить загальний список діалогів Chathouse або Prime до визначеної глибини й передає кожну отриману сторінку споживачам. Сам діалоги, фаворитів і таски не тримає.
Chathouse
tab='all' без is_online. Відповідь одразу містить chat і mail limits усіх RU на сторінці.
Prime
criteria=[]. Dialog snapshot містить messagesLeft, але не містить lettersLeft.
Передача даних
- останній контакт → FavoritesHistoryService;
- limits зі snapshot → FavoriteService: Chathouse chat/mail, Prime chat;
- явні blocked/unblocked значення → BlockService;
- профілі з Chathouse → RUProfileService;
- snapshots для пошуку тасків і кандидатів сендера → відповідні сервіси після фіксації їхніх алгоритмів.
Алгоритм
- Почати з порожнього cursor.
- Отримати сторінку й одразу передати її споживачам.
- Продовжити до кінця cursor або до визначеної глибини.
- Новий цикл не запускати, доки не завершився поточний.
Prime restriction не належить цьому сервісу. Його викликає конкретний споживач тільки після своїх локальних фільтрів; отриманий messagesLeft/lettersLeft також передається у FavoriteService.
Запуск при логіні TU, глибина і періодичне повторення — TODO.
Prime criteria=['active'] попередньо дублює цей прохід. TODO: перевірити, що criteria=[] стабільно повертає потрібні Open Limits-кандидати, і прибрати active-прохід; якщо його залишимо, запускати тільки після завершення повного проходу.
Запити на одну TU
| Проєкт | Один прохід |
|---|---|
| Chathouse | P_all |
| Prime | P_all |
P_all — усі сторінки tab='all' або criteria=[] до визначеної глибини.
Chat/mail history для обчислення Prime-фаворитів у цю формулу не входить: ці запити належатимуть окремому favorite-updater, алгоритм якого ще не зафіксований.