import { query } from '../../../utils/db' export default defineEventHandler(async (event) => { const queryParams = getQuery(event) const targetId = queryParams.target_id as string const period = (queryParams.period as string) || '1h' if (!targetId) { throw createError({ statusCode: 400, message: 'target_id is required' }) } const periodMap: Record = { '1h': '1 hour', '2h': '2 hours', '3h': '3 hours', '4h': '4 hours', '5h': '5 hours', '6h': '6 hours', '12h': '12 hours', '18h': '18 hours', '24h': '24 hours', '7d': '7 days', '30d': '30 days' } const interval = periodMap[period] || '1 hour' let networks: any[] = [] try { networks = await query(` SELECT network_id, interface_name, bytes_recv, bytes_sent, speed_recv, speed_sent, is_up, collected_at FROM server_networks WHERE target_id = $1 AND collected_at >= NOW() - INTERVAL '${interval}' ORDER BY collected_at ASC, interface_name ASC `, [targetId]) } catch (e) { networks = [] } return { target_id: targetId, period, data: networks } })