Перейти к содержанию

Разбор задачи

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

Прежде чем финализировать артефакт, мне нужны ответы на следующие вопросы:

Обязательные (блокирующие):

  1. Триггер: напоминание отправляется ровно за 2 часа — это фиксированное значение или провайдер сможет его настраивать (например, за 1 / 2 / 24 часа)?

  2. Статусы: напоминание отправляется только по бронированиям со статусом confirmed, или также по pending?

  3. Подписка клиента: что делать, если у клиента нет Telegram-подписки (CLIENT_BOOKING subscription отсутствует)? Молча пропускаем, или нужен fallback (например, SMS)?

  4. Повторная отправка: если напоминание не доставлено (Telegram вернул ошибку) — делаем retry? Сколько раз?

  5. Отмена или перенос перед напоминанием: если запись отменена/перенесена менее чем за 2 часа до старта — напоминание отменяется или уже ушло?

Важные (влияют на scope):

  1. Содержимое сообщения: что включает напоминание? Предположительно: имя мастера, услуга, дата/время, адрес, цена (price_snapshot). Нужна ли кнопка отмены прямо из напоминания?

  2. Часовой пояс: бронирования хранятся в UTC или в локальном времени? По какому часовому поясу считать "за 2 часа"? (Актуально для Казахстана: UTC+5 / UTC+6)

  3. Приоритет: Must / Should / Could? Это блокер для релиза или улучшение?


После получения ответов создам полноценную user story по шаблону с acceptance criteria (Given/When/Then), data requirements и out of scope.