Skip to main content

Notifications

⚠️ Документация в процессе наполнения

1. Summary

Goal: TODO — описать систему push-уведомлений.

User Value: TODO — информирование о важных событиях, возврат пользователей.


2. Business Logic

Rules & Mechanics

  • Типы уведомлений
  • Scheduling (отложенные уведомления)
  • Telegram push через бота
  • Аналитика (PushAnalytics)
  • Таргетинг и сегментация

Формулы и константы

TODO: Добавить правила
MAX_PUSH_PER_DAY = ?
SCHEDULER_INTERVAL = ?

Edge Cases

СитуацияПоведение системы
Пользователь отключил уведомленияНе отправлять
Telegram API недоступенRetry с backoff
Слишком много уведомленийТроттлинг

3. ADR (Architectural Decisions)

Почему Telegram, а не Web Push?

Проблема: Нужны push-уведомления для Telegram Mini App.

Решение: Отправка через Telegram Bot API.

Альтернативы (отклонены):

  • Web Push — ограничена поддержка в TMA
  • Email — не подходит для мобильного UX

Последствия: Зависимость от Telegram, но гарантированная доставка.


4. Architecture

Key Components

КомпонентПутьОписание
NotificationServicebackend/src/domains/notifications/services/notification.service.tsЛогика уведомлений
PushSchedulerbackend/src/domains/telegram/services/push-scheduler.service.tsПланировщик
Routesbackend/src/domains/notifications/routes/API эндпоинты

5. Database Schema

Models

МодельОписаниеКлючевые поля
PushNotificationУведомлениеuserId, title, body, scheduledAt, sentAt
PushAnalyticsАналитикаnotificationId, delivered, read

6. API Endpoints

Admin API

МетодЭндпоинтОписаниеСсылка
GET/admin/pushВсе уведомленияТестировать →
POST/admin/pushОтправить уведомлениеТестировать →
POST/admin/push/scheduleЗапланироватьТестировать →

  • Telegram Bot — отправка через бота
  • Banners — in-app уведомления
  • Feed — лента событий