02-project-tus

ProjectTU

backend-common/src/tu/project-tu.schema.ts · колекція project_tus — TU всіх сайтів: профіль, статуси, credentials і призначення за змінами.

Поля

  • directorId — scope директора, у якому TU імпортована.
  • project — проєкт TU.
  • tuCardId — зв’язок із карткою TU у Stack (stack_ladies); через нього приєднуються рівень і client email.
  • adminId — canonical ID адмін панелі, якій TU належить на партнері; null для видаленої TU.
  • partnerIds — ID TU на партнері; idApi числовий і обов’язковий у всіх проєктах, решта полів залежить від проєкту.
  • credentials.login / credentials.passwordEncrypted — логін і зашифрований пароль TU на партнері; поле credentials у звичайні вибірки не входить.
  • profile — ім’я, прізвище, вік, аватар.
  • status.active / status.deleted — нормалізований стан TU на партнері.
  • capabilities.canReceiveGifts — чи може TU отримувати подарунки; null, якщо проєкт цього не повертає.
  • assignments.clientManagerProjectId — Project ID KM, закріпленого за карткою TU.
  • assignments.shifts[] — три зміни 1, 2, 3, у кожній supervisorProjectId і operatorProjectId або null.
  • projectData — поля одного проєкту, валідовані її схемою; через API міняються лише дозволені.
  • sync.lastListedAt / sync.profileSyncedAt — коли TU востаннє була в списку партнера і коли оновлений профіль.
  • sync.historySyncedAt — коли історія TU до появи в нашій агенції докачана у project_statistics по API самої TU (init TU); без позначки init повторює докачку. Міграція статистики ставить її TU з legacy golden_other_bonuses.
  • createdAt / updatedAt — час створення й останньої зміни.

Відмінності проєктів

ПроєктpartnerIdsCredentialsprojectData
Golden{ idApi }числовий логін + парольfindNew, stopNafTime
Prime{ idApi }email + пароль + referral codefavoritesInitialized, canCreateChat, lastRefCode
Chathouse{ idApi, externalId?, ulid?, supplyId? }email + пароль; auth code для сесії оператораlastAuthCode
Udate{ idApi, ulid }немає, запити йдуть через suboperatorcurrentOperator, ctr

Нюанси

  • Індекси: unique directorId + project + partnerIds.idApi; partial unique project + partnerIds.idApi для невидалених TU, тому одна поточна TU на партнері може належати лише одному директору; окремі індекси на списки директора, адмін панелі, KM, тімліда й оператора.
  • Видалена TU лишається в колекції зі статусом deleted і без адмін панелі: favorites та історія на неї посилаються.
  • Джерело істини зв’язку TU ↔ користувач — ця колекція; масив users.assignments[].details.ladies у Stack пишеться лише для сумісності.