family-favorite

FamilyFavorite

collection family_favorites (робоча назва) — спільний документ favorite для пари TU + RU.

Поля

  • family — Family, до якої належить favorite.
  • tuId — посилання на FamilyTU.
  • ruExternalId — ID RU на партнері, збережений як string.
  • typeNew, Normal, Naughty або Aggressive.
  • contacts.statusYes або No.
  • contacts.email — email RU, якщо він зберігається для цієї Family.
  • blockedByRU — RU заблокував TU; оновлюється з partner-даних.
  • blockedByTU — RU вручну заблокований для TU у наших робочих логіках.
  • firstPaidAt / lastPaidAt — перша й остання платна дія RU для TU.
  • profit — profit пари TU + RU у форматі конкретної Family.
  • paidProfit — частина profit, яка враховується для визначення платного RU: без bonus/free credits або кількість платних повідомлень.
  • gifts — кількість подарунків, якщо Family повертає їх у джерелі.
  • isWhite — RU входить у white-list цієї TU.
  • createdAt / updatedAt — час створення й останньої зміни документа.

Profit

Familyprofitgifts
GoldenСума витрат
PrimeКількість платних вхідних повідомлень
ChathouseСума витрат
UdateКількість платних вхідних повідомлень🟡

В Udate поле gifts зараз є, але джерело для його заповнення не реалізоване.

Electron

FamilyFavorite є базовим server snapshot для Electron FavoriteService. Electron накладає на нього поточний statistics/message overlay.

  • isActive не зберігається — рахується з lastPaidAt за однією platform-настройкою; default 7 днів.
  • isFreeloader додається з глобальної RU-логіки.
  • chatLimit, mailLimit і follow-up state залишаються runtime-станом Electron та в collection не зберігаються.

Профіль, avatar і online RU для глобальних фаворитів зберігаються у FamilyGlobalFavorite. Нотатки зберігатимуться окремо від favorite.

Індекси

  • unique { family: 1, tuId: 1, ruExternalId: 1 };
  • { tuId: 1, lastPaidAt: -1 } — список favorites TU;
  • { family: 1, ruExternalId: 1 } — зв’язки RU з TU для Global Favorites.

Заповнити

  • Затвердити джерело paid activity для календаря New / Unique без зберігання необмеженого масиву подій у FamilyFavorite.