ProjectGlobalFavorite
backend-common/src/global-favorite/project-global-favorite.schema.ts · колекція project_global_favorites — один RU у межах проєкту: агрегат усіх його favorites. Профіль і online RU — у 06-project-ru-profiles.
Поля
- project — проєкт RU.
- ruId — ID RU на партнері як string; той самий ключ, що у 03-project-favorites і 06-project-ru-profiles.
- firstPaidAt / lastPaidAt — перша й остання платна дія RU у проєкті по всіх TU.
- tuCount — скільки TU мають цього RU у favorites.
- contacts — скільки TU отримали контакт RU.
- profit — сума
profitусіх пар. - gifts — сума подарунків усіх пар.
- isFreeloader — RU не вважається платним за правилом проєкту.
- senderIgnore — RU вручну виключений із сендерів у всьому проєкті.
- createdAt / updatedAt — час створення й останньої зміни.
Відмінності проєктів
| Проєкт | Freeloader у legacy |
|---|---|
| Golden | не реалізований; поки profit <= 0 |
| Prime | менше 11 платних повідомлень |
| Chathouse | усі витрати були free credits |
| Udate | менше 11 платних повідомлень |
Як правило Freeloader стане спільним — у GlobalFavoriteService.
Нюанси
- Індекси: unique
project + ruId;project + lastPaidAtдля списку. - Документ — проєкція favorites: агрегат щоразу перебудовується з 03-project-favorites,
senderIgnoreпри перебудові не перезаписується. RU без жодного favorite видаляється. Тому профілю й online тут немає: це зовнішні дані, які перебудовою не відновити. - Golden: агрегат не копіюється з
golden_global_mans, бо той розходиться з власними favorites; звідти береться лише_id. - Нотатки по RU у документі немає: вони чекають NotesService.