FavoriteService

FavoriteService (Operator)

src/main/operator/interval-services/favorite.service.ts

Оновлює список фаворитів для всіх TU. Оператор-рівневий сервіс — один на всю сесію.

Не плутати з src/main/lady/favorite.service.ts — це lady-рівень, де зберігається Map фаворитів per TU.


Інтервал

60 секунд


Логіка

  1. Якщо мережа є → stackService.getFavorites() — всі фаворити всіх TU одним запитом
  2. Для кожного LadyRunnerlady.favoriteService.updateFavorites(ladyFavorites) — фільтрує по ladyId_api
  3. 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.updateFavoriteLanguage
  • operatorRunner.setLadyToRunner / removeLadyFromRunner (з’явилась/зникла ТЮ)