package dev.lions.btpxpress.service;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.ws.rs.core.Response;
import org.eclipse.microprofile.rest.client.inject.RestClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* Service de gestion des messages côté client.
*
* Ce service encapsule la communication avec l'API backend pour les opérations
* liées aux messages.
*
*
* @author BTP Xpress Development Team
* @version 1.0.0
* @since 1.0.0
*/
@ApplicationScoped
public class MessageService {
private static final Logger LOG = LoggerFactory.getLogger(MessageService.class);
@Inject
@RestClient
BtpXpressApiClient apiClient;
/**
* Récupère le nombre de messages non lus pour un utilisateur.
*
* @param userId L'identifiant de l'utilisateur (UUID en String).
* @return Le nombre de messages non lus, ou 0 en cas d'erreur.
*/
public int getUnreadCount(String userId) {
try {
LOG.debug("Récupération du nombre de messages non lus pour l'utilisateur : {}", userId);
Response response = apiClient.getMessagesNonLus(userId);
if (response.getStatus() == Response.Status.OK.getStatusCode()) {
@SuppressWarnings("unchecked")
List