import { getDb } from '../utils/db.js'
import { requireAuth } from '../utils/authHelpers.js'
import { getActiveSessions } from '../utils/liveSessions.js'
import { rowToDevice, sanitizeDeviceForResponse } from '../utils/deviceUtils.js'

export default defineEventHandler(async (event) => {
  requireAuth(event)
  const [db, sessions] = await Promise.all([
    getDb(),
    getActiveSessions(),
  ])
  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 }
})
