TU Profiles

TU Profiles (per-family)

(UI-екран Family-меню) — головна вкладка Family для роботи зі списком TU у межах однієї Family: golden, prime, udate, chathouse.

Суть

Екран показує runtime-список TU тільки поточної Family і дає дії над цими TU: фільтрацію, пошук, масовий вибір, перепризначення тімлідів/операторів і family-specific сервісні дії.

Prime у UI позначений як TalkyTimes, а route-сегмент має значення talkytimes. Внутрішній/backend Family key залишається prime; зокрема, картка отримує його через ?extra=prime.

Цей файл є єдиним джерелом правди для per-family вкладки TU Profiles. Глобальний крос-Family реєстр описаний окремо в TU Profiles (Stack).

Use cases

  • director переглядає всі TU Family, розкладає їх по статусних групах, масово змінює тімліда і виконує family-specific сервісні дії.
  • top-manager працює тільки зі своїм скоупом тімлідів: фільтрує список, змінює тімліда/оператора в межах доступу, користується refresh/password/gifts/FN залежно від Family.
  • supervisor (team_lead) працює з плоскою таблицею власної команди і масово переназначає TU між операторами.
  • client_manager бачить TU під своїм кураторством, масово змінює тімліда і має додаткові обмеження для TU без CM.
  • operator бачить тільки власні TU у вигляді карток і переходить у конкретну TU Card.

Доступи і формат екрана

РольFrontend routeЯкі TU бачитьФормат спискуОсновна масова дія
director/ceo/<family-route>/tu_profilesусі TU Familyзгруповані таблиціChange TL
top-manager/top_manager/<family-route>/tu_profilesTU своїх тімлідівзгруповані таблицінемає окремої масової кнопки в header
supervisor (team_lead)/teamlead/<family-route>/tu_profilesTU своєї командиодна плоска sortable-таблицяChange operator
client_manager/client_manager/<family-route>/tu_profilesTU під своїм кураторствомзгруповані таблиціChange TL
operator/operator/tu_profilesтільки власні TUкартки

<family-route> дорівнює golden, udate, chathouse або talkytimes для Family prime.

Групування і статуси

  • director і client_manager: поточні legacy-заголовки Working profiles, Free profiles, Not Active profiles, Deleted profiles.
  • top-manager: поточні legacy-заголовки Working profiles, Blocked profiles, Deleted profiles.
  • supervisor: окремих груп немає; є колонка Status.
  • operator: таблиці немає; є список карток.
  • У grouped-видах заголовок блоку показує Selected: N і Count: N.
  • Пошук застосовується до списку до його розбиття на групи.
  • Табличний рядок підсвічується жовтим, якщо !item.clientManager.

Legacy-слово profiles у заголовках означає TU цієї Family і не є нормативною назвою сутності. Його потрібно замінити на TU окремою user-facing copy-зміною.

Фільтри і контролі

Контролdirectortop-managersupervisorclient_manageroperatorПримітка
All admin panelsє на table-видах, крім team_lead
All client managersтільки в director; є спецопції Free і All client managers
Search profiles...поточний legacy-placeholder shared search field; шукає TU по імені / прізвищу / ідентифікатору
ID / ULID toggleтільки udateтільки udateтільки udateтільки udateперемикає id_api / ulid
Header checkbox / multi-selectоператорський список без масового вибору

Header-дії по ролях

Рольgoldenprimeudatechathouse
directorChange TL, Refresh, Reset PasswordChange TL, Refresh, Reset PasswordChange TL, Delete StoriesChange TL, Refresh, MAX profiles per Auth Code = X
top-managerRefresh, Reset PasswordRefresh, Reset Passworddisabled Refresh placeholderRefresh
supervisorChange operator, Reset PasswordChange operator, Reset PasswordChange operatorChange operator
client_managerChange TL, Reset PasswordChange TL, Reset PasswordChange TL, Delete StoriesChange TL, Refresh
operator

Масові дії розведені так:

  • director і client_manager мають тільки масове перепризначення тімліда.
  • supervisor має тільки масове перепризначення оператора.
  • top-manager не має окремої масової кнопки в header цієї вкладки.

