2.3 KiB
2.3 KiB
🔔 CONCEPT: NOTIFICATION
📌 Vue d'ensemble
Le concept NOTIFICATION gère les notifications système pour alerter les utilisateurs d'événements importants.
Importance: ⭐⭐ (Concept utile)
🗂️ Fichiers concernés
Entités JPA
| Fichier | Description |
|---|---|
Notification.java |
Entité principale notification |
TypeNotification.java |
Enum types |
PrioriteNotification.java |
Enum priorités |
Services
| Fichier | Description |
|---|---|
NotificationService.java |
Service métier notifications |
Resources
| Fichier | Description |
|---|---|
NotificationResource.java |
API REST notifications |
📊 Modèle de données
@Entity
@Table(name = "notifications")
public class Notification extends PanacheEntityBase {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
@ManyToOne
@JoinColumn(name = "user_id", nullable = false)
private User user;
@Column(name = "titre", nullable = false)
private String titre;
@Column(name = "message", length = 1000)
private String message;
@Enumerated(EnumType.STRING)
@Column(name = "type")
private TypeNotification type;
@Column(name = "lue")
private Boolean lue = false;
@Column(name = "date_creation")
private LocalDateTime dateCreation;
@Column(name = "date_lecture")
private LocalDateTime dateLecture;
}
🔌 API REST
Endpoints
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /api/v1/notifications |
Liste notifications |
| GET | /api/v1/notifications/non-lues |
Non lues |
| PUT | /api/v1/notifications/{id}/lire |
Marquer comme lue |
| PUT | /api/v1/notifications/tout-lire |
Tout marquer comme lu |
| DELETE | /api/v1/notifications/{id} |
Supprimer |
💻 Exemples
Notifications non lues
curl -X GET http://localhost:8080/api/v1/notifications/non-lues
Réponse:
[
{
"id": "uuid",
"titre": "Stock faible",
"message": "Le stock de ciment est en dessous du seuil minimum",
"type": "ALERTE",
"lue": false,
"dateCreation": "2025-09-30T10:00:00"
}
]
Dernière mise à jour: 2025-09-30
Version: 1.0