КРИТИЧНЫЕ УЛУЧШЕНИЯ: ✅ Убран хардкод 'EUSRR' → универсальное 'My Site' ✅ Созданы email шаблоны внутри модуля (4 файла) ✅ Централизованная конфигурация в config.py ✅ API перемещен в notifications/api/ Новые файлы: - config.py - централизованные настройки с fallback значениями - templates/notifications/email/*.html/*.txt - HTML и текстовые шаблоны - api/__init__.py, api/views.py, api/urls.py - REST API внутри модуля Изменения в существующих файлах: - senders/email.py: использует config.site_name() и config.from_email() - tasks/email.py: rate_limit, max_retries, retry_delay из config - tasks/push.py: rate_limit, max_retries, retry_delay из config - tasks/websocket.py: max_retries, retry_delay из config - api/v1/notifications/urls.py: реэкспорт из notifications.api (обратная совместимость) Структура шаблонов: 📁 notifications/templates/notifications/email/ ├── notification.html - красивый HTML для обычных уведомлений ├── notification.txt - текстовая версия ├── digest.html - HTML дайджест (daily/weekly) └── digest.txt - текстовая версия дайджеста Конфигурация (config.py): - DEFAULT_CONFIG с fallback значениями для всех параметров - get_config() - объединяет с settings.NOTIFICATIONS_CONFIG - Удобные функции: email_rate_limit(), push_max_retries(), site_name() - Полностью настраиваемо через settings проекта API внутри модуля: - notifications/api/views.py - все endpoint'ы - notifications/api/urls.py - URL patterns - Относительные импорты (from ..models) - Обратная совместимость через api/v1/notifications/urls.py УНИВЕРСАЛЬНОСТЬ: ✅ Нет хардкода проекта ✅ Все шаблоны внутри модуля ✅ API внутри модуля ✅ Конфигурация через settings ✅ Можно скопировать в любой проект Django 5.2+
20 lines
1.0 KiB
Python
20 lines
1.0 KiB
Python
"""
|
|
REST API для системы уведомлений
|
|
|
|
Endpoints:
|
|
- GET /api/v1/notifications/ - список уведомлений
|
|
- GET /api/v1/notifications/<id>/ - детали уведомления
|
|
- GET /api/v1/notifications/unread/count/ - счетчик непрочитанных
|
|
- GET /api/v1/notifications/verb-types/ - статистика по типам
|
|
- GET /api/v1/notifications/preferences/ - настройки каналов
|
|
- PUT /api/v1/notifications/preferences/ - обновить настройки
|
|
- POST /api/v1/notifications/<id>/read/ - отметить прочитанным
|
|
- POST /api/v1/notifications/<id>/unread/ - отметить непрочитанным
|
|
- DELETE /api/v1/notifications/<id>/ - удалить уведомление
|
|
- DELETE /api/v1/notifications/delete-all-read/ - удалить прочитанные
|
|
- POST /api/v1/notifications/push/subscribe/ - подписаться на push
|
|
- DELETE /api/v1/notifications/push/unsubscribe/ - отписаться от push
|
|
"""
|
|
|
|
__all__ = ['views', 'urls']
|