{% extends "base.html" %}
{% import "macros/ui.html" as m %}

{% block title %}Sessions — Ontoref{% endblock title %}
{% block nav_sessions %}active{% endblock nav_sessions %}
{% block nav_group_reflect %}active{% endblock nav_group_reflect %}

{% block content %}
<div class="mb-6 flex items-center justify-between">
  <h1 class="text-2xl font-bold">Active Sessions</h1>
  <span class="badge badge-lg badge-neutral">{{ total }} actor(s)</span>
</div>

{% if sessions | length == 0 %}
  {{ m::empty_state(message="No active actor sessions") }}
{% else %}
<div class="overflow-x-auto">
  <table class="table table-zebra table-sm w-full bg-base-200 rounded-lg">
    <thead>
      <tr class="text-base-content/50 text-xs uppercase tracking-wider">
        <th>Token</th>
        <th>Type</th>
        <th>Role</th>
        <th>Project</th>
        <th>Host / PID</th>
        <th>Registered</th>
        <th>Last seen</th>
        <th class="text-right">Pending</th>
      </tr>
    </thead>
    <tbody>
      {% for s in sessions %}
      <tr>
        <td class="font-mono text-xs text-base-content/50">{{ s.token }}</td>
        <td>{{ m::actor_badge(actor_type=s.actor_type) }}</td>
        <td>
          <span class="badge badge-xs font-mono
            {% if s.role == 'admin' %}badge-error
            {% elif s.role == 'developer' %}badge-primary
            {% elif s.role == 'agent' %}badge-secondary
            {% elif s.role == 'ci' %}badge-accent
            {% else %}badge-ghost{% endif %}">{{ s.role }}</span>
          {% if s.has_preferences %}
            <span class="ml-1 text-base-content/30 text-xs" title="has saved preferences">◆</span>
          {% endif %}
        </td>
        <td class="font-mono text-sm">{{ s.project }}</td>
        <td class="font-mono text-xs">{{ s.hostname }}:{{ s.pid }}</td>
        <td class="text-xs text-base-content/60">{{ s.registered_ago }}s ago</td>
        <td class="text-xs text-base-content/60">{{ s.last_seen_ago }}s ago</td>
        <td class="text-right">
          {% if s.pending_notifications > 0 %}
            <span class="badge badge-warning badge-sm">{{ s.pending_notifications }}</span>
          {% else %}
            <span class="text-base-content/30 text-xs">—</span>
          {% endif %}
        </td>
      </tr>
      {% endfor %}
    </tbody>
  </table>
</div>
{% endif %}
{% endblock content %}
