glossary

Глосарій

Терміни і абревіатури з домену проєкту. Глобальні — тут. Сервіс-специфічні — у локальному glossary.md відповідного сервісу.

Доменні

ТермінЗначення
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

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 на сайт