TaskMailService
src/main/lady/interval-services/task-mail.service.ts
Per-анкета. Не самостійний інтервал — запускається StatisticsService після кожного оновлення статистики (кожні 60 сек).
Два методи
findUnansweredMailTasks()
Перевіряє чоловіків що написали листа і чекають відповіді.
Джерело: statisticsService.statisticsUnanswered (чоловіки що заплатили)
Для кожного:
- Якщо вже є таск
UnansweredMail→ пропускаємо - Затримка 1 сек між запитами
officialApiService.getMail()→ останній лист- Якщо
direction = MAN_TO_LADYі не в блоклисті і лист не старіший за рік →TaskType.UnansweredMail
findNeedToWriteMailTasks()
Перевіряє чоловіків яким треба написати лист.
Кандидати: активні фаворити онлайн, не в блоклисті, не blockedByTU
Для кожного:
officialApiService.getMail()→ останній лист- Затримка 1 сек між запитами
Якщо останній лист від чоловіка (MAN_TO_LADY):
- Якщо вже є
UnansweredMail→ пропускаємо - Перевіряємо профіль →
TaskType.UnansweredMail
Якщо останній лист від анкети (LADY_TO_MAN):
- Якщо вже є
NeedToWriteMail→ пропускаємо - Умова 1: немає листів за останні 12 годин
- Умова 2: є бонус у статистиці після останнього листа і немає закритого таску після бонусу
- При виконанні →
lastSendService.mailIsReadyToSend()перевірка →TaskType.NeedToWriteMail
Sleep Mode
Якщо Sleep Mode активний — findNeedToWriteMailTasks() не виконується (тільки findUnansweredMailTasks).