package dev.lions.user.manager.client.service;

import dev.lions.user.manager.client.filter.AuthHeaderFactory;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
import org.eclipse.microprofile.rest.client.annotation.RegisterClientHeaders;
import org.eclipse.microprofile.rest.client.annotation.RegisterProvider;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;

import java.util.List;

/**
 * REST Client pour le service de gestion des realms Keycloak
 * Interface pour communiquer avec l'API backend
 */
@Path("/api/realms")
@RegisterRestClient(configKey = "lions-user-manager-api")
@RegisterClientHeaders(AuthHeaderFactory.class)
@RegisterProvider(RestClientExceptionMapper.class)
@Produces(MediaType.APPLICATION_JSON)
public interface RealmServiceClient {

    /**
     * Récupère la liste de tous les realms disponibles dans Keycloak
     * @return liste des noms de realms
     */
    @GET
    @Path("/list")
    List<String> getAllRealms();
}

