{% extends 'admin/base.html.twig' %}

{% block title %}Retrieval-Test{% endblock %}

{% block body %}

    <div class="d-flex justify-content-between align-items-center mb-4">
        <h1 class="h3">
            Retrieval-Test – {{ config.modelName }} (v{{ config.version }})
        </h1>

        <a href="{{ path('admin_model_config_list') }}"
           class="btn btn-sm btn-outline-secondary">
            Zurück
        </a>
    </div>

    {# ====================================================== #}
    {# Konfigurationsübersicht                                #}
    {# ====================================================== #}

    <div class="card bg-black border-secondary text-light mb-4">
        <div class="card-body small">
            <div class="row">
                <div class="col-md-6">
                    <strong>Max Chunks:</strong>
                    {{ config.retrievalMaxChunks }}
                </div>
                <div class="col-md-6">
                    <strong>Vector Top K:</strong>
                    {{ config.retrievalVectorTopK }}
                </div>
            </div>
        </div>
    </div>

    {# ====================================================== #}
    {# Testformular                                           #}
    {# ====================================================== #}

    <div class="card bg-black border-secondary text-light mb-4">
        <div class="card-body">

            <form method="post">

                <div class="mb-3">
                    <label class="form-label">Test-Prompt</label>
                    <textarea name="prompt"
                              rows="3"
                              class="form-control bg-dark text-light border-secondary"
                              required>{{ prompt }}</textarea>
                </div>

                <button type="submit"
                        class="btn btn-outline-warning">
                    Retrieval testen
                </button>

            </form>

        </div>
    </div>

    {# ====================================================== #}
    {# Ergebnisse                                             #}
    {# ====================================================== #}

    {% if results is not empty %}
        <div class="card bg-black border-secondary text-light">
            <div class="card-body">

                <h5 class="text-warning mb-3">
                    Gefundene Chunks ({{ results|length }})
                </h5>

                <div style="max-height: 500px; overflow-y: auto;">

                    {% for chunk in results %}
                        <div class="border border-secondary p-3 mb-3 small">

                            {# ================= META-ZEILE ================= #}
                            <div class="mb-2 text-warning"
                                 style="font-size: 11px; line-height: 1.5; word-break: break-all;">

                        <span class="text-info">
                            <strong>rank:</strong> {{ chunk.rank }}
                        </span> |

                                <span class="text-info">
                            <strong>chunk_id:</strong> {{ chunk.chunk_id }}
                        </span> |

                                <span class="text-info">
                            <strong>document_id:</strong>
                            {% if chunk.document_id %}
                                <a class="text-info"
                                   href="{{ path('admin_document_show', { id: chunk.document_id }) }}">
                                    {{ chunk.document_id }}
                                </a>
                            {% else %}
                                —
                            {% endif %}
                        </span> |

                                <span>
                            <strong>route:</strong>
                            <span class="
                                {% if chunk.route == 'catalog_list' %}
                                    text-primary
                                {% elseif chunk.route starts with 'catalog' %}
                                    text-info
                                {% elseif chunk.route starts with 'sales' %}
                                    text-success
                                {% else %}
                                    text-secondary
                                {% endif %}
                            ">
                                {{ chunk.route ?? '—' }}
                            </span>
                        </span> |

                                <span>
                            <strong>entity:</strong>
                            {{ chunk.entity_label ?? '—' }}
                        </span> |

                                <span>
                            <strong>intent:</strong>
                            {{ chunk.intent ?? '—' }}
                        </span> |

                                <span>
                            <strong>rrf:</strong>
                            {{ chunk.rrf_score is not null
                            ? chunk.rrf_score|number_format(6, '.', '')
                            : '—' }}
                        </span> |

                                <span>
                            <strong>raw:</strong>
                            {{ chunk.raw_score is not null
                            ? chunk.raw_score|number_format(6, '.', '')
                            : '—' }}
                        </span> |

                                <span>
                            <strong>threshold:</strong>
                            {{ chunk.threshold ?? '—' }}
                        </span> |

                                <span>
                            <strong>list:</strong>
                            {{ chunk.is_list_query ? 'true' : 'false' }}
                        </span>

                            </div>

                            {# ================= CHUNK TEXT ================= #}
                            <div class="text-light">
                                {{ chunk.text }}
                            </div>

                        </div>
                    {% endfor %}

                </div>

            </div>
        </div>
    {% endif %}

{% endblock %}