Навігація з рядка або картки

  • director працює з TU прямо в таблиці; окремої колонки Edit тут немає.
  • top-manager і supervisor мають колонку Edit з переходом у stack-картку TU.
  • client_manager окремої колонки Edit не має.
  • operator відкриває картку кліком по імені: /operator/tu_profiles/:id?extra=<family>.
  • Якщо нормалізована TU оператора не має Stack id, клік показує поточний legacy-fallback There is no TU card for this profile.. Це формулювання не відповідає TU-стандарту й потребує окремої copy-зміни.
  • Якщо фото відсутнє, операторська картка показує No image.

TU Card з per-family списку

top-manager, supervisor і operator відкривають partial-access режим із контекстом ?extra=<family>. director і client_manager переходять до full-access режиму з глобального каталогу. Єдиний опис полів, рольових прав, збереження, Return і станів міститься в TU Card.

Додаткові обмеження

  • Для client_manager частина дій блокується на TU без clientManager: checkbox візуально переходить у no-drop, селектори тімліда отримують block={!item?.clientManager}, а Get details у golden / prime не виконує дію.
  • director у таблиці призначає саме тімліда; окремого selector-а оператора в director-рядку цієї вкладки немає.

Колонки по ролях

director

FamilyКолонки
goldencheckbox, , IMG, TU, ID, Lvl, CM, Login details, TeamLead1, E-mail, TeamLead2, E-mail, TeamLead3, E-mail, Status
primecheckbox, , IMG, TU, ID, Lvl, CM, Login details, TeamLead1, TeamLead2, TeamLead3, Status, Gifts
udatecheckbox, , IMG, V.A., TU, ID / ULID, Lvl, CTR, CM, TeamLead1, TeamLead2, Status, Gifts
chathousecheckbox, , IMG, TU, ID, Lvl, CM, Login details, TeamLead1, TeamLead2, TeamLead3, Status

Додатково:

  • golden: у клітинці TU є інтерактивний FN; є Get details; біля кожного TeamLead є checkbox доступу до email.
  • prime: у клітинці TU є read-only індикатор CR; є Get details.
  • udate: є videoAvatar.thumbnail, перемикач ID / ULID, CTR; Gifts показується як статус ON / OFF, а не toggle; Get details немає.
  • chathouse: Login details і Get details є тільки тут, на director-рівні цієї Family.

top-manager

FamilyКолонки
goldencheckbox, , IMG, TU, ID, Lvl, Login details, CM, TeamLead1, E-mail, Operator1, TeamLead2, E-mail, Operator2, TeamLead3, E-mail, Operator3, Edit
primecheckbox, , IMG, TU, ID, Lvl, Login details, CM, TeamLead1, Operator1, TeamLead2, Operator2, TeamLead3, Operator3, Gifts, Edit
udatecheckbox, , IMG, V.A., TU, ID / ULID, Lvl, CTR, CM, TeamLead1, Operator1, TeamLead2, Operator2, Edit
chathousecheckbox, , IMG, TU, ID, Lvl, CM, TeamLead1, Operator1, TeamLead2, Operator2, TeamLead3, Operator3, Edit

Додатково:

  • golden: інтерактивний FN, Get details, email-access checkbox біля кожного TeamLead.
  • prime: Gifts перемикається toggle-ом ON / OFF; Login details є; code path лишається talkytimes.
  • udate: є video avatar, CTR, ID / ULID; Gifts колонки в поточному top-manager коді немає.
  • chathouse: колонки Login details у top-manager списку немає.

supervisor (team_lead)

FamilyКолонки
goldencheckbox, , Lvl, IMG, TU, ID, Login details, Status, CM, Operator, E-mail, Edit
primecheckbox, , Lvl, IMG, TU, ID, Status, CM, Operator, Gifts, Edit
udatecheckbox, , Lvl, IMG, V.A., TU, CTR, ID / ULID, Status, CM, Operator, Gifts, Edit
chathousecheckbox, , Lvl, IMG, TU, ID, Status, CM, Operator, Edit

