Разбор задачи
1. Уточнение scope
Задача: формализовать требование "Напоминание клиенту о предстоящей записи за 2 часа" — автоматическое уведомление через Telegram-бота, которое отправляется клиенту за 2 часа до начала бронирования.
Согласно глоссарию (п.12), Напоминание — техдолг, в текущей версии НЕ реализовано. Задача — описать, что должно быть сделано.
2. Затронутые правила
| ID | Правило | Влияние |
|---|---|---|
| C-001 | Один слот — одно бронирование | Напоминание отправляется только по подтверждённым записям |
| C-002 | Персональные данные не в логах | При логировании отправки — маскировать phone и chat_id |
| C-003 | Telegram Bot API лимиты | При массовой отправке нужна очередь, rate limiter |
| C-005 | Расписание, приоритет мастера | Время начала записи должно учитывать актуальное расписание |
| C-010 | Цена фиксируется в момент записи | В напоминании показывать price_snapshot, не текущую цену |
Статус из глоссария: Напоминание (п.12) — не реализовано, техдолг. Подписка (п.23) — тип CLIENT_BOOKING уже существует, используется для уведомлений клиенту.
3. Открытые вопросы — НУЖНЫ ОТВЕТЫ ДО НАПИСАНИЯ USER STORY
Прежде чем финализировать артефакт, мне нужны ответы на следующие вопросы:
Обязательные (блокирующие):
-
Триггер: напоминание отправляется ровно за 2 часа — это фиксированное значение или провайдер сможет его настраивать (например, за 1 / 2 / 24 часа)?
-
Статусы: напоминание отправляется только по бронированиям со статусом
confirmed, или также поpending? -
Подписка клиента: что делать, если у клиента нет Telegram-подписки (
CLIENT_BOOKINGsubscription отсутствует)? Молча пропускаем, или нужен fallback (например, SMS)? -
Повторная отправка: если напоминание не доставлено (Telegram вернул ошибку) — делаем retry? Сколько раз?
-
Отмена или перенос перед напоминанием: если запись отменена/перенесена менее чем за 2 часа до старта — напоминание отменяется или уже ушло?
Важные (влияют на scope):
-
Содержимое сообщения: что включает напоминание? Предположительно: имя мастера, услуга, дата/время, адрес, цена (price_snapshot). Нужна ли кнопка отмены прямо из напоминания?
-
Часовой пояс: бронирования хранятся в UTC или в локальном времени? По какому часовому поясу считать "за 2 часа"? (Актуально для Казахстана: UTC+5 / UTC+6)
-
Приоритет: Must / Should / Could? Это блокер для релиза или улучшение?
После получения ответов создам полноценную user story по шаблону с acceptance criteria (Given/When/Then), data requirements и out of scope.