Skip to content
  • Richard Bonnegent's avatar
    af6c21ff
    feat(notifications): Système complet de notifications avec soft delete et expiration automatique · af6c21ff
    Richard Bonnegent authored
     Nouvelles fonctionnalités:
    - Ajout du timestamp read_at lors du marquage comme lue (PUT /notifications/:id/read)
    - Soft delete avec deleted_at au lieu de suppression physique
    - Cleanup automatique des notifications expirées (via expires_at)
    - Pagination avancée avec compteurs total/unread (GET /notifications)
    - Format de réponse minimal pour PUT /read (id, read, read_at, updated_at)
    
    🔧 Modifications modèles:
    - notifications.model.js: Ajout champs read_at, deleted_at avec indexes optimisés
    - Validation Joi: Types ObjectId pour recipient_id, sender_id, relation_id
    - Population automatique des références (sender, recipient, event, resource)
    
    🚀 Nouvelles routes:
    - GET /notifications: Liste paginée (limit max 50, exclusion soft-deleted)
    - PUT /notifications/:id/read: Marquer comme lue avec timestamp
    - DELETE /notifications/🆔 Soft delete avec deleted_at
    
    🛠️ Utilitaires:
    - cleanupExpiredNotifications.js: Marque automatiquement les notifications expirées
    
    🧪 Tests:
    - test-notifications.js: Suite complète de 15 tests (6 suites)
    - Couverture: Création, pagination, mark as read, soft delete, cleanup
    - Total: 99/99 tests passent (100%)
    
    📚 Documentation:
    - NOTIFICATIONS_API.md: Documentation API complète (519 lignes)
    - UPDATES_SUMMARY.md: Ajout section notifications avec exemples
    - README.md: Section notifications CRUD et tests
    - Mise à jour compteur tests: 84/84 → 99/99 (15 nouveaux tests)
    
    🔒 Sécurité:
    - Indexes MongoDB pour performance (expires_at, deleted_at, composite)
    - Validation stricte des ObjectId
    - Messages d'erreur en français
    
    Version: 2.0
    Status:  Production-ready
    af6c21ff
    feat(notifications): Système complet de notifications avec soft delete et expiration automatique
    Richard Bonnegent authored
     Nouvelles fonctionnalités:
    - Ajout du timestamp read_at lors du marquage comme lue (PUT /notifications/:id/read)
    - Soft delete avec deleted_at au lieu de suppression physique
    - Cleanup automatique des notifications expirées (via expires_at)
    - Pagination avancée avec compteurs total/unread (GET /notifications)
    - Format de réponse minimal pour PUT /read (id, read, read_at, updated_at)
    
    🔧 Modifications modèles:
    - notifications.model.js: Ajout champs read_at, deleted_at avec indexes optimisés
    - Validation Joi: Types ObjectId pour recipient_id, sender_id, relation_id
    - Population automatique des références (sender, recipient, event, resource)
    
    🚀 Nouvelles routes:
    - GET /notifications: Liste paginée (limit max 50, exclusion soft-deleted)
    - PUT /notifications/:id/read: Marquer comme lue avec timestamp
    - DELETE /notifications/🆔 Soft delete avec deleted_at
    
    🛠️ Utilitaires:
    - cleanupExpiredNotifications.js: Marque automatiquement les notifications expirées
    
    🧪 Tests:
    - test-notifications.js: Suite complète de 15 tests (6 suites)
    - Couverture: Création, pagination, mark as read, soft delete, cleanup
    - Total: 99/99 tests passent (100%)
    
    📚 Documentation:
    - NOTIFICATIONS_API.md: Documentation API complète (519 lignes)
    - UPDATES_SUMMARY.md: Ajout section notifications avec exemples
    - README.md: Section notifications CRUD et tests
    - Mise à jour compteur tests: 84/84 → 99/99 (15 nouveaux tests)
    
    🔒 Sécurité:
    - Indexes MongoDB pour performance (expires_at, deleted_at, composite)
    - Validation stricte des ObjectId
    - Messages d'erreur en français
    
    Version: 2.0
    Status:  Production-ready
Loading