import { getDb } from '../utils/db.js' import { requireAuth } from '../utils/authHelpers.js' import { getActiveSessions } from '../utils/liveSessions.js' import { getActiveEntities } from '../utils/cotStore.js' import { rowToDevice, sanitizeDeviceForResponse } from '../utils/deviceUtils.js' export default defineEventHandler(async (event) => { requireAuth(event) const config = useRuntimeConfig() const ttlMs = Number(config.cotTtlMs ?? 90_000) || 90_000 const [db, sessions, cotEntities] = await Promise.all([ getDb(), getActiveSessions(), getActiveEntities(ttlMs), ]) const rows = await db.all('SELECT id, name, device_type, vendor, lat, lng, stream_url, source_type, config FROM devices ORDER BY id') const devices = rows.map(rowToDevice).filter(Boolean).map(sanitizeDeviceForResponse) return { devices, liveSessions: sessions, cotEntities } })