Система интеграции уведомлений позволяет автоматически отправлять уведомления пользователям при возникновении различных событий в разных модулях приложения. Это обеспечивает единообразный пользовательский опыт и информированность о всех важных событиях.
NotificationIntegrationService- основной сервис интеграцииNotificationIntegrationHandler- API handler для интеграции- Интеграция с
NotificationService- для отправки уведомлений
NotificationIntegrationService- клиентский сервис интеграцииNotificationIntegrationDemoScreen- экран демонстрации
- Новые рекомендации - уведомления о новых AI рекомендациях
- Снижение цены - уведомления о снижении цены на товары из wishlist
- Персональные предложения - уведомления о специальных предложениях
- Завершение примерки - уведомления о готовности результатов AR примерки
- Рекомендации размера - уведомления о рекомендуемых размерах
- Обновление анализа тела - уведомления об изменениях параметров
- Начисление баллов - уведомления о начислении баллов лояльности
- Повышение уровня - уведомления о повышении уровня лояльности
- Реферальные бонусы - уведомления о реферальных наградах
- Ежедневные бонусы - уведомления о ежедневных наградах
- Крипто-награды - уведомления о криптовалютных наградах
- Тренды - уведомления о новых трендах
- Обновления конкурентов - уведомления об активности конкурентов
- Инсайты аудитории - уведомления о новых инсайтах
- Live-стримы - напоминания о предстоящих live-стримах
- Групповые покупки - уведомления об обновлениях групповых покупок
- Новые отзывы - уведомления о новых отзывах на товары
- Партнерства - уведомления об одобрении партнерств
- Обновления системы - уведомления о новых версиях
- Техобслуживание - уведомления о плановых работах
- Безопасность - уведомления о проблемах безопасности
POST /api/notification-integration/ai/recommendations
POST /api/notification-integration/ai/price-alert
POST /api/notification-integration/ai/personalized-offerPOST /api/notification-integration/ar/fitting-complete
POST /api/notification-integration/ar/size-recommendation
POST /api/notification-integration/ar/body-analysis-updatePOST /api/notification-integration/loyalty/points-earned
POST /api/notification-integration/loyalty/tier-upgrade
POST /api/notification-integration/loyalty/referral-bonus
POST /api/notification-integration/loyalty/daily-login
POST /api/notification-integration/loyalty/crypto-rewardPOST /api/notification-integration/analytics/trend-alert
POST /api/notification-integration/analytics/competitor-update
POST /api/notification-integration/analytics/audience-insightPOST /api/notification-integration/commerce/live-stream-reminder
POST /api/notification-integration/commerce/group-purchase-update
POST /api/notification-integration/commerce/new-review
POST /api/notification-integration/commerce/partnership-approvedPOST /api/notification-integration/system/update
POST /api/notification-integration/system/maintenance
POST /api/notification-integration/system/security-alertPOST /api/notification-integration/bulk/by-category
POST /api/notification-integration/bulk/to-usersPOST /api/notification-integration/demo/send-all-types
POST /api/notification-integration/demo/simulate-eventsfinal integrationService = NotificationIntegrationService(
notificationService: notificationService,
);
await integrationService.notifyNewRecommendations(
userId: 'user_123',
recommendations: [
ProductRecommendation(
product: product,
score: 0.95,
reason: 'Based on your preferences',
),
],
category: 'Одежда',
);final service = context.read<NotificationIntegrationService>();
final success = await service.notifyPriceAlert(
userId: 'user_123',
product: productData,
oldPrice: 1000,
newPrice: 800,
discount: 200,
);
if (success) {
print('Price alert notification sent successfully');
}// По категории пользователей
await service.sendBulkNotificationsByCategory(
category: 'premium_users',
title: 'Новая коллекция',
body: 'Доступна новая коллекция от известного дизайнера',
type: 'newRecommendations',
);
// По списку пользователей
await service.sendBulkNotificationsToUsers(
userIds: ['user_1', 'user_2', 'user_3'],
title: 'Специальное предложение',
body: 'Только для вас - скидка 30%',
type: 'personalizedOffer',
);Добавьте в backend/bin/server.dart:
import '../lib/services/notification_integration_service.dart';
import '../lib/handlers/notification_integration_handler.dart';
// Инициализация сервиса
final notificationIntegrationService = NotificationIntegrationService(
notificationService: notificationService,
);
// Инициализация handler
final notificationIntegrationHandler = NotificationIntegrationHandler(
integrationService: notificationIntegrationService,
db: DatabaseService(),
);
// Монтирование роутера
app.mount('/api/notification-integration', notificationIntegrationHandler.router);Добавьте в main.dart:
MultiProvider(
providers: [
ChangeNotifierProvider(
create: (context) => NotificationIntegrationService(
notificationService: context.read<RealNotificationService>(),
),
),
],
child: MyApp(),
);// Отправка всех типов уведомлений
await service.sendDemoNotifications(userId: 'demo_user_123');
// Симуляция событий конкретного модуля
await service.simulateModuleEvents(
userId: 'demo_user_123',
module: 'ai', // 'ar', 'loyalty', 'analytics', 'commerce', 'all'
);final isAvailable = await service.checkServerAvailability();
if (isAvailable) {
print('Integration server is available');
} else {
print('Integration server is not available');
}Экран NotificationIntegrationDemoScreen предоставляет:
- 6 вкладок для разных модулей
- Кнопки демонстрации для каждого типа уведомлений
- Статус сообщения с результатами операций
- Массовые уведомления и тестирование
- Событие - происходит в модуле (например, новая рекомендация)
- Интеграция - модуль вызывает
NotificationIntegrationService - Создание - создается уведомление через
NotificationService - Отправка - уведомление отправляется через FCM и локально
- Получение - пользователь получает уведомление
- Отображение - уведомление показывается в UI
- Отправляйте уведомления в подходящее время
- Учитывайте часовой пояс пользователя
- Не спамьте уведомлениями
- Используйте данные пользователя для персонализации
- Адаптируйте контент под предпочтения
- Учитывайте историю взаимодействий
- Группируйте уведомления по типам
- Позволяйте пользователям настраивать предпочтения
- Предоставляйте возможность отписки
- Тестируйте все типы уведомлений
- Проверяйте корректность данных
- Валидируйте форматирование
try {
await integrationService.notifyNewRecommendations(...);
} catch (e) {
logger.e('Failed to send notification: $e');
// Fallback или повторная попытка
}try {
final success = await service.notifyPriceAlert(...);
if (!success) {
// Обработка неуспешной отправки
}
} catch (e) {
// Обработка исключений
}- Количество отправленных уведомлений
- Процент доставки
- Время отклика пользователей
- Эффективность разных типов уведомлений
logger.i('Sent AI recommendations notification to user $userId');
logger.e('Failed to send price alert notification: $e');- Умные уведомления - AI для определения оптимального времени
- A/B тестирование - тестирование разных форматов уведомлений
- Аналитика эффективности - детальная статистика по модулям
- Интеграция с календарем - планирование уведомлений
- Геолокация - уведомления на основе местоположения
- Платежи - уведомления о транзакциях
- Доставка - уведомления о статусе заказов
- Поддержка - уведомления о тикетах
- Социальные сети - уведомления о активности
- README_Notifications.md - Основная документация по уведомлениям
- API Documentation - Общая документация API
- Frontend Guide - Руководство по фронтенду
- Backend Guide - Руководство по бэкенду
При возникновении вопросов или проблем:
- Проверьте логи сервера
- Убедитесь в корректности данных
- Проверьте доступность сервисов
- Обратитесь к документации
- Создайте issue в репозитории
Версия: 1.0.0
Дата: ${new Date().toLocaleDateString()}
Автор: MyModus Team