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

Notifications

Real-time уведомления с Socket.io.

Возможности

  • CRUD уведомлений
  • Подсчёт непрочитанных
  • Группировка по типу
  • Real-time доставка через Socket.io
  • Уведомления для: чатов, платежей, сделок, запросов

API Routes

GET  /api/notifications              // Список
GET  /api/notifications/unread-count // Количество непрочитанных
GET  /api/notifications/unread-by-type // По типам
PATCH /api/notifications/:id/read    // Отметить прочитанным
POST /api/notifications/mark-all-read // Отметить все
DELETE /api/notifications/:id        // Удалить
DELETE /api/notifications/read/all   // Удалить прочитанные

NotificationService

const NotificationService = require('./service');

const notificationService = new NotificationService(io);

// Платёж требует согласования
await notificationService.notifyPaymentApprovalNeeded({
  paymentId: 1,
  amount: 50000,
  supplier: 'ТОО Поставщик',
  approverId: 2,
  creatorId: 1
});

// Платёж согласован
await notificationService.notifyPaymentApproved({
  paymentId: 1,
  amount: 50000,
  supplier: 'ТОО Поставщик',
  approverId: 2,
  creatorId: 1
});

// Сделка назначена
await notificationService.notifyDealAssigned({
  dealId: 123,
  dealTitle: 'Новая сделка',
  assignedBy: 1,
  assignedTo: 2
});

// Системное уведомление
await notificationService.createSystemNotification({
  recipientIds: [1, 2, 3],
  title: 'Обновление системы',
  message: 'Запланировано обновление на 22:00',
  priority: 'high'
});

Socket.io Events

// Клиент подключается к комнате пользователя
socket.join(`user-${userId}`);

// Получение уведомлений
socket.on('new-notification', (notification) => {
  console.log(notification.type, notification.message);
});

Типы уведомлений

Тип Описание
payment_approval Платёж требует согласования
payment_approved Платёж согласован
payment_rejected Платёж отклонён
payment_paid Платёж оплачен
deal_assigned Сделка назначена
deal_stage_changed Этап сделки изменён
deal_comment Комментарий в сделке
request_assigned Запрос назначен
request_status_changed Статус запроса изменён
chat_mention Упоминание в чате
system Системное уведомление