06-project-ru-profiles
ProjectRUProfile
backend-common/src/ru-profile/project-ru-profile.schema.ts · колекція project_ru_profiles — короткий профіль і online одного RU у межах проєкту. Один запис на кожного RU, якого бачили TU, незалежно від того, чи є він favorite.
Поля
project — проєкт RU.
ruId — ID RU на партнері як string; той самий ключ, що у 03-project-favorites і 04-project-global-favorites .
name / age / avatar — профіль, як його бачать TU на партнері, або null. Вік 0 від партнера зберігається як null.
isSatellite — ознака Golden satellite; інші проєкти її не пишуть.
lastOnlineAt — коли RU востаннє був online.
createdAt / updatedAt — updatedAt рухається лише при реальній зміні профілю або online; на ньому тримається стрічка змін для кешу Electron.
Хто пише
Що Хто Як Профіль Electron через [[services/project-application-api/features/07-ru-profiles#Запис|POST /v2/ru-profiles/sync]] пакет профілів, побачених у TU; записуються лише нові й змінені Online сервіс проєкту через знімок online на партнері lastOnlineAt лише наявним профілям; поки лише GoldenПеренесення [[services/project-application-api/features/12-migrations|POST /v2/migrations/ru-profiles/apply]] лише відсутні RU
Відмінності проєктів
Проєкт Профіль у legacy Online у legacy Golden golden_man_profiles — усі RU, яких бачив Electron (~158 тис.), тримається в пам’яті сервісу; змінені профілі не оновлюютьсяlastOnline у профілі і golden_global_mans.lastOnlineAt, знімок партнера раз на 5 хвPrime ім’я в prime_global_mans prime_global_mans.lastOnlineAtChathouse ім’я в chathouse_global_mans chathouse_global_mans.lastOnlineAtUdate ім’я в udate_global_mans udate_global_mans.lastOnlineAt
Нюанси
Індекси: unique project + ruId; project + updatedAt + _id для стрічки змін.
Сервіс нічого не тримає в пам’яті: кеш профілів живе в Electron, після логіну клієнт забирає лише зміни за курсором, невідомих RU дочитує за ID.
04-project-global-favorites профілю не містить: favorites і global favorites беруть його з цієї колекції на читанні.