SenderInviteService
Майбутній спільний модуль project-application-api для банку chat/mail інвайтів. Контракт ще не спроєктований, бо поточні lifecycle суттєво різні й будуть перероблятися.
Поточна реалізація
| Проєкт | Можливості | Хто керує |
|---|---|---|
| Golden | create, moderation, reject із причиною, повторне редагування, hide/restore, окремий active state | Operator створює; тімлід і Top Manager модерують |
| Prime | create, hard delete, reorder; chat і mail списки | Тімлід і Top Manager |
| Chathouse | create, hard delete, reorder; additional chat messages; low-credit mail; sender analytics | Тімлід і Top Manager |
| Udate | create, hard delete, reorder; additional chat messages | Тімлід і Top Manager |
Типи й контент
| Проєкт | Chat | |
|---|---|---|
| Golden | contact / agency, text 4–300 | NAF / 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/sticker | text 500–3000, photo, окремий low-credit invite |
| Udate | один ordered list, text 30–300, до 2 additional text/photo/sticker | text 500–3000, photo/video |
Delay additional message у Chathouse та Udate — від 15 секунд до 15 хвилин.
Frontend Prime, Chathouse і Udate блокує створення тексту із similarity >= 70%: для цього він завантажує всі наявні тексти й порівнює їх у browser. Backend цю перевірку не повторює.
Поточний flow
- Наш frontend працює напряму з endpoint-ами відповідного проєкту.
- Інвайти зберігаються у collection проєкту.
- SenderRunner проєкту або Electron отримує впорядкований чи active список.
- Відправлення, cooldown, counters і помилки записуються у власні моделі проєкту.
Partner API для CRUD інвайтів не потрібен. Partner API використовується лише для медіа TU та фактичної відправки.
TODO: повна переробка
Перед реалізацією спільного сервісу треба заново затвердити:
- Формат ProjectSenderInvite.
- Один lifecycle: створення, moderation, edit, hide/delete та restore.
- Права Operator, тімліда і Top Manager.
- Спільний active list і порядок замість Golden slots та масивів проєктів.
- Єдині audience для Golden
contact/agency,NAF/FANMта звичайних списків інших проєктів. - Main/additional messages, media, delay і low-credit.
- Єдині text limits і серверну similarity-перевірку.
- Одне frontend API та один startup contract для Electron.
- Винесення аналітики відповідей у SenderAnalyticsService. Робота Sender, send history, cooldown і помилки відправлення залишаються в Electron.
До цього рішення endpoint-и нового SenderInviteService не фіксуємо.