Додатково:

  • golden: є Get details; checkbox email-access стоїть біля Operator.
  • prime: Gifts перемикається toggle-ом.
  • udate: Gifts показується як статус ON / OFF, а не як toggle.
  • chathouse: Get details на teamlead-рівні цієї вкладки немає.

client_manager

FamilyКолонки
goldencheckbox, , IMG, TU, ID, Lvl, Login details, TeamLead1, E-mail, TeamLead2, E-mail, TeamLead3, E-mail, Status
primecheckbox, , IMG, TU, ID, Lvl, Login details, TeamLead1, TeamLead2, TeamLead3, Status, Gifts
udatecheckbox, , IMG, V.A., TU, ID / ULID, CTR, Lvl, TeamLead1, TeamLead2, Status, Gifts
chathousecheckbox, , IMG, TU, ID, Lvl, TeamLead1, TeamLead2, TeamLead3, Status

Додатково:

  • окремої колонки Edit тут немає.
  • golden: є Get details; біля кожного TeamLead є checkbox доступу до email.
  • prime: є Get details; Gifts перемикається toggle-ом.
  • udate: є video avatar, CTR; Gifts показується як статус ON / OFF, а не як toggle.
  • chathouse: Login details колонки тут немає.

Operator view

FamilyФормат
golden, prime, udate, chathouseпортретні картки з avatar / No image, name / No name, ID / N/A, age / N/A, level / N/A і дією Media content; клік по картці веде на /operator/tu_profiles/:id?extra=<family>

Операторський список не використовує family-specific list helper: він завантажує власні TU через спільне Stack-джерело з family у контексті запиту.

Media content без додаткового API-запиту відкриває вже завантажене profile.media у новій вкладці та не відкриває саму TU Card. Якщо посилання немає, UI показує Media content is unavailable for this TU profile.. Якщо браузер блокує нову вкладку, показується Unable to open media content. Allow pop-ups and try again..

Avatar передається у shared media renderer як preview source. Під час завантаження він показує loading placeholder, а після помилки — Image unavailable; автоматичного fallback із preview на інше оригінальне джерело в цьому списку немає.

Family-specific особливості

FamilyІдентифікаторСпецифіка вкладки
goldenid_apiінтерактивний FN (findNew), Login details = id_api + password, email-access checkbox, refresh через /golden/admin/checkLadies
primeid_apicode folder talkytimes, read-only CR (canCreateChat) у director, Login details = email + password, Gifts через enableFeature/disableFeature з feature: 'realPresent'
udateid_api або ulidV.A. з videoAvatar.thumbnail, CTR, Delete Stories, без Login details і без password-action на цій вкладці
chathouseexternal_iddirector-only legacy-налаштування MAX profiles per Auth Code, refresh через /chathouse/lady/updateLadyProfiles, Login details у цьому списку є тільки в director

CTR у udate кодується так:

  • 5..100 — зелений #058405
  • 2..4 — жовтий #facc00
  • 0..1 — червоний #ff0000
  • nullN/A

У chathouse сторінка також завантажує pageSettings.maxProfilesPerOperatorQuantity, але в header вкладки TU Profiles зараз редагується тільки maxProfilesPerAuthCodeQuantity через slider 1..12.

TODO: нормалізувати в UI legacy-copy profiles у статусних групах, search placeholder, Chathouse limit і notification без зміни backend identifiers.

Джерела даних

Табличні представлення використовують role-scoped Family helpers: залежно від ролі вони отримують плоский список або групування за operators і supervisors. Operator view використовує спільне Stack-джерело власних TU та передає поточну Family як контекст. Перепризначення supervisor/operator і сервісні дії виконуються окремими Family helpers.

Перевірені Golden operation deeplink-и:

Повні request/response контракти потрібно звіряти у swagger, а не дублювати в цьому UI-документі.

Зв’язки

  • TU Profiles (Stack) — крос-Family картка TU на рівні stack
  • TU Card — єдине джерело логіки full-access і partial-access картки.
  • TU Statistics — статистика по TU цієї Family
  • swagger — реєстр Swagger UI бек-сервісів
  • TODO: додати перевірені Swagger operation deeplink-и для Prime, Udate, Chathouse і Stack-джерела Operator view.