<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    xmlns:p="http://primefaces.org/ui" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">

    <!--
        Composant réutilisable: Badge de Rôle Utilisateur - Écosystème LionsDev
        
        Auteur: Lions User Manager
        Version: 2.0.0
        Description: Badge typé pour afficher un rôle avec icône et couleur sémantique.
    -->

    <c:set var="showIcon" value="#{empty showIcon ? true : showIcon}" />
    <c:set var="size" value="#{empty size ? 'normal' : size}" />
    <c:set var="clickable" value="#{empty clickable ? false : clickable}" />

    <!-- Logique de couleur/icône centralisée -->
    <c:choose>
        <c:when test="#{roleType == 'REALM_ROLE'}">
            <c:set var="severity" value="success" />
            <c:set var="icon" value="pi-check-circle" />
        </c:when>
        <c:when test="#{roleType == 'CLIENT_ROLE'}">
            <c:set var="severity" value="info" />
            <c:set var="icon" value="pi-desktop" />
        </c:when>
        <c:when test="#{roleType == 'COMPOSITE_ROLE'}">
            <c:set var="severity" value="warning" />
            <c:set var="icon" value="pi-sitemap" />
        </c:when>
        <c:otherwise>
            <c:set var="severity" value="#{empty severity ? 'info' : severity}" />
            <c:set var="icon" value="#{empty icon ? 'pi-shield' : icon}" />
        </c:otherwise>
    </c:choose>

    <!-- Override manuel de l'icône si fourni -->
    <c:if test="#{not empty paramIcon}">
        <c:set var="icon" value="#{paramIcon}" />
    </c:if>

    <c:set var="tagClass"
        value="#{size == 'small' ? 'text-xs' : (size == 'large' ? 'text-lg' : 'text-sm')} #{styleClass}" />

    <p:tag value="#{roleName}" severity="#{severity}" icon="#{showIcon ? 'pi '.concat(icon) : ''}"
        styleClass="#{tagClass}">

        <c:if test="#{clickable}">
            <p:commandLink action="#{clickAction}" styleClass="ml-2">
                <i class="pi pi-external-link text-xs text-white"></i>
            </p:commandLink>
        </c:if>
    </p:tag>

</ui:composition>