ProjectOnlineSessions
backend-common/src/online-session/ · колекції project_operator_online_sessions і project_tu_workspace_sessions — відрізки online оператора і TU в його Electron для всіх проєктів. Одна фабрика схеми, дані окремо: різні перемикання з legacy і зберігання. Запис і склеювання — Online у workspace.
Поля
- project, operatorProjectId; у TU ще tuId.
- startedAt, endedAt — межі відрізка; документ на відрізок, без масивів і розрізів по днях.
Індекси
- Оператор: unique
project + operatorProjectId + startedAt;project + operatorProjectId + endedAt— відрізок, який продовжує дія, і online за період (endedAt ≥ from,startedAt < to). - TU: unique
project + operatorProjectId + tuId + startedAt;project + operatorProjectId + endedAt;project + tuId + endedAt— online TU незалежно від оператора.
Нюанси
- Міграція (
POST /v2/migrations/online-sessions/apply) з тими самими межами форматів, що legacy при читанні: оператор —golden_online_times.sessionsдо 2025-10-26,golden_operators_activitiesдалі; TU —golden_online_times.ladies[].sessionsдо 2025-10-31,golden_lady_onlineз 2025-11-01. Повна міграція — 6 хв. golden_online_timesпісля міграції потрібна лише для лічильників інвайтів сендера (ladies[].amountContact/amountAgency); їх переносимо разом із подіями надсилань. У колекції 3,74 млн порожніх документів з датами 10000–20249 року (зациклений воркер 05.06.2025), реальних — 56 777.- Обсяг Golden: оператор 470 тис. відрізків, 57 МБ + індекси 19 МБ; TU 5,9 млн (4,6 млн — до 01.11.2025), 906 МБ + 318 МБ, з 01.11.2025 ~7,7 тис. на день.
- Заміри: запис синку p50 13–17 мс, 50 операторів паралельно — 155 мс; online оператора за місяць — 5 мс, 148 операторів — 130 мс; TU оператора за місяць — 7 мс.