glossary

Глосарій

Терміни і абревіатури проєкту. Верхня частина — зафіксовані терміни Project Platform: вони вичитані й обов’язкові для нового коду та документації. Нижче за лінією — старий згенерований глосарій legacy; він не вичитаний, звіряти з ним новий код не треба, терміни звідти переносяться нагору після перегляду.

Бізнес-терміни

ТермінЗначенняПогоджено
TUАнкета, від імені якої працює оператор; legacy — lady.2026-09-07
RUЧоловік, клієнт партнерського сайту; legacy — man.2026-09-07
Проєкт (Project)Один із партнерських сайтів: golden, prime, chathouse, udate. Базова одиниця даних і ролей. У коді — project, enum Projects. Слово Family у новому коді, назвах колекцій і документації не вживаємо: воно лишається тільки в legacy.2026-09-09
Тімлід (Team lead)Роль керівника операторів. У новому коді, полях і API — teamLead (teamLeadProjectId). Слово supervisor лишається лише в legacy, у ключі ролі Stack supervisor і в полі зміни TU supervisorProjectId.2026-09-25
Адмін панель (адмінка)Обліковий запис на партнерському сайті, якому належать TU. Через неї ми бачимо TU і виконуємо запити від її імені; у коді — admin. Не плутати з ролями наших користувачів.на погодженні
FavoriteПара TU + RU, у якій RU зробив хоч одну платну дію.на погодженні
Global favoriteRU у межах проєкту: короткий профіль, останній online і агрегат усіх його favorites.на погодженні
ProfitПоказник пари TU + RU у форматі проєкту: сума витрат у Golden і Chathouse, кількість платних вхідних повідомлень у Prime і Udate.на погодженні
Active favoriteRU з платною дією за останні 7 днів; не зберігається, рахується від останньої платної дії.на погодженні
FreeloaderRU, який не вважається платним за правилом проєкту; ознака глобальна для RU і живе в global favorite.на погодженні

Ідентифікатори (технічне)

ТермінЗначенняПогоджено
tuIdCanonical Mongo ID TU у project_tus. Єдиний ID TU у нових API.на погодженні
tuPartnerIdID TU на боці партнера (partnerIds.idApi); ним оперують Electron і розширення. Legacy — id_api, ladyId_api.на погодженні
ruIdЄдиний ID RU: ID на боці партнера як string — числовий у Golden і Prime, ULID у Chathouse і Udate. Legacy — manId_api, manId, manUlid.на погодженні
Project ID_id запису в users.assignments[] — роль користувача в конкретному проєкті. Саме він стоїть у змінах TU (supervisorProjectId / operatorProjectId) і в API як teamLeadProjectId / operatorProjectId. Legacy — Family ID, *FamilyId.2026-09-09
User ID_id самого користувача (колекція users у Stack). У коді — userId, ролі — enum UserRole. Legacy — Stack ID, stackId, StackRoles.2026-09-09

Слово assignment вживаємо лише для призначення TU (assignments.shifts, client manager), не для ID користувача. Назву проєкту (golden) не вшиваємо у спільні назви класів, полів і env-змінних. Слово Stack лишається лише для самого сервісу stack та його токена (StackTokenPayload), не для ID користувача.


Нижче — legacy-глосарій

Згенерований AI і не вичитаний. Описує старі сервіси stack-*; на нього не спираємось у новому коді. Терміни переносяться у верхню частину після перегляду.

Legacy-глосарій

Доменні

ТермінЗначення
RUЧоловік — клієнт сайту
TUАнкета, жінка, леді — профіль від імені якого працює оператор
LTLifetime — кількість днів відколи RU зробив першу витрату по TU
LT day: NПоточне значення lifetime для пари RU↔TU
Connection (Conn)Пара TU↔RU з хоч однією витратою. Категорії за LT: New = LT0 (день знайомства), Young = LT1–7, Old = LT8+
Chat / Mail / EmailТри режими переписки з RU (на сайті — Chat і Mail; Email — особиста gmail-скринька TU)
InviteШаблон повідомлення який Sender використовує для авторозсилки
TaskЗавдання оператора зробити дію (зазвичай — написати) яке створюється за різних умов
SenderСистема автоматичної розсилки інвайтів
WorkspaceРобоча вкладка оператора у electron-клієнті — листування, фаворити, таски
WhitelistСписок RU яким можна слати інвайт (антипод blacklist)
FamilyОдин із 4-х партнерських проєктів — golden, prime, udate, chathouse. Базова одиниця сегментації даних і ролей
Stack LadyКартка клієнтки на рівні stack (mongo stack_ladies); одна Stack Lady може мати кілька Family-профілів
Lady LegendСтруктурована «легенда» TU (lifestyle, character, family, hobby, plans) — фон, який оператор підтримує у переписці
NoteЗамітка оператора по парі TU↔RU
AI NoteЗамітка згенерована AI; модерується супервайзером
TicketСутність-задача всередині системи з призначенням, статусами, дедлайном (поза тасками операторів)
CardКартка кандидата в воронці рекрутингу
Trainee / Mentor / CourseСутності внутрішньої академії

Сегменти і жаргон

ТермінЗначення
ProfitСума витрат RU на TU ($) — основний бізнес-показник пари
GiftsКількість віртуальних подарунків від RU до TU
Active FavoriteRU що нещодавно платив (за спецправилом) — важливіша підкатегорія Favorites
FreeloaderЖаргон для RU що «не платить»

Ідентифікатори

Декілька різних ID які описують один і той же субʼєкт у різних системах — постійно плутають.

ТермінЗначення
stackLadyIdMongo-ID запису в stack_ladies
id_api / ladyId_api / manId_apiID профілю в API партнерського сайту (НЕ mongo)
adminId_apiid_api адміна на партнерському сайті, якому належить TU
operatorFamilyIdMongo-ID запису Family оператора (один на пару Family×User); ключ маршрутизації подій
stackOperatorIdID юзера

Партнерські сайти

ТермінЗначення
Golden / GoldenbrideПартнер №1, бек у stack-golden
PrimeПартнер з VIP-механікою, newsfeed, icebreakers; бек у stack-prime
UdateПартнер з окремим бекендом (GraphQL, ULID-и); stack-udate
ChathouseПартнер з auth_codes-сесіями і icebreakers; stack-chathouse
TalkytimesЗустрічається у коді (папки talkytimes/, константи TALKYTIMES_*) як назва для Prime. TODO: визначити фінальну назву (prime чи talkytimes) і уніфікувати у коді й документації.

Зовнішні системи / API

ТермінЗначення
Official APIЗовнішнє HTTP-API партнерського сайту (списки, фінанси, чат-історія)
DeepLЗовнішній сервіс перекладу (UK/RU/EN)
Gmail (sync)Інтеграція особистих email-скриньок TU через Gmail API
GeminiLLM-провайдер для AI Legend
ClickHouseАналітичне сховище для метрик
Telegram bots@BeSocialHR_bot для HR-кандидатів та інші

Ролі

Ролі перевіряються через guard([StackRoles.<name>]) у бек-сервісах. Описуємо коротко — детальні бізнес-правила лишаємо коду і Swagger-у.

Роль (код)КомуПризначення
directorКерівництвоНайвищий рівень доступу. Може все що обмежено цією роллю в Swagger. (TODO: уточнити обсяг)
topManagerТоп-менеджмент агенції(TODO)
supervisorСупервайзер операторівУ розмові — «тімлід»; як StackRole — лише supervisor (team_lead як ідентифікатор не вживається)
client_managerМенеджер клієнток (CM)(TODO)
operatorОператор electron-клієнтаОсновний користувач stack-electron. Викликає /golden/electron-api/*.
hrHR-департамент(TODO: уточнити обсяг — ймовірно секції академії та кандидатів)
recruiterРекрутер(TODO: уточнити — рекрутингова воронка, картки кандидатів)
technical_departmentТехнічний департамент(TODO: уточнити — ймовірно адмін-доступ до системних розділів)

Технічно: enum StackRoles живе в stack-commons; на ендпоінті — @UseBefore(guard([StackRoles.<name>, ...])); без потрібної ролі → HTTP 400 + {success:false, data:{message:'Not allow role'}}; без токена → 401; guard([]) — будь-який авторизований. Перелік ендпоінтів, захищених кожною роллю — у Swagger UI відповідного сервісу, тут не дублюємо.

Нова роль: значення в enum StackRoles (stack-commons) → рядок у таблиці вище.

Сервіси (короткий покажчик)

Повна мапа — у Architecture.

СервісПризначення
stackТочка входу, оркестратор, основний веб-сервер
stack-clientВеб-фронт
stack-electronЕлектрон-програма оператора
stack-goldenБек по проєкту goldenbride
stack-primeБек по проєкту prime
stack-udateБек по проєкту udate
stack-chathouseБек по проєкту chathouse
stack-academyВнутрішня школа
stack-aiAI-сервіс (легенди, переклади)
stack-commonsСпільні утиліти, middleware, types
project-application-apiProject Platform: єдине API frontend та Electron над canonical collections

Runtime / процеси

ТермінЗначення
OperatorRunnerКорневий runtime в електроні per авторизований оператор
LadyRunnerPer-TU runtime — підтримує сесію в сайт, чергу чату, sender’и, таски
Chat Sender / Mail SenderАвто-сервіси що дрейнять інвайти і відправляють по сайт-API
Workspace streamingLive-спостереження тімліда за поточним екраном оператора (socket-проксі)

Технічне

ТермінЗначення
Swagger UI v2Auto-generated Swagger з routing-controllers, доступний на /<service>/api-docs/v2
Legacy controllerКонтролер на BaseController + bindRoutes — поза auto-Swagger, поступово мігруємо на routing-controllers
Routing-controllersДекораторний підхід (@JsonController, @Get, @UseBefore) — джерело Swagger v2
Family-prefixed модельКонвенція mongo-моделей: golden_lady, prime_lady, chathouse_tasks, golden_send_mail_history тощо
assignmentsПрив’язка одного користувача до однієї або кількох ролей у різних Families (IUserRoleAssignment)
RMQRabbitMQ — асинхронна шина між сервісами
VaultПапка яка відкривається в Obsidian як єдина база
QuartzСтатичний сайт-генератор яким рендеримо vault на сайт