{# Template universel pour afficher une entité avec badge et icône #}
{% extends admin.getTemplate('base_list_field') %}
{% import '@kohinos/admin/sonata_entity_badge_theme.html.twig' as entity_badge %}
{% block field %}
{% apply spaceless %}
{# Utiliser la valeur directement (pour les champs normaux) #}
{% set entityToDisplay = value %}
{# Si value est null, essayer d'utiliser object.FIELD_NAME (pour les virtual fields) #}
{% if entityToDisplay is null and field_description.name is defined %}
{% set fieldName = field_description.name %}
{% if fieldName == 'accountOwner' and object.adherent is defined %}
{% set entityToDisplay = object.adherent %}
{% elseif fieldName == 'accountOwner' and object.prestataire is defined %}
{% set entityToDisplay = object.prestataire %}
{% elseif fieldName == 'owner' and object.adherent is defined %}
{% set entityToDisplay = object.adherent %}
{% elseif fieldName == 'owner' and object.prestataire is defined %}
{% set entityToDisplay = object.prestataire %}
{% endif %}
{% endif %}
{# Afficher le badge approprié selon le type d'entité #}
{% if entityToDisplay is not null %}
{% if entityToDisplay is instanceof("App\\Entity\\Adherent") %}
{{ entity_badge.render_adherent(entityToDisplay) }}
{% elseif entityToDisplay is instanceof("App\\Entity\\Prestataire") %}
{{ entity_badge.render_prestataire(entityToDisplay) }}
{% elseif entityToDisplay is instanceof("App\\Entity\\Comptoir") %}
{{ entity_badge.render_comptoir(entityToDisplay) }}
{% elseif entityToDisplay is instanceof("App\\Entity\\Groupe") %}
{{ entity_badge.render_groupe(entityToDisplay) }}
{% elseif entityToDisplay is instanceof("App\\Entity\\Siege") %}
{{ entity_badge.render_siege(entityToDisplay) }}
{# Gestion des comptes Account* #}
{% elseif entityToDisplay is instanceof("App\\Entity\\AccountAdherent") %}
{{ entity_badge.render_account_adherent(entityToDisplay) }}
{% elseif entityToDisplay is instanceof("App\\Entity\\AccountPrestataire") %}
{{ entity_badge.render_account_prestataire(entityToDisplay) }}
{% elseif entityToDisplay is instanceof("App\\Entity\\AccountComptoir") %}
{{ entity_badge.render_account_comptoir(entityToDisplay) }}
{% elseif entityToDisplay is instanceof("App\\Entity\\AccountGroupe") %}
{{ entity_badge.render_account_groupe(entityToDisplay) }}
{% elseif entityToDisplay is instanceof("App\\Entity\\AccountSiege") %}
{{ entity_badge.render_account_siege(entityToDisplay) }}
{% else %}
{# Fallback pour types non reconnus #}
{{ entityToDisplay }}
{% endif %}
{% else %}
{# Pas d'entité à afficher #}
N/A
{% endif %}
{% endapply %}
{% endblock %}