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 з legacygolden_other_bonuses. - createdAt / updatedAt — час створення й останньої зміни.
Відмінності проєктів
| Проєкт | partnerIds | Credentials | projectData |
|---|---|---|---|
| Golden | { idApi } | числовий логін + пароль | findNew, stopNafTime |
| Prime | { idApi } | email + пароль + referral code | favoritesInitialized, canCreateChat, lastRefCode |
| Chathouse | { idApi, externalId?, ulid?, supplyId? } | email + пароль; auth code для сесії оператора | lastAuthCode |
| Udate | { idApi, ulid } | немає, запити йдуть через suboperator | currentOperator, ctr |
Нюанси
- Індекси: unique
directorId + project + partnerIds.idApi; partial uniqueproject + partnerIds.idApiдля невидалених TU, тому одна поточна TU на партнері може належати лише одному директору; окремі індекси на списки директора, адмін панелі, KM, тімліда й оператора. - Видалена TU лишається в колекції зі статусом
deletedі без адмін панелі: favorites та історія на неї посилаються. - Джерело істини зв’язку TU ↔ користувач — ця колекція; масив
users.assignments[].details.ladiesу Stack пишеться лише для сумісності.