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 |
Системное уведомление |