service intervals tasks mail

TaskMailService

TaskMailService

src/main/lady/interval-services/task-mail.service.ts

Per-анкета. Не самостійний інтервал — запускається StatisticsService після кожного оновлення статистики (кожні 60 сек).


Два методи

findUnansweredMailTasks()

Перевіряє чоловіків що написали листа і чекають відповіді.

Джерело: statisticsService.statisticsUnanswered (чоловіки що заплатили)

Для кожного:

  1. Якщо вже є таск UnansweredMail → пропускаємо
  2. Затримка 1 сек між запитами
  3. officialApiService.getMail() → останній лист
  4. Якщо direction = MAN_TO_LADY і не в блоклисті і лист не старіший за рік → TaskType.UnansweredMail

findNeedToWriteMailTasks()

Перевіряє чоловіків яким треба написати лист.

Кандидати: активні фаворити онлайн, не в блоклисті, не blockedByTU

Для кожного:

  1. officialApiService.getMail() → останній лист
  2. Затримка 1 сек між запитами

Якщо останній лист від чоловіка (MAN_TO_LADY):

  • Якщо вже є UnansweredMail → пропускаємо
  • Перевіряємо профіль → TaskType.UnansweredMail

Якщо останній лист від анкети (LADY_TO_MAN):

  • Якщо вже є NeedToWriteMail → пропускаємо
  • Умова 1: немає листів за останні 12 годин
  • Умова 2: є бонус у статистиці після останнього листа і немає закритого таску після бонусу
  • При виконанні → lastSendService.mailIsReadyToSend() перевірка → TaskType.NeedToWriteMail

Sleep Mode

Якщо Sleep Mode активний — findNeedToWriteMailTasks() не виконується (тільки findUnansweredMailTasks).