sender-invite-service

SenderInviteService

Майбутній спільний модуль family-application-api для банку chat/mail інвайтів. Контракт ще не спроєктований, бо поточні lifecycle суттєво різні й будуть перероблятися.

Поточна реалізація

FamilyМожливостіХто керує
Goldencreate, moderation, reject із причиною, повторне редагування, hide/restore, окремий active stateOperator створює; Supervisor і Top Manager модерують
Primecreate, hard delete, reorder; chat і mail спискиSupervisor і Top Manager
Chathousecreate, hard delete, reorder; additional chat messages; low-credit mail; sender analyticsSupervisor і Top Manager
Udatecreate, hard delete, reorder; additional chat messagesSupervisor і Top Manager

Типи й контент

FamilyChatMail
Goldencontact / agency, text 4–300NAF / FANM, text 500–2000, до 2 photo в active state
Primeодин ordered list, text 50–300один ordered list, text 500–3000, photo/video
Chathouseодин ordered list, text 50–300, до 2 additional text/photo/stickertext 500–3000, photo, окремий low-credit invite
Udateодин ordered list, text 30–300, до 2 additional text/photo/stickertext 500–3000, photo/video

Delay additional message у Chathouse та Udate — від 15 секунд до 15 хвилин.

Frontend Prime, Chathouse і Udate блокує створення тексту із similarity >= 70%: для цього він завантажує всі наявні тексти й порівнює їх у browser. Backend цю перевірку не повторює.

Поточний flow

  1. Наш frontend працює напряму з endpoint-ами відповідної Family.
  2. Інвайти зберігаються у Family collection.
  3. Family SenderRunner або Electron отримує впорядкований чи active список.
  4. Відправлення, cooldown, counters і помилки записуються у власні Family-моделі.

Partner API для CRUD інвайтів не потрібен. Partner API використовується лише для медіа TU та фактичної відправки.

TODO: повна переробка

Перед реалізацією спільного сервісу треба заново затвердити:

  1. Формат FamilySenderInvite.
  2. Один lifecycle: створення, moderation, edit, hide/delete та restore.
  3. Права Operator, Supervisor і Top Manager.
  4. Спільний active list і порядок замість Golden slots та Family-масивів.
  5. Єдині audience для Golden contact/agency, NAF/FANM та звичайних списків інших Family.
  6. Main/additional messages, media, delay і low-credit.
  7. Єдині text limits і серверну similarity-перевірку.
  8. Одне frontend API та один startup contract для Electron.
  9. Винесення аналітики відповідей у SenderAnalyticsService. Робота Sender, send history, cooldown і помилки відправлення залишаються в Electron.

До цього рішення endpoint-и нового SenderInviteService не фіксуємо.