metrics-conn-with-users

Metrics → Connections with users

src/features/connections_with_users/ — 14-денний календар активності зв’язків TU ↔ RU для Golden і Chathouse.

Меню Family → Metrics → Connections with users.

Суть

Календар активності RU по одній обраній TU за вікно 14 днів: рядок = RU, колонки = дні, клітинка = скільки RU витратив на цю TU в цей день + кольоровий статус дня. Connection = пара TU↔RU, у якої була хоч одна витрата.

Сервер визначає статуси днів і доступний рольовий scope; frontend вибирає TU, показує 14 колонок дат і відкриває деталізацію клітинки.

Use cases

  • operator — дивиться своїх TU: хто з RU «охолов», кого реанімувати.
  • teamlead (supervisor) — те саме по TU своєї команди, з фільтром по оператору.
  • top_manager / ceo (director) — той самий аналіз, але з ширшою картиною: у деталях клітинки бачать, на яких саме інших TU RU витрачає (director — по всіх TU, top_manager — у межах TU своїх тімлідів). Оператор і тімлід цього списку не бачать.

Доступно у

udate · prime/talkytimes · goldenbride ✓ · chathouse ✓ (свій бек, та сама UI-логіка)

РольGoldenChathouse
ceo/ceo/golden/connections_with_users/ceo/chathouse/connections_with_users
top_manager/top_manager/golden/connections_with_users/top_manager/chathouse/connections_with_users
teamlead/teamlead/golden/connections_with_users/teamlead/chathouse/connections_with_users
operator/operator/connections_with_users/operator/connections_with_users

Операторський URL спільний: потрібна Family визначається застосунком поточного оператора.

Можливості

#Можливістьoperatorteamleadtop_managerceo
1Вибір TU за фільтрамисвої TUсвоя команда (+фільтр оператор)свої тімлідивсі
2Таблиця активності RU (14 днів)
3Деталі клітинки (пара + день)без списку інших TUбез списку інших TU+ інші TU своїх тімлідів+ інші TU (всі)

Деталі по можливостях

1. Вибір TU за фільтрами

Ліва панель фільтрів + віртуалізований список TU. Клік по TU застосовує поточні Date і Connection type та будує таблицю; окремої кнопки GNR немає.

КонтролЩо робитьРолі
Dateкінцева дата вікна; показуються вона + 13 днів назад. Дефолт — сьогодніусі
Connection typeAll / New / Young / Old — фільтр пар по retention-категорії (від lifetime)усі
TeamLeadзвузити пул TU до команди тімлідаceo, top_manager
Operatorзвузити до TU оператораceo, top_manager, teamlead

Для operator тімлід/оператор підставляються його власними автоматично; для teamlead — його id.

  • Список TU завантажується автоматично після готовності рольового scope.
  • Зміна дати, типу connection, Teamlead або Operator повторно завантажує доступний список TU, скидає вибрану TU та ховає попередню таблицю.
  • Пошук по списку TU локальний: ім’я або видимий ID; для Chathouse це external_id, для Golden — TU ID.
  • Списки Teamlead/Operator завантажуються при відкритті відповідного dropdown. Заблоковані оператори не пропонуються для нового вибору.

Endpoints:

FamilyEndpointЩо робить
goldenmetric/getLadiesпул TU за фільтрами (бек скоупить по ролі)
chathousePOST /chathouse/metrics/connections-with-users/getLadies (legacy, поза Swagger)те саме (chathouse)
stackPOST /team-members/current/supervisors · /operatorsсписки тімлідів/операторів для дропдаунів

2. Таблиця активності RU

Рядок = RU (ім’я, вік, ID), 14 колонок-днів. У клітинці — сума витрат на цю TU за день, фон — статус дня:

КолірСтатус
зеленийзалогінився, витратив на цю TU (у клітинці — сума $)
жовтий насиченийзалогінився, витратив на інших TU
жовтий блідийзалогінився, не витратив ні на кого
червонийзаблокував цю TU
білийне логінився

Frontend сканує 14 дат зліва направо й сортує рядки за першою знайденою позитивною витратою: раніша колонка стоїть вище, RU без позитивної витрати у видимому вікні — наприкінці. Які саме RU входять у відповідь, визначає backend.

Тіло таблиці віртуалізоване з невеликим запасом рядків. Якщо API повернув порожній список, UI зберігає один порожній технічний рядок, щоб таблиця не втрачала структуру.

Endpoints:

FamilyEndpointЩо робить
goldenmetric/getConnectionsWithUsersRU + статуси днів за 14-денне вікно
chathousePOST /chathouse/metrics/connections-with-users/get (legacy, поза Swagger)те саме (chathouse)

3. Деталі клітинки

Клік по клітинці (крім «не логінився») відкриває модалку пари за день: категорія пари (New/Young/Old), lifetime, час онлайну RU, розбивка витрат по типах операцій (TextChat, VideoChat, EmailRead…), загальні витрати RU за день на всіх TU.

  • Список «на яких ще TU витрачав» з сумами бачать ceo (усі TU, без обмеження) і top_manager (тільки TU своїх тімлідів).
  • Рядок Number of TU є тільки у Golden й показується всім ролям, крім ceo.
  • Golden і Chathouse показують загальні витрати RU за день на всіх TU; текст підсумку відрізняється між Family.
  • UI рендерить список інших TU з відповіді без додаткової локальної фільтрації; доступний склад цього списку визначає backend role scope.

Endpoints:

FamilyEndpointЩо робить
goldenmetric/getConnectionsWithUsersDetailedдеталі пари за день (список інших TU бек ріже по ролі)
chathousePOST /chathouse/metrics/connections-with-users/getDetailed (legacy, поза Swagger)те саме (chathouse)

Loading, empty та error-стани

  • Поки TU не вибрана або після зміни фільтрів, основна область показує No data. Adjust filters and apply.
  • Усі запити використовують global loader; помилки показуються через global notification.
  • Якщо користувач швидко змінює фільтри або клітинки, UI застосовує лише результат останнього актуального запиту.
  • Зміна Family або вибраної TU закриває відкриту деталізацію клітинки.

Зв’язки