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 envoyerNotificationsGroupees(NotificationGroupeeRequest request); /** * Classe interne pour les requêtes de notifications groupées (WOU/DRY) */ class NotificationGroupeeRequest { public List membreIds; public String sujet; public String corps; public List canaux; public NotificationGroupeeRequest() {} public NotificationGroupeeRequest(List membreIds, String sujet, String corps, List canaux) { this.membreIds = membreIds; this.sujet = sujet; this.corps = corps; this.canaux = canaux; } } }