<?php
/**
 * modules/profile/sessions.php — sesiones activas del usuario (ver / revocar).
 */
if (!defined('IN_APP')) { die('Acceso denegado'); }

$auth = new Auth($mysqli, $_config);

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (!empty($_POST['revoke'])) {
        $auth->revoke($_user['id_user'], (int)$_POST['revoke']);
    } elseif (!empty($_POST['revoke_others'])) {
        $auth->revokeOthers($_user['id_user'], $_user['id_session']);
    }
    App::redirect('/profile/sessions/');
}

$sessions   = $auth->sessions($_user['id_user']);
$page_title = App::t('profile.sessions');
?>
<div class="px-4 py-6">
  <section class="rounded-lg border border-gray-200 bg-white dark:border-ink-700 dark:bg-ink-900">
    <div class="flex items-center justify-between border-b border-gray-200 px-4 py-3 dark:border-ink-700">
      <h2 class="font-medium"><?= App::e(App::t('profile.sessions')) ?></h2>
      <form method="post" action="/profile/sessions/">
        <button name="revoke_others" value="1"
                class="rounded-lg border border-gray-200 px-3 py-1.5 text-xs hover:bg-gray-50 dark:border-ink-700 dark:hover:bg-ink-800">
          <?= App::e(App::t('profile.revoke_others')) ?>
        </button>
      </form>
    </div>
    <div>
      <?php foreach ($sessions as $s):
        $isCurrent = ((int)$s['id_session'] === (int)$_user['id_session']); ?>
        <div class="flex items-center justify-between gap-3 border-b border-gray-200 px-4 py-3 last:border-0 dark:border-ink-700">
          <div class="min-w-0">
            <div class="truncate text-sm"><?= App::e($s['user_agent'] ?: '—') ?>
              <?php if ($isCurrent): ?>
                <span class="ml-1 rounded-full bg-success/10 px-2 py-0.5 text-xs text-success"><?= App::e(App::t('profile.session_this')) ?></span>
              <?php endif; ?>
            </div>
            <div class="text-xs text-gray-dark dark:text-gray-light">
              <?= App::e($s['ip']) ?> · <?= App::e(App::t('profile.last_seen')) ?>: <?= App::e($s['last_seen']) ?>
            </div>
          </div>
          <?php if (!$isCurrent): ?>
            <form method="post" action="/profile/sessions/">
              <button name="revoke" value="<?= (int)$s['id_session'] ?>"
                      class="rounded-lg border border-danger/30 px-3 py-1.5 text-xs text-danger hover:bg-danger/10">
                <?= App::e(App::t('profile.revoke')) ?>
              </button>
            </form>
          <?php endif; ?>
        </div>
      <?php endforeach; ?>
    </div>
  </section>
</div>
