import { useAuth } from "../auth/AuthContext";

export default function AdminDocumentationTab() {
  const { user } = useAuth();

  return (
    <div className="prose prose-sm max-w-none dark:prose-invert">
      <h2>Документация администратора</h2>

      <h3>Ролевая модель</h3>
      <ul>
        <li><strong>Owner</strong> — полный доступ, управление сервисами systemd, debug mode</li>
        <li><strong>Admin</strong> — полный доступ к данным, управление пользователями и тарифами</li>
        <li><strong>Moderator</strong> — ограниченные права, настраиваемые через чекбоксы</li>
        <li><strong>User</strong> — стандартный пользователь</li>
      </ul>

      <h3>Вкладки админ-панели</h3>
      <dl>
        <dt>Пользователи</dt>
        <dd>Поиск, редактирование ролей, блокировка, назначение прав модераторам</dd>
        <dt>Агенты</dt>
        <dd>Просмотр и управление агентами, включение/отключение</dd>
        <dt>Журналы</dt>
        <dd>Просмотр логов, debug mode, очистка, экспорт. Фильтрация по уровню и источнику</dd>
        <dt>Обратная связь</dt>
        <dd>Управление отзывами пользователей, изменение статуса</dd>
        <dt>Тарифы</dt>
        <dd>Создание и редактирование тарифных планов</dd>
        <dt>Фичи</dt>
        <dd>Трекер новых функций, 2FA глобальный переключатель</dd>
        <dt>Пайплайн</dt>
        <dd>Настройка VAD, wake word, семантической валидации, цепочек агентов и авто-тюнинга</dd>
        <dt>Сервисы</dt>
        <dd>Управление systemd-сервисами (только owner, только production)</dd>
        <dt>Система</dt>
        <dd>Информация о версии, БД, окружении</dd>
      </dl>

      <h3>Настройка VAD (шумоподавление)</h3>
      <p>
        Вкладка «Пайплайн» позволяет точно настроить параметры обнаружения голоса:
      </p>
      <ul>
        <li><strong>noise_threshold</strong> (0–1) — порог шума. Чем ниже, тем тише звуки будут считаться речью. Для тихого окружения ставьте 0.1–0.2, для шумного — 0.5–0.7</li>
        <li><strong>silence_timeout_ms</strong> — сколько миллисекунд тишины нужно, чтобы считать фразу законченной. Больше = дольше ждёт паузу</li>
        <li><strong>min_audio_duration_ms</strong> — минимальная длина аудио в миллисекундах. Короткие звуки (щелчки, кашель) отбрасываются</li>
      </ul>
      <p>
        Пользователи выбирают пресеты голоса в настройках. Администратор может задать
        точные значения в пайплайне — они станут базой для всех пользователей.
      </p>

      <h3>2FA (двухфакторная аутентификация)</h3>
      <p>
        Глобальный переключатель 2FA находится во вкладке «Фичи». Если 2FA отключена —
        пользователи входят без кода, даже если у каждого лично 2FA была включена.
      </p>

      <h3>Debug Mode</h3>
      <p>
        Во вкладке «Журналы» доступен режим расширенного логирования (1000%).
        Включается owner-ом. При активации логируются:
      </p>
      <ul>
        <li>Каждый HTTP-запрос (метод, path, статус, длительность)</li>
        <li>Каждый LLM-вызов (промпт, ответ, модель)</li>
        <li>Все вызовы агентов с полными данными</li>
        <li>Все этапы пайплайна</li>
      </ul>
      <p>
        Логи авто-очищаются по расписанию (настраивается). Owner также может очистить
        вручную. При переполнении (80%) отправляется уведомление.
      </p>

      <h3>Экспорт логов</h3>
      <p>
        Вкладка «Журналы» → кнопка «Скачать». Все логи выгружаются одним JSON-файлом
        для скачивания на локальную машину. Удобно для анализа ошибок вне VPS.
      </p>

      {user?.role === "owner" && (
        <>
          <h3>Управление сервисами</h3>
          <p>
            Вкладка «Сервисы» доступна только владельцу. Позволяет перезапускать
            systemd-юниты: <code>voidea-api</code>, <code>voidea-worker</code>, <code>voidea-beat</code>.
            Работает только в production-окружении.
          </p>
        </>
      )}
    </div>
  );
}
