Задача — добавить SMS как резервный, а не основной, канал. Логика простая: если письмо по важному событию не доставлено, система сама отправляет то же сообщение по SMS. Но дублировать всё подряд нельзя — нужен закрытый перечень типов событий, которые того стоят.
Второй блок задачи — деньги. SMS стоит заметно дороже письма, и без ограничений расходы легко выйдут из-под контроля. Нужны суточный лимит на пользователя, общий месячный бюджет на канал и понятное поведение при достижении лимита: событие фиксируется в логе, а SMS не отправляется. Отдельно хочу настройку, которая выключает канал одной галочкой, без правки кода, и небольшой отчёт по расходам.
Кратко, что нужно на выходе:
— рабочая интеграция с SMS-шлюзом;
— логика проверки статуса доставки письма перед отправкой SMS;
— список критичных типов уведомлений для дублирования;
— лимиты расходов (сутки/месяц) с отключением при достижении порога;
— отчёт по сообщениям и стоимости.