dashboard

Dashboard

src/features/dashboard/ — спільний Family-dashboard із рольовими зрізами та потижневими аналітичними графіками.

Суть

Сторінка line-графіків по одній Family. Кожен графік показує тренд показника по тижнях у вибраному шестимісячному вікні. До першого GNR замість графіків показується підказка Select dashboard criteria and click GNR.

Набір графіків і скоуп даних залежать від ролі × Family.

Use cases

Кожна роль із доступом бачить зведення у межах своєї зони відповідальності — від усієї Family (director) до власних показників (operator). Деталі по ролях — у Доступах.

Доступи

Family-dashboard є тільки для 4 ролей. У client_manager, hr_manager, recruiter і technical_department цієї вкладки немає.

Applicant/recruiter dashboards — окремі екрани з іншою бізнес-логікою та власними owner-модулями. Вони не належать до src/features/dashboard/ і не входять у scope цього документа.

РольFrontend route
director/ceo/{family-route}/dashboard
top_manager/top_manager/{family-route}/dashboard
team_lead/teamlead/{family-route}/dashboard
operator/operator/dashboard

{family-route} дорівнює golden, udate, chathouse або talkytimes; маршрутна назва talkytimes всередині фічі нормалізується до Family prime.

Скоуп задається селекторами в toolbar (рядки) — хто який зріз може відкрити:

Зрізdirectortop_managerteam_leadoperator
Вся Family (всі тімліди)
Конкретний тімлід✓ (дропдаун Teamlead)свої тімлідисвій (авто)
Конкретний оператор✓ (дропдаун)✓ (дропдаун)свій (авто)
  • director — стартує на всій Family; дропдаун Teamlead звужує до одного тімліда (переходу на окремого оператора нема).
  • top_manager — свої тімліди + оператори під ними (два селектори).
  • team_lead — свій id автоматично; дропдаун операторів своєї команди.
  • operator — без селекторів, одразу власні показники.

Toolbar і період

КонтролЩо робитьРолі
← / →Гортання вікна на 4 тижні назад/вперед.усі
Період (текст)Поточне вікно — від понеділка пів-року тому до вибраної неділі.усі
Teamlead / OperatorСелектор зрізу (див. Доступи).усі крім operator
GNRGenerate — застосувати фільтри й завантажити графіки. До першого натискання показується підказка.усі

Період:

  • Вікно — потижневі бакети за пів-року (кінець = вибрана неділя, початок = понеділок 6 місяців назад).
  • Крок гортання — 4 тижні.
  • Нижня межа історії в UI — 2024-07-01: коли шестимісячне вікно досягає цієї дати, початок видимого періоду обрізається до неї, а стрілка стає disabled.
  • Стрілка disabled на останній доступній неділі, тому перейти в майбутній звітний період не можна.
  • Зміна періоду скидає конкретний scope до All: для director і top_manager — Teamlead, для team_lead — Operator; у top_manager також скидається конкретний Operator.

Графіки

Базовий набір (усі ролі, усі Family)

Назви — як на дашборді (заголовок графіка).

#ГрафікЩо показує
1Balance per weekСумарний $ заробіток за тиждень.
2Online per weekСумарний час онлайн (години) за тиждень. Накладена червона область Sleep mode — скільки з онлайну було в режимі сну; тултіп показує години сну і % від загального онлайну.
3Unique RU per weekКількість унікальних RU: new (нові) і all (усі); у Chathouse є додаткова серія payers.
4Average TU balanceСередній баланс TU по рівнях NEW / LOW / MID / TOP. (TODO: що означають рівні — сегментація TU за заробітком?)
5Tasks per weekКількість тасків по типах за тиждень. Набір типів — свій на кожній Family (див. нижче).
6% of task processingЧастки On time, Out time, Closed by system; тип таску перемикається локальним селектором.
7Average tasks processing speedСередня швидкість опрацювання в секундах; tooltip також показує кількість тасків.
8Quantity of sending messagesКількість відправлень у серіях Manual і Sender.

Набори типів тасків (Tasks per week):

  • goldenNeedToWriteMessage / NeedToWriteMail / ActiveChatWriteHim / ActiveChatUnanswered / Like
  • prime, udate, chathouseLike / LimitsAreOpened / NeedToWrite / Unanswered

Графіки-варіації

#ГрафікgoldenprimeudatechathouseПримітка
9Types of balanceтільки directorРозподіл $ по типах активності (%, + сума). Категорії різні по Family.
10Created ChatsКількість створених чатів за тиждень.
11Total users online + Average number of users onlinedirectorОнлайн: усі TU / наші TU / RU.
12Number of users onlinedirectordirector + topdirector + topСередня к-сть онлайн TU; director може відкрити 24-год розклад, top бачить статичний графік.
13Average online users during the daydirectordirectordirectordirectorСередній онлайн по годинах доби. Drill-down з графіка онлайну (не окремий віджет).

Категорії Types of balance (різні по Family):

  • goldenTextChat / VideoChat / EmailSend / EmailRead / other
  • udate, chathouseChatMessage / ChatMedia / ChatAudio / ChatSticker / VirtualGift / Mail / MailMedia / other
  • prime — те саме що udate/chathouse, але без ChatAudio

API

Графіки (нумерація з таблиць вище) наповнюються кількома запитами — один запит часто дає одразу кілька графіків. Підтверджені Golden operations мають Swagger deeplink; для інших Family наведено фактичний POST path із frontend-конфігурації без вигаданого Swagger anchor.

1. Головний info-endpoint (по ролі)

Графіки з цього запиту: golden — 1, 2, 3, 4, 9, 11 · prime — 1, 2, 3, 4, 9, 10 · udate / chathouse — 1, 2, 4, 9.

Familydirectortop-managersupervisoroperator
goldengetForDirectorgetForTopManagergetForSupervisorgetForOperator
primePOST /prime/dashboard/getForDirectorPOST /prime/dashboard/getForTopManagerPOST /prime/dashboard/getForSupervisorPOST /prime/dashboard/getForOperator
udatePOST /dashboard/getForDirectorPOST /dashboard/getForTopManagerPOST /dashboard/getForSupervisorPOST /dashboard/getForOperator
chathousePOST /chathouse/dashboard/getForDirectorPOST /chathouse/dashboard/getForTopManagerPOST /chathouse/dashboard/getForSupervisorPOST /chathouse/dashboard/getForOperator

Серії new / all для графіка 3 (Unique RU per week) у Golden і Prime приходять прямо звідси (charts[].man); Udate і Chathouse отримують їх окремим викликом (#3 нижче). Chathouse додатково зберігає серію payers. Типи балансу (9) і Created Chats (10) — лише для відповідних ролей/Family згідно таблиці варіацій.

2. Tasks (графіки 5, 6, 7, 8)

FamilyEndpoint
goldengetTask
primePOST /prime/dashboard/getTask
udatePOST /udate/dashboard/getTask
chathousePOST /chathouse/dashboard/getTask

3. Unique RU per week (графік 3)

Графік 3 є на всіх Family — відрізняється лише джерело даних. На golden/prime він приходить з головного info-endpoint (#1), окремого виклику нема; udate/chathouse тягнуть його окремо (getUniqueFavorite).

FamilyEndpoint
golden— (з info-endpoint #1)
prime— (з info-endpoint #1)
udatePOST /udate/dashboard/getUniqueFavorite
chathousePOST /chathouse/dashboard/getUniqueFavorite

4. Number of users online (графік 12)

Графік 12 є на prime / udate / chathouse (на golden замість нього — графік 11, з info-endpoint). Джерело — окремий виклик getOnlineLadies.

FamilyEndpoint
golden— (графік 11 з info-endpoint #1)
primePOST /prime/dashboard/getOnlineLadies
udatePOST /udate/dashboard/getOnlineLadies
chathousePOST /chathouse/dashboard/getOnlineLadies

5. 24-год розклад (drill-down, графік 13)

FamilyEndpoint
goldengetDayOnline
primePOST /prime/dashboard/getDayOnlineLadies
udatePOST /udate/dashboard/getDayOnlineLadies
chathousePOST /chathouse/dashboard/getDayOnlineLadies

6. Селектори періоду (дропдауни, не графіки)

FamilyТімліди (director)Оператори (supervisor)Тімліди (top)Оператори (top)
goldengetSupervisorsByPeriodgetOperatorsByPeriodgetSupervisorsByPeriodForTopManagergetOperatorsByPeriodForTopManager
primePOST /prime/dashboard/getSupervisorsByPeriodPOST /prime/dashboard/getOperatorsByPeriodPOST /prime/dashboard/getSupervisorsByPeriodForTopManagerPOST /prime/dashboard/getOperatorsByPeriodForTopManager
udatePOST /dashboard/getSupervisorsByPeriodPOST /dashboard/getOperatorsByPeriodPOST /dashboard/getSupervisorsByPeriodForTopManagerPOST /dashboard/getOperatorsByPeriodForTopManager
chathousePOST /chathouse/dashboard/getSupervisorsByPeriodPOST /chathouse/dashboard/getOperatorsByPeriodPOST /chathouse/dashboard/getSupervisorsByPeriodForTopManagerPOST /chathouse/dashboard/getOperatorsByPeriodForTopManager

Нюанси

  • top-manager на golden/prime не має блоку онлайн-користувачів (на udate/chathouse — має Number of users online). 24-год розклад — лише на director.
  • Селектори Teamlead/Operator завантажують опції при відкритті й показують global loader. Нові критерії не змінюють уже побудовані графіки до наступного GNR.
  • Один GNR запускає family-залежний набір запитів паралельно. Графіки замінюються лише після цілісної успішної відповіді; при помилці попередній успішний результат залишається, а причина показується через global notification.
  • Успішна відповідь без series залишає відповідні графіки порожніми; окремого текстового empty state немає.
  • Drill-down онлайну замінює відповідний тижневий графік на Average online users during the day. Закриття повертає попередній графік без нового GNR.

Зв’язки

  • operator-statistics — деталізація помісячних результатів і аналітики окремого оператора
  • TU Statistics — помісячний зріз результатів TU
  • Підтверджені Golden operation deeplink-и наведені в секції API; для інших Family зафіксовані лише фактичні frontend endpoints без вигаданих Swagger anchors.