FavoriteService (Operator)
src/main/operator/interval-services/favorite.service.ts
Оновлює список фаворитів для всіх TU. Оператор-рівневий сервіс — один на всю сесію.
Не плутати з
src/main/lady/favorite.service.ts— це lady-рівень, де зберігається Map фаворитів per TU.
Інтервал
60 секунд
Логіка
- Якщо мережа є →
stackService.getFavorites()— всі фаворити всіх TU одним запитом - Для кожного
LadyRunner→lady.favoriteService.updateFavorites(ladyFavorites)— фільтрує поladyId_api sendToFrontend()→ надсилає оновлений список у React UI та шле тімліду через SupervisorStreamService
Запуск
Першим викликається в initLadyRunners() — ще до ініціалізації самих LadyRunner, щоб фаворити були готові.
sendToFrontend
Збирає фаворити з усіх LadyRunner (тільки з existsTab = true) і надсилає:
- в React UI через
reactService.sendFavorites()— повним списком - тімліду через
supervisorStreamService.notifyFavoritesAll(favorites)— повний список заходить в diff-логіку SupervisorStreamService, на wire летить тільки реальна delta (added/updated/removed) проти попереднього snapshot-у
Викликається не тільки інтервалом — а й точково з:
operatorRunner.updateWhiteList(add/del в whitelist чоловіка)lady.favoriteService.updateTUBlockFavorite(TU заблокувала RU)lady.favoriteService.updateFavoriteLanguageoperatorRunner.setLadyToRunner/removeLadyFromRunner(з’явилась/зникла ТЮ)