import { Router } from 'express' import { prisma } from '../db.js' import { authRequired } from '../middleware.js' const router = Router() router.use(authRequired) // 服务器节点列表: 元数据 + 最新快照 router.get('/servers', async (_req, res, next) => { try { const rows = await prisma.serverNode.findMany({ orderBy: { name: 'asc' }, }) res.json({ items: rows }) } catch (e) { next(e) } }) // 节点时序: ?uuid=...&hours=24 router.get('/servers/:uuid/history', async (req, res, next) => { try { const hours = Math.min(Math.max(Number(req.query.hours) || 24, 1), 168) const since = new Date(Date.now() - hours * 3600 * 1000) const rows = await prisma.serverNodeHistory.findMany({ where: { uuid: req.params.uuid, period: { gte: since } }, orderBy: { period: 'asc' }, take: 2000, }) res.json({ items: rows }) } catch (e) { next(e) } }) // 服务健康列表 router.get('/services', async (_req, res, next) => { try { const rows = await prisma.serviceCheck.findMany({ orderBy: { name: 'asc' }, }) res.json({ items: rows }) } catch (e) { next(e) } }) export default router