52 lines
1.5 KiB
Java
52 lines
1.5 KiB
Java
package dev.lions.unionflow.client.service;
|
|
|
|
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
|
|
import jakarta.ws.rs.*;
|
|
import jakarta.ws.rs.core.MediaType;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.UUID;
|
|
|
|
/**
|
|
* Service REST Client pour la gestion des notifications (WOU/DRY)
|
|
*
|
|
* @author UnionFlow Team
|
|
* @version 3.0
|
|
*/
|
|
@RegisterRestClient(configKey = "unionflow-api")
|
|
@Path("/api/notifications")
|
|
@Consumes(MediaType.APPLICATION_JSON)
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
public interface NotificationService {
|
|
|
|
/**
|
|
* Envoie des notifications groupées à plusieurs membres (WOU/DRY)
|
|
*
|
|
* @param request DTO contenant les IDs des membres, sujet, corps et canaux
|
|
* @return Nombre de notifications créées
|
|
*/
|
|
@POST
|
|
@Path("/groupees")
|
|
Map<String, Integer> envoyerNotificationsGroupees(NotificationGroupeeRequest request);
|
|
|
|
/**
|
|
* Classe interne pour les requêtes de notifications groupées (WOU/DRY)
|
|
*/
|
|
class NotificationGroupeeRequest {
|
|
public List<UUID> membreIds;
|
|
public String sujet;
|
|
public String corps;
|
|
public List<String> canaux;
|
|
|
|
public NotificationGroupeeRequest() {}
|
|
|
|
public NotificationGroupeeRequest(List<UUID> membreIds, String sujet, String corps, List<String> canaux) {
|
|
this.membreIds = membreIds;
|
|
this.sujet = sujet;
|
|
this.corps = corps;
|
|
this.canaux = canaux;
|
|
}
|
|
}
|
|
}
|
|
|