Воркспейс — поточний стан по проектах
As-is порівняння реалізацій оператор-ранера по Golden / Chathouse / Prime. Цільова уніфікація — у Unification.
Проекти (колонки):
| Проект | Сайт | Де крутиться ранер | Ключові класи |
|---|---|---|---|
| Golden | Goldenbride | клієнт (stack-electron, src/main/operator/) | OperatorRunner, LadyRunner, interval-services/* |
| Chathouse | Chathouse | сервер (stack-chathouse) | OperatorRunner, LadyRunner, WorkspaceRunner |
| Prime | TalkyTimes | сервер (stack-prime) | PrimeRunner, AsyncPrimeWs, воркери (без per-lady класу) |
Як читати
Клас фічі — наскільки вона повинна бути однаковою:
| Клас | Значення |
|---|---|
| Спільне | має бути в усіх і працювати однаково — ціль уніфікації |
| Вимушено різне | потрібне всюди, але реалізація лише специфічна (сендер, фаворити) |
| Унікальне | тільки в одному проекті, не портується (вкладка Electron, auth_codes) |
Стан по проекту — мітка:
| Мітка | Значення |
|---|---|
| 🟢 | є і відповідає ідеалу |
| 🟡 | є, але відрізняється (механізм / таймінг) |
| 🔴 | нема / не відповідає |
| — | не застосовно |
| ? | не з’ясовано |
| 💬 | потребує обговорення |
1. Логін = запуск воркспейсу
| # | Фіча | Клас | Golden | Chathouse | Prime |
|---|---|---|---|---|---|
| 1.1 | Перевірка версії програми | Унікальне 💬 | 🟢 | 💬 | 💬 |
| 1.2 | Синхронізація локального/серверного часу | Унікальне 💬 | 🟢 | 💬 | 💬 |
| 1.3 | Конект сокета (до серверу) → список TU | Спільне | 🟢 | 🟢 | 🟡 |
| 1.4 | Поведінка при дисконекті | Вимушено різне💬 | 🟢 | 🟢 | 🟢 |
- 1.1 — Electron — зрозуміло; на фронті можна перевіряти версію фронта після оновлення - щоб швидше застосувались фікси.
- 1.2 — Перевірка часу юзера має місце бути всюди.
- 1.3 — Успішний конект сокету тригерить запуску оператор ранера
- 1.4 — Golden працює далі (авто-реконект з бекофом). Мережу стежить network-service: пінг Google + сервер кожні 10с; обидва недоступні 60с →
app.quit(). Chathouse/Prime: лоадер на фронті 60с → зупинка ранера. Вхід іншого оператора (forceDisconnect) вбиває сесію в усіх трьох (у Golden теж →app.exit).
2. Оператор-ранер (ініціалізація)
Захист і допуск
| # | Фіча | Клас | Golden | Chathouse | Prime |
|---|---|---|---|---|---|
| 2.1 | Захист від паралельного запуску | Спільне | 🟢 | 🟢 | 🟢 |
| 2.2 | Допуск анкети перед логіном | Спільне 💬 | 🟡 | 🟢 | 🟡 |
| 2.3 | Перевірка робочих годин | Спільне 💬 | 🟢 | 🟢 | 🟢 |
| 2.4 | Стартовий чек-ліст логік | Спільне 💬 | 🔴 | 🟢 | 🟢 |
| 2.5 | Ініціалізація сервісів Electron | Унікальне | 🟢 | — | — |
- 2.1 — Golden: В електрону ця логіка простіша, бо це один додаток; Chathouse та Prime - складніші перевірки (треба уніфікувати) бо фронт можна оновлювати і тригерити процеси.
- 2.2 — Суть однакова: перевірити робочі години + перевірити анкети. Реалізація різна. Chathouse:
auth_codes—ceil(N анкет / maxProfilesPerAuthCode)кодів, анкети розкладаються по кодах; поза робочими годинами TU логіниться лише якщо їїlastAuthCodeсеред кодів оператора. Prime:isBlocked/isDeleted/isActive+lastRefCode(поза годинами — лише за збігом refcode). - 2.3 — Ця логіка є всюди, але реалізовано по-різному. Golden це перевіряє при конекті/реконекті сокету коли отримує у відповідь список анкет.
- 2.4 — чек-ліст Favorite/UnFavorite/Icebreaker стрімиться оператору (Chathouse
StatusLogicalRunner, PrimestatusLogical); у Golden нема. Розглянув би це для покращення. - 2.4 — Електрону треба отримати різні дані та ініціалізувати сервіси (їх будуть використовувати сервіси які піднімуться далі)
Сервіси / ранери оператора
| # | Фіча | Клас | Golden | Chathouse | Prime |
|---|---|---|---|---|---|
| 2.5 | Агрегація дій оператора (онлайну) | Спільне💬 | 🟢 | 🟡 | 🟡 |
| 2.6 | Логіка оновлення останнього онлайну оператора (редіс) | Спільне💬 | 🟡 | 🟡 | 🟡 |
| 2.7 | NeedToWriteMailRunner | Спільне💬 | 🟡 | 🟡 | 🟡 |
| 2.8 | PostChatMailTaskRunner | Спільне💬 | 🔴 | 🟢 | 🔴 |
| 2.9 | Стрім-трекер камер (стрім TU) | Унікальне | 🟢 | — | — |
| 2.10 | Data-sync стану на бек | Унікальне | 🟢 | — | — |
| 2.11 | Ініціалізація ранерів TU (на рівні оператор ранера) - це відбувається паралельно з логіками оператор ранера | Унікальне | 🟢 | — | — |
- 2.5 — Всюди є логіка кіку за неактивність, підрахунку онлайну та дій оператора. Реалізовано по-різному й розкидано. Golden: неактивність 10хв → попап → 30с →
app.quit(). Chathouse/Prime: 5хв (prod) → дисконект. ⚠️ Golden sleep-mode зараз фактично no-op (sleepModeActiveзавжди false) — гейти сну в тасках/сендері неактивні (#fix). - 2.6 — оновлює в Redis коли оператор був онлайн, умови різні. Ранери: Golden —
activity/lady-online; Chathouse —LadiesOnlineSaver(щогодини) +UserOnlineSaverRunner; Prime —LadyOnlineSaver(2хв) +UserOnlineSaverRunner. - 2.7 — Чатхаус має кілька окремих логік по створенню NeedToWriteMail тасків
- 2.8 — PostChatMailTaskRunner ще однин спосіб створення цих тасків, які має тільки чатхаус.
- 2.9 — Golden фіксує інтервали трансляцій анкети;
- 2.10 — Electron зберігає резульатати логік та дані на сервер;
- 2.11 — Electron не має прямого доступу до БД → перед ранерами йде синхронний критичний шлях (раніше пропущений): перекладач (
deepL), network-service (пінг 10с), отриманняPUBLIC_KEY, man-service (стор профілів RU + збереження нових 300с), agency-service (глобальний набір агенції для NEW-сендера),activity,stream-tracking,data-sync. Далі — ініціалізація даних для ранерів TU (паралельно з логіками оператор-ранера): — Ініт сервісу статистики — Ініт та запуск сервісу фаворитів — Отримання історії тасків — 🟡Запуск Імейл сервісу (це вшито на цьому етапі і унікально поки тільки для голден) — Інтервал оновлення статистики — Запуск інтервалів створення тасків — Запуск інтервалу чат сендера — Ініціалізація сендерів — Старт леді онлайн сервісу - перевіряє онлайн анкет та сокет, реконектить, там логує час в онлайні — Сервіс збереження переглядів профіля.
3. Ранер TU (LadyRunner)
| # | Фіча | Клас | Golden | Chathouse | Prime |
|---|---|---|---|---|---|
| 3.1 | Логін анкети | Спільне | 🟢 | 🟢 | 🟢 |
| 3.2 | Тримання анкети онлайн | Спільне | 🟡 | 🟡 | 🟡 |
| 3.3 | Фаворит-сервіс | Вимушено різне💬 | 🟡 | 🟡 | 🟡 |
| 3.4 | Сокет до сайту (реалтайм) | Спільне | 🟢 | 🟢 | 🟢 |
| 3.5 | Оновлення чат/фаворит-історії | Вимушено різне | 🟡 | 🟢 | 🟢 |
| 3.6 | Таск-сервіс | Спільне 💬 | 🟢 | 🟢 | 🟢 |
| 3.7 | Айс воркер | Вимушено різне | — | 🟢 | 🟢 |
| 3.8 | Ініт вайт-листа | Унікальне💬 | 🟢 | — | — |
| 3.9 | Man-online сервіс | Вимушено різне | 🟢 | — | — |
- 3.1 — Логін як би все зрозуміло. Тільки голден має нюанси: створення сторінки, логін на сторінці, сокет, логін на апі.
- 3.2 (приклад складнощів) — Golden
lady-online.serviceкожні 60с робить два механізми: перевірка онлайну (getOnlineLadies→ тригер реконекту, ≤3 спроби якщо !вкладка / !онлайн) + активнийsetAuthUserOnline(keepAlive). Chathouse:ApiOnlineLadyRunner(per-TU 60с) лише реєструє TU у глобальнийPingOnlineListRunner, який батчить per-adminId і пінгує адмін-API 60с (тільки prod). Prime: без keep-alive, онлайн тримає лише Centrifuge WS. Перевірка онлайну з партнерського API реально є тільки в Golden (getOnlineLadies); Prime її не робить, хоча адмінкаdatame.cloud/platform/trusted-user/collectionповертає TU зis_online; Chathouse окремого запиту не має (presence зі сокета). Реконект: Golden — re-init вкладки (≤~4 спроби) + Red5-сокет 5× (3/7/10/20/20с); ChathouseReconnectLadyRunnerлише на fail старту TU, до 15×; Prime — вбудований Centrifuge-бекоф без re-login. - 3.3 — з даних сайту по-різному: Golden оверлей (база + пер-хв статистика);
isActiveFavorite= активність за 7 днів (той самий поріг, що й Chathouse — не унікальний для нього). ChathouseFavoriteWorker(7д, флаги blocked/isBlackList/isFree, синк блок-листа в ClickHouse). PrimeFavoritesStore(поріг 11 платних) +mailTaskPrimeпри першому проході робить one-time скрол усієї історії per TU, рахує платні вхідні й наповнює фаворитів. - 3.4 — Golden — сокет усередині браузерної вкладки анкети; Chathouse/Prime — серверний Centrifuge WS.
- 3.5 — Golden оновлює фаворитів зі статистики, чат-історії нема. Chathouse
WorkspaceRunner60с: два списки (saved + all), вікно історії 2год, тегує freeloader. PrimePrimeWorkspaceRunner60с: чат-історія вікно 4год, закладки глибина 7д, мейл-історія 7д. - 3.6 — Всі мають таск фабрику та сервіси, але реалізовано по-різному
- 3.7 — Айс-воркер: раз на день на TU активує 1 рандомний ice на кожен тип (діалог / inmail), стрімить у чек-ліст статусів. Golden такого не має.
- 3.8 — 💬 Зараз вайт лист має голден і ця ініціалізація просто треба, але потребувати обговорення.
- 3.9 — Golden: онлайн+стрім кожні 15с, профілі RU ~5хв; Голден має апі для цього, щоб тримати пул РЮ онлайн та оновлювати їх міні-профіль.
4. Таски
| # | Таск | Колір | Клас | Golden | Chathouse | Prime |
|---|---|---|---|---|---|---|
| 4.1 | UnansweredMessage | жовтий | Спільне | 🟡 50с | 🟡 120с | 🟡 120с |
| 4.2 | ActiveChat | жовтий | Вимушено різне | 🟢 50с | — | — |
| 4.3 | UnansweredMail | жовтий | Спільне | 🟡 600с | 🟡 900с | 🟡 900с |
| 4.4 | NeedToWriteMessage | зелений | Спільне | 🟡 120с | 🟡 180с | 🟡 180с |
| 4.5 | NeedToWriteMail | зелений | Спільне | 🟡 600с | 🟡 1200с | — |
| 4.6 | Like | синій | Вимушено різне | 🟡 50с | 🟡 300с | 🟡 300с |
| 4.7 | LimitsAreOpened | червоний | Спільне | — | 🟢 300с | 🟢 300с |
| 4.8 | Typing | — | ? | 🔴 | 🟢 | 🟡 |
| 4.9 | UnansweredEmail | жовтий | Унікальне | 🟢 3600с | — | — |
Числа в таблиці — таймер авто-закриття таска, не інтервал скану (інтервали — у таблиці «Умови створення» нижче). Golden mail: оператору показується 900с, хард-закриття — 600с. Prime-числа теж таймери; реальні кадансі скану лише в умовах.
- 4.1 — RU написав повідомлення.
- 4.2 — Особливість голдена та платного чату.
- 4.3 — RU написав листа.
- 4.4 — активний фаворит онлайн, останнє від TU >10хв.
- 4.5 — активний фаворит онлайн + останній лист >12год..
- 4.6 — вхідний лайк/розочка (Golden 🌹 → Like; Chathouse/Prime — лайк профіля).
- 4.7 — пустий діалог з відкритими лімітами;
- 4.8 — подія typing по сокету, інфо-таск без збереження (Prime — no-op).
- 4.9 — клієнт-email діалог (окремий канал, не листи сайту).
Умови створення тасків
Три осі. Механізм: сокет (реалтайм-подія) · скрол (інтервальний обхід/пагінація діалогів) · статистика (колонки подій). Типи: Unanswered чат/мейл, NeedToWrite чат/мейл, OpenLimits, OpenLimits VIP, Like, Typing. Скрол-логіки: що крутимо → знаходимо → як часто → як глибоко.
Шляхи створення по типах:
| Тип | Golden | Chathouse | Prime |
|---|---|---|---|
| Unanswered чат | сокет + скрол | сокет + скрол | сокет + скрол |
| Unanswered мейл | статистика | сокет + скрол | скрол |
| NeedToWrite чат | скрол | скрол + сокет | скрол (×2) |
| NeedToWrite мейл | статистика | скрол + статистика + сокет | — (зводиться) |
| OpenLimits | — | скрол | скрол + сокет |
| OpenLimits VIP | — | — | планувальник (наш DB) |
| Like | сокет | сокет + скрол | скрол + сокет |
| Typing | — | сокет | — |
Golden-only: ActiveChat (сокет, стейт-машина платного чату). Prime має ще LikeMail (скрол, окремий 600с).
Скрол-логіки — що крутимо і що знаходимо:
| Проєкт | Що крутимо (запит) | Знаходить | Каданс | Глибина |
|---|---|---|---|---|
| Golden | ростер онлайн-фаворитів (in-memory) + chatHistory | Unanswered / NeedToWrite чат | 60с | снапшот останнього повід. (без пагінації) |
| Golden | ростер зі статистики + getMail | Unanswered / NeedToWrite мейл | 60с | снапшот останнього листа |
| Chathouse | вкладка all + is_online | NeedToWrite чат/мейл | 60с | до кінця (курсор next, поки стор. ≥50) |
| Chathouse | вкладка new | Unanswered чат/мейл, Like, OpenLimits | 60с | до кінця |
| Chathouse | вкладка saved (фідер) | — (годує PostChatMail) | 60с | до кінця |
| Prime | criteria [active, online] | NeedToWrite (online) | 120с | до кінця (limit 40) |
| Prime | criteria unanswered | Unanswered чат, Like | 60с | до кінця (40) |
| Prime | пошта inbox_unanswered | Unanswered мейл | 60с | 1 сторінка (15) |
| Prime | criteria active | OpenLimits | 120с | 1 стор./тік, stateful-курсор назад до 7 днів |
| Prime | criteria bookmarked (снапшот воркспейсу) | NeedToWrite (офлайн-фаворит) | 60с | до 7 днів (limit 50) |
| Prime | criteria [] (всі діалоги) | LikeMail | 600с | до кінця (20) + повна історія на 1-му проході |
Три патерни глибини: снапшот (Golden — не пагінує, тільки останнє повід.) · до кінця (Chathouse + більшість Prime — щотіка вся вкладка) · обмежене вікно (Prime openLimit і bookmarked — назад до 7 днів; openLimit ще й тягне курсор між тіками).
Скрол — що саме крутимо (+ умови попадання в таск):
Unanswered чат.
- Golden — ростер онлайн-фаворитів, по кожному
chatHistory(снапшот останнього, без пагінації). Умова: останнє — від RU + чатready-to-send. - Chathouse — пагінує вкладку
new(курсорnext, до <50). Умова: останнє — платне вхідне. - Prime — criteria
unanswered(курсор, limit 40). Умова: останнє — платний тип +messagesLeft.
Unanswered мейл.
- Golden — скролу нема (від статистики);
getMailзвіряє: останній лист від RU, <1 рік, не заблокований. - Chathouse — та сама вкладка
new, якщо останнє = платний inmail. - Prime — пошта
inbox_unanswered(1 стор., limit 15). Умова:lettersLeft+ діалог не заблокований.
NeedToWrite чат.
- Golden — ростер активних онлайн-фаворитів,
chatHistory. Умова: останнє — від TU >10хв, не white-list, чатready-to-send. - Chathouse — вкладка
all+is_online. Умова: TU-останнє, є chat-ліміти, збережений/онлайн або >1год. - Prime — criteria
[active,online]: TU-останнє ≥2год +messagesLeft+ bookmarked. + сканерbookmarked(NoOnlineActiveFavorite): RU офлайн, останнє 12–16год, є ліміти.
NeedToWrite мейл.
- Golden — від статистики: активний фаворит онлайн, останній лист >12год або прийшов бонус, mail
ready-to-send. - Chathouse — вкладка all+online при mail-лімітах (решта шляхів — статистика/сокет).
- Prime — окремого типу нема (зводиться в NeedToWrite / обробляє мейл-сендер).
OpenLimits.
- Chathouse — вкладка
new: порожній/непроявлений діалог (id=null) або «liked each other» з відкритими лімітами. - Prime — criteria
active, stateful-курсор (1 стор./тік, limit 15, reset на 7 днях). Умова: останнє =system, єmessagesLeft, не заблокований, ≤7 днів.
OpenLimits VIP.
- Prime — не скрол: планувальник по нашому DB. Умова: леді активна +
canCreateChat, є ліміти, не частіше ніж 1 VIP / 2год на TU; + ручне.
Like.
- Chathouse — fallback у вкладці
new: вхідне = лайк + ліміти. - Prime — criteria
unanswered: останнє = like-тип +messagesLeft. LikeMail — усі діалоги ([], limit 20): like + bookmarked +lettersLeft, чат-ліміти вичерпані.
Typing — тільки сокет, скролу нема.
Статистика (є лише там, де є детальна статистика подій):
- Golden — temp-statistics:
EMAIL_SEND→ Unanswered мейл;EmailRead/OpenAttach→ NeedToWrite мейл (жене весь mail-блок). - Chathouse — Mongo-статистика:
inmail_read→ NeedToWrite мейл (кап 2 на оператора); spend-події →PostChatMail(≥10хв після чату). 2 з 4 mail-шляхів. - Prime — детальної статистики нема → статистичні шляхи неможливі. Тому mail Prime тягне сканом пошти/лімітів, а окремого NeedToWrite мейл узагалі нема.
Client-email (Golden UnansweredEmail) — окрема логіка: EmailService 60с сканує зовнішній email-інбокс леді, зав’язана на поштові акаунти, а не на воркспейс-API сайтів.
Закриття тасків
Golden — статуси: лише not_active_by_timer (+ хард-видалення).
- Відповідь оператора: chat закриває chat-таски, mail — mail-таски, email — email-таск (лог дій).
- Таймер: сам не закриває — треба «таймер минув І RU офлайн» (sweep 15с);
NeedToWriteMessage— щойно RU офлайн. - RU заблокував / блек-лист сайту (5хв): закриває
NeedToWriteMessage/NeedToWriteMail. - Втрата статусу активного фаворита (60с): закриває
NeedToWriteMessage/NeedToWriteMail. - Витіснення:
UnansweredMail>NeedToWriteMail;ActiveChat/Unanswered>NeedToWrite/Like. - Дисконект / закриття програми: зупинка lady-runner закриває всі таски одразу (прострочені →
not_active_by_timer, решта — хард-видалення); нові не створюються. - Ре-старт після логіну: хард-видаляє висячі таски леді.
Chathouse — статуси: not_active_by_timer / closed_offline / need_debug (+ хард).
- Відповідь оператора: mail-повідомлення закриває тільки mail-таски; chat — усі не-mail для пари.
- Таймер: сервер форсить тільки для NeedToWrite (і лише якщо RU офлайн); для решти типів таймер — візуальний на фронті.
- RU заблокував анкету: виявляється сканом (
blocked_by_ruу діалозі), не сокетом (подіяtrusted_user_blockне в allowed-спискуApiWs) → хард-видалення всіх типів пари. - Витіснення:
Unanswered>NeedToWrite; mail-слот (кап 2 таски). - Дисконект / закриття програми: воркер із затримкою 10хв — не повернувся →
closed_offline(+ «підмітання» решти →need_debug); повернувся <10хв — таски лишаються. - Анти-воскресіння: кеш закритих mail-тасків не дає їх перестворити скану.
Prime — статуси: another_task / closed_offline / notactive_by_timer / need_debug (+ хард).
- Відповідь оператора: будь-яка відправка закриває всі таски пари (lady+man).
- Таймер: авто-закриває тільки online/NeedToWrite (лише якщо RU офлайн); інші типи по таймеру не закриваються.
- RU заблокував: сокет
Blockedабо помилка відправки → хард-видалення всіх типів пари. - Витіснення / дедуп: новий таск по тому ж діалогу або парі витісняє старий →
another_task. - Дисконект / закриття програми: воркер із затримкою 10хв →
closed_offline(+ решта →need_debug); повернувся <10хв — лишаються. - Ре-старт після логіну: перевіряє DB-таски (
unanswered/openLimit) →another_taskякщо застаріли (online-таски не відновлює).
Спільні тригери зупинки ранера (Chathouse/Prime): авто-дисконект неактивного оператора (5хв, prod), вхід іншого оператора на ту саму анкету, закриття вкладки/додатку, помилки авторизації сокета.
Створення діалогів
- Prime — окрема підсистема
CreatingChat: глобальний планувальник (не в ранері оператора, prod) тікає кожні 2хв і створює VIP-чат на TU не частіше ніж раз на 2год; є ручне створення оператором. Кандидати: наша агенція (profit ≥ 11), зовнішня (>30 повідомлень) або мікс; пошук рандомного онлайн-RU батчами по 50, перевірка лімітів. Коли таск-стор порожній — оператору йде сигналreadyCreateChat(пропозиція почати новий чат). - Golden — окремого створення діалогів нема. Еквівалент — реактивна стейт-машина ActiveChat на сокет-подіях
paidChatStarted/paidChatStopped(заголовки ChatActive ↔ Unanswered ↔ Finished). - Chathouse — окремого створення нема;
LimitsAreOpenedдля «непроявленого» діалогу (id=null) або «liked each other»; відправка неявно створює діалог.
5. Сендери
| # | Фіча | Клас | Golden | Chathouse | Prime |
|---|---|---|---|---|---|
| 5.1 | Архітектура | Вимушено різне | 2 окремі | єдиний | єдиний |
| 5.2 | Чат та мейл по двох типах ще (NAF/FANM) | Унікальне | 🟢 | — | — |
| 5.3 | Ланцюжки інвайтів | Спільне | 🟡 | 🟢 | 🟡 |
| 5.4 | Блек-лист | Спільне | 🟢 | 🟢 | 🟡 |
| 5.5 | Медіа-обмеження | Спільне | — | 🟢 | — |
| 5.6 | Довідправка після сендеру | Спільне | 🔴 | 🟢 | 🟡 |
| 5.7 | Хто робить інвайти | Вимушено різне 💬 | оператори | тімлід | тімлід |
Затримки:
| чат | мейл | |
|---|---|---|
| Golden (API) | рандом 65–360с/чоловіка + гейт черги 5.5с/TU | NAF 1 доба / FANM 7 діб |
| Chathouse | 1год/чоловіка | 6год |
| Prime | 2год/чоловіка | 12год/чоловіка |
- 5.1 — Golden: окремі
ChatSender+MailSender; Chathouse/Prime: єдиний ранер (чат → мейл, вирішує сам). - 5.2 — Мейл сендер
NAF(Not Active Friends, ресет щодоба; ціль — неактивні фаворити, що були онлайн за 48год, квота до дедлайну 23:45) /FANM(First Admire New Men, ресет 7 діб) — тільки Golden. - 5.3 — Golden: чат-слоти 1–18 (FAV) / 1–6 (NEW), повтор FAV через 3год, NEW через 1год; Chathouse: шаблони + до 2 дод.; Prime: скриптовий ланцюг.
- 5.4 — Golden:
golden_naf/fanm_black_list+ окремий сайт-блок-лист (оновлення 300с); Chathouse: через сторінку фаворитів (isBlackListper-(TU,RU), скіп 10хв); Prime: per-(lady,man) + глобальний. - 5.5 — Chathouse: фото лише при витраті
20+, стікер — приlimits.sticker; для витрати 0–20 — окремий low-credit шаблон мейлу. - 5.6 — Chathouse: до 2 дод. (текст/стікер/фото), перед кожною перевіряє що попереднє дійшло; (Prime через UI 💬 ???).
- 5.7 — Golden вручну (оператор/topManager + модерація); Chathouse та Prime - тімліди.
6. Імейли
| # | Фіча | Клас | Golden | Chathouse | Prime |
|---|---|---|---|---|---|
| 6.1 | Окремий канал клієнт-email | Унікальне | 🟢 | — | — |
| 6.2 | Листи сайту (inmail) | Спільне | 🟢 | 🟢 | 🟢 |
- 6.1 — зовнішні клієнт-email діалоги → таск UnansweredEmail (3600с); у Chathouse/Prime окремого email-модуля нема.
- 6.2 — листи сайту обробляються сендер/таск-блоками (розділи 4–5).
7. Великі розбіжності
| # | Фіча | Клас | Golden | Chathouse | Prime |
|---|---|---|---|---|---|
| 7.1 | Фрілоадери | Спільне 💬 | 🔴 | 🟢 | 🟢 |
| 7.2 | White-list | Унікальне | 🟢 | — | — |
| 7.3 | Фаворити та чатхісторі | Вимушено різне 💬 | 🟡 | 🟡 | 🟡 |
- 7.1 — чоловік лише з «безкоштовним» профітом (Chathouse
isFreeProfit, Primeprofit<11), виключається з мейл-тасків; Golden концепту не має. ⚠️ Chathouse: активнийOnlineTask-шлях NeedToWriteMailisFreeProfitне перевіряє (виключає лише operator-levelNeedToWriteMailTask) — виключення не суцільне. - 7.2 —
Set<manId_api>на коженLadyRunner(1 список на TU, багато RU), авто-видалення приprofit ≥ 10; RU зі статусом контакту проходять повз white-list. - 7.3 — Голден оновлює фаворитів з статистики в себе в системі. Чатхаус та прайм мають апі відмічати та підгружати діалоги з останнім повідомленням по цих типах.
8. Нотатки
- Переробить збереження нотаток чатхаус та прайм в спілну колекцію (як голден) і разом з АІ нотатками отримувати їх по курсору.