Pattern: Реєстрація — widget (авто phone або share)
Призначення
Перевірити реєстрацію нового користувача у widget каналі з двома гілками: телефон вже є в контексті або його потрібно ввести вручну/поділитися.
Опис патерну
Widget-реєстрація — це флоу, де бот спочатку перевіряє канал і наявність {{phone}}, а потім або запитує ім'я, або збирає телефон і вже після цього переходить до підтвердження та збереження.
Компоненти:
- Entry + pre-check —
entry_point→console_log→registered_users__get. - Start message — повідомлення “Пройдімо реєстрацію...”.
- Channel switch —
switchза{{channel}}(widget → перевіркаphone). - Phone presence switch —
switchза{{phone}}(є/немає). - Phone input (fallback) —
inputreg_phoneз валідацієюphone. - Name input —
inputreg_first_name. - Confirmation + persist — повідомлення підтвердження →
set→console_log→registered_users__set. - Exit —
connect_fromу секцію 202 після реєстрації.
Workflow:
- Запуск секції “Реєстрація”.
- Перевірка існуючого користувача в
registered_users. - Якщо зареєстрований — вихід у секцію 202.
- Якщо новий — показ стартового повідомлення.
switchпоchannel == widget.switchпо наявності{{phone}}.- Якщо
phoneє — запит імені. - Якщо
phoneнемає — запит телефону → запит імені. - Підтвердження, запис
registration:*, збереження уregistered_users, вихід.
Кроки оцінки
1. Аналіз гілок widget + phone
Що включає:
- Перевірка
switchпо{{channel}}та{{phone}}. - Визначення гілок “phone є” та “phone немає”.
Оцінка: 0.5-1.0 години
Фактори:
- Додаткові канали в гілках: +0.5 год
2. Підготовка тестових сценаріїв
Що включає:
- Два стани контексту: з
phoneта безphone. - Валідний та невалідний формат телефону.
Оцінка: 0.5-1.0 години
Фактори:
- Нестабільна ініціалізація контексту: +25%
3. Перевірка збереження та виходу
Що включає:
- Перевірка
registration:phone,registration:UserID. - Перевірка
registered_users__setта переходу в секцію 202.
Оцінка: 0.5-1.0 години
Фактори:
- Додаткові перевірки через лог/API: +0.5 год
Типова структура оцінки
Базовий варіант
| Підзадача | Складність | Реалізація | Тестування | Підсумок |
|---|---|---|---|---|
| Аналіз гілок widget + phone | S | 0.5 | 0.5 | 1.0 |
| Підготовка сценаріїв | S | 0.5 | 0.5 | 1.0 |
| Перевірка збереження та виходу | M | 0.5 | 1.0 | 1.5 |
| Разом | 1.5 | 2.0 | 3.5 |
Ризиковий буфер: Medium Risk (+25%) = +0.5 год
Фінальна оцінка: 4.0 год
Невизначеності та ризики
Типові невизначеності:
- Формат
phone, який підставляється автоматично у widget. - Час появи
phoneу контексті від клієнта.
Ризики:
- Неконсистентний
phoneу widget: +25% - Розходження в контексті
channel: +15%
Рекомендації
- Перевіряй обидві гілки
phone(є/немає) як окремі кейси. - Валідність телефону тестуй через ручний ввід і авто-підстановку.
- Фіксуй переходи у секцію 202 після успішної реєстрації.
- Перевіряй, що
registration:UserIDвідповідає{{chat_id}}.
Приклади використання
engine_9_2026-01-21-10-27.json— секція 232 “Реєстрація” (widget шлях).
Пов'язані документи
temp/actions/engine_9_2026-01-21-10-27.json— конфігурація бота, секція 232.
description: "Перевірка реєстрації нового користувача у widget з авто/шарингом телефону" alwaysApply: false
Pattern: Реєстрація — widget (авто phone або share)
Призначення
Перевірити реєстрацію нового користувача у widget каналі з двома гілками: телефон вже є в контексті або його потрібно ввести вручну/поділитися.
Опис патерну
Widget-реєстрація — це флоу, де бот спочатку перевіряє канал і наявність {{phone}}, а потім або запитує ім'я, або збирає телефон і вже після цього переходить до підтвердження та збереження.
Компоненти:
- Entry + pre-check —
entry_point→console_log→registered_users__get. - Start message — повідомлення “Пройдімо реєстрацію...”.
- Channel switch —
switchза{{channel}}(widget → перевіркаphone). - Phone presence switch —
switchза{{phone}}(є/немає). - Phone input (fallback) —
inputreg_phoneз валідацієюphone. - Name input —
inputreg_first_name. - Confirmation + persist — повідомлення підтвердження →
set→console_log→registered_users__set. - Exit —
connect_fromу секцію 202 після реєстрації.
Workflow:
- Запуск секції “Реєстрація”.
- Перевірка існуючого користувача в
registered_users. - Якщо зареєстрований — вихід у секцію 202.
- Якщо новий — показ стартового повідомлення.
switchпоchannel == widget.switchпо наявності{{phone}}.- Якщо
phoneє — запит імені. - Якщо
phoneнемає — запит телефону → запит імені. - Підтвердження, запис
registration:*, збереження уregistered_users, вихід.
Кроки оцінки
1. Аналіз гілок widget + phone
Що включає:
- Перевірка
switchпо{{channel}}та{{phone}}. - Визначення гілок “phone є” та “phone немає”.
Оцінка: 0.5-1.0 години
Фактори:
- Додаткові канали в гілках: +0.5 год
2. Підготовка тестових сценаріїв
Що включає:
- Два стани контексту: з
phoneта безphone. - Валідний та невалідний формат телефону.
Оцінка: 0.5-1.0 години
Фактори:
- Нестабільна ініціалізація контексту: +25%
3. Перевірка збереження та виходу
Що включає:
- Перевірка
registration:phone,registration:UserID. - Перевірка
registered_users__setта переходу в секцію 202.
Оцінка: 0.5-1.0 години
Фактори:
- Додаткові перевірки через лог/API: +0.5 год
Типова структура оцінки
Базовий варіант
| Підзадача | Складність | Реалізація | Тестування | Підсумок |
|---|---|---|---|---|
| Аналіз гілок widget + phone | S | 0.5 | 0.5 | 1.0 |
| Підготовка сценаріїв | S | 0.5 | 0.5 | 1.0 |
| Перевірка збереження та виходу | M | 0.5 | 1.0 | 1.5 |
| Разом | 1.5 | 2.0 | 3.5 |
Ризиковий буфер: Medium Risk (+25%) = +0.5 год
Фінальна оцінка: 4.0 год
Невизначеності та ризики
Типові невизначеності:
- Формат
phone, який підставляється автоматично у widget. - Час появи
phoneу контексті від клієнта.
Ризики:
- Неконсистентний
phoneу widget: +25% - Розходження в контексті
channel: +15%
Рекомендації
- Перевіряй обидві гілки
phone(є/немає) як окремі кейси. - Валідність телефону тестуй через ручний ввід і авто-підстановку.
- Фіксуй переходи у секцію 202 після успішної реєстрації.
- Перевіряй, що
registration:UserIDвідповідає{{chat_id}}.
Приклади використання
engine_9_2026-01-21-10-27.json— секція 232 “Реєстрація” (widget шлях).
Пов'язані документи
temp/actions/engine_9_2026-01-21-10-27.json— конфігурація бота, секція 232.