04-project-global-favorites

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.