ProjectFavorite
backend-common/src/favorite/project-favorite.schema.ts · колекція project_favorites — пара TU + RU після першої платної дії RU: платна активність і ручні позначки оператора.
Поля
- project — проєкт пари.
- tuId — canonical ID TU (02-project-tus).
- ruId — ID RU на партнері як string.
- type — ручний тип від оператора:
new,normal,naughty,aggressive. - contacts.status —
yesабоno: чи відбувся обмін контактами. - contacts.email — email RU у нижньому регістрі, якщо проєкт його зберігає.
- blockedByRU — RU заблокував TU на партнері.
- blockedByTU — RU вручну заблокований для TU у наших логіках.
- firstPaidAt / lastPaidAt — перша й остання платна дія RU для TU;
null, поки платної дії не було. - profit — profit пари у форматі проєкту.
- gifts — кількість подарунків, якщо проєкт їх повертає.
- isWhite — RU у white-list цієї TU; рахує Electron.
- createdAt / updatedAt — час створення й останньої зміни.
Поля directorId немає: scope визначає TU.
Відмінності проєктів
| Проєкт | ruId | profit | gifts | Джерело платної дії | Блок від RU |
|---|---|---|---|---|---|
| Golden | числовий ID | сума витрат | ✓ | денна та оперативна статистика | окремий блок-лист по TU |
| Prime | числовий ID | кількість платних вхідних повідомлень | — | історія діалогу і live-події | з діалогів |
| Chathouse | ULID | сума витрат разом із free credits | ✓ | статистика з ознакою free credits | з діалогів |
| Udate | ULID | кількість платних вхідних повідомлень | джерела немає | історія діалогу і live-події | з діалогів |
Writer автоматичних полів — перерахунок зі статистики проєктів (Перерахунок); наповнена лише Golden.
Нюанси
- Індекси: unique
project + tuId + ruId;tuId + lastPaidAtдля списку favorites TU;project + ruIdдля зв’язків RU з TU. - Активний favorite не зберігається: рахується від
lastPaidAtза спільною настройкою, зараз 7 днів. - Golden: дати партнера є локальним часом Kyiv;
firstPaidAtз legacy має лише день, точний час доби дасть імпорт статистики. Блокування від RU беруться зgolden_block_lists, а не з поляblockedlegacy-документа. - Legacy
name,noteіlanguagefavorite у документ не входять: ім’я живе в 04-project-global-favorites, нотатки чекають NotesService. - Міграція зберігає
_idізgolden_favorites; пари без canonical TU у scope директора пропускаються.