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