prime-dialog-creation

Створення діалогів Prime

Створює OpenLimitsVip таск «написати першим». Партнерський діалог відкривається тільки коли оператор відповідає на цей таск.

Стан

Для кожної TU з canCreateChat:

{
  availableLimits
  lastTaskCreatedAt
  lastTaskClosedAt
  lastTaskAnsweredAt
  candidateSource
}

Одночасно може бути один активний VIP-таск TU.

Планувальник

  1. У production стартує через 10 с, відновлює активні й останні закриті VIP-таски та читає chat-request limits.
  2. Далі проходить TU кожні 2 хв.
  3. Нуль доступних limits — TU пропускається.
  4. Після відповіді наступний таск можна створити не раніше ніж через 2 год; локальний limit зменшується на один.
  5. Якщо таск закрився без відповіді, limit не витрачено — наступний tick може створити новий.
  6. Limits повністю перечитуються раз на добу.
  7. Після повторного логіну активний VIP-таск повертається у Task Factory.

Пошук RU

Джерело задається для Prime admin:

  • OUR_AGENCY — глобальні RU з нашого favorite-пулу, але не фаворити цієї TU;
  • EXTERNAL_AGENCY — RU з зовнішнього списку, у яких messages + mails > 30;
  • MIX — обидва списки.

Виключаються RU, для яких ця TU уже створювала chat, та RU, використані іншою спробою менше 5 хв тому.

  1. Перемішати кандидатів.
  2. Брати batch по 50.
  3. Batch-перевірка online.
  4. Batch-перевірка доступності chat_request.
  5. Для обраного RU перевірити: немає chat history, chat/mail limits, блокування.
  6. Якщо перевірка не пройдена — повторити, максимум 10 кандидатів.
  7. Передати OpenLimitsVip trigger у Task Factory.

Відповідь на таск

  1. Отримати й перевірити captcha.
  2. POST chat/dialog/request-limit відкриває діалог.
  3. Записати пару TU+RU у список уже створених діалогів.
  4. Відправити перше chat-повідомлення.
  5. Тільки після успіху закрити таск як answered і зменшити доступний limit.

Помилка на кроці 2–4 не закриває таск. Явне блокування передається у BlockService.

API

Створення діалогу Prime.