<template>
  <div class="page-container">
    <el-card shadow="hover" header="连接治理配置" class="info-card">
      <el-descriptions :column="1" border>
        <el-descriptions-item label="WebSocket 端点">
          {{ config?.websocketEndpoint ?? '—' }}
        </el-descriptions-item>
        <el-descriptions-item label="服务端口">{{ config?.serverPort ?? '—' }}</el-descriptions-item>
        <el-descriptions-item label="OFFER 去重窗口">
          {{ config ? (config.dedupWindowMs / 1000).toFixed(0) + ' 秒' : '—' }}
          <span class="text-muted">（同一连接在此窗口内的重复 OFFER 将被忽略）</span>
        </el-descriptions-item>
        <el-descriptions-item label="连接确认超时">
          {{ config ? (config.requestTimeoutMs / 1000).toFixed(0) + ' 秒' : '—' }}
          <span class="text-muted">（超时未确认则通知主控端请求失败）</span>
        </el-descriptions-item>
      </el-descriptions>
    </el-card>

    <el-card shadow="hover" header="管理员鉴权" class="info-card">
      <el-alert type="info" :closable="false" show-icon>
        <template #title>后台登录机制</template>
        <p>
          后台使用<strong>独立的管理员账号密码</strong>体系，与普通用户完全隔离，
          数据存储在独立的 <code>admin_account</code> 表中，登录后签发独立的管理员令牌
          （<code>admt_</code> 前缀 JWT，默认 1 小时有效）。
        </p>
        <p>
          首个管理员在管理员表为空时，由服务器
          <code>application.yml</code> 的
          <code>admin.bootstrap-username</code> / <code>admin.bootstrap-password</code>
          自动创建（也可通过环境变量 <code>ADMIN_BOOTSTRAP_USERNAME</code> /
          <code>ADMIN_BOOTSTRAP_PASSWORD</code> 覆盖）。
        </p>
        <p class="text-muted">建议首次登录后，在「管理员管理」中修改密码并新增专用管理员账号。</p>
      </el-alert>
    </el-card>
  </div>
</template>

<script setup lang="ts">
import { ref, onMounted } from 'vue';
import { getConfig } from '@/api/admin';
import type { ServerConfig } from '@/api/admin';

const config = ref<ServerConfig | null>(null);
onMounted(async () => {
  config.value = await getConfig();
});
</script>

<style scoped>
.info-card {
  margin-bottom: 16px;
}
pre {
  background: #f0f2f5;
  padding: 10px 12px;
  border-radius: 6px;
  overflow: auto;
  font-size: 13px;
}
</style>
