Листи (Mail)
src/main/lady/interval-services/task-mail.service.ts
Листи — окремий від чату канал переписки між TU і RU. Довший формат тексту, вкладення, не залежить від online-статусу RU.
UI — mail. Автоматична розсилка — mail-sender. Шаблони-інвайти — mail-invites. Чорний список — Blacklist.
Структура листа
- Текст — довший формат, підтримує rich-content
- Вкладення — до 2 зображень на лист (див. нижче)
- Після збереження отримує унікальний
letterId - Відстежується статус прочитано / не прочитано
Медіа-вкладення
- До 2 зображень на один лист
isPaid— платне вкладення, RU платить щоб відкрити (той самий механізм що в чаті)- Preview доступний до оплати
- Завантаження / видалення — через IPC:
uploadMailMediaFile,deleteMailMediaFile - Медіа прив’язане до конкретного
letterId
Два треки розсилки
| Трек | Тип інвайту | Кому | Термін інвайту |
|---|---|---|---|
| FAV | NAF | NOT_ACTIVE_FAVORITES — фаворити без активного контакту | Скидається щодня |
| NEW | FANM | Онлайн RU, не фаворити | Живе 7 днів, потім скидається |
Після скидання оператор має призначити новий інвайт. Детальна логіка сендера, відбір кандидатів, ліміти, batch, помилки — всі в mail-sender.
Генерація тасків — TaskMailService
Сервіс task-mail-service створює мейл-таски:
| Подія | Таск |
|---|---|
| RU надіслав лист | UnansweredMail |
| TU написала, RU не відповів | NeedToWriteMail |
Деталі термінології і таймери тасків — tasks.
Відмінність від Email
Mail — це пошта всередині сайту. Поруч існує режим Email — зовнішня пошта (Gmail тощо), окремий UI-екран (email), окрема логіка, не пов’язана з mail-API сайту.
Зв’язки
- UI: mail
- Автосендер: mail-sender
- Шаблони-інвайти: mail-invites
- Чорний список per інвайт: Blacklist
- Глобальний block list TU: block-list-service
- Генератор тасків: task-mail-service
- Таск-сутність: tasks
- Синк даних: data-sync-service