import { listMagicDevices } from '../../db/devices'; import { requireUser } from '../../utils/auth'; /** * GET /api/magic/devices * * Listet alle aktiven Magic-Bindings des Users für UI. * Response: [{ deviceId, hostname, model, osVersion, magicEnrolledAt, releaseRequestedAt, releaseAvailableAt }] */ export default defineEventHandler(async (event) => { const user = await requireUser(event); const devices = await listMagicDevices(user.id); // Berechne releaseAvailableAt (releaseRequestedAt + 24h) const enriched = devices.map((d) => { let releaseAvailableAt: string | null = null; if (d.releaseRequestedAt) { const availableAt = new Date( d.releaseRequestedAt.getTime() + 24 * 60 * 60 * 1000, ); releaseAvailableAt = availableAt.toISOString(); } return { deviceId: d.deviceId, hostname: d.hostname, model: d.model, osVersion: d.osVersion, magicEnrolledAt: d.magicEnrolledAt.toISOString(), releaseRequestedAt: d.releaseRequestedAt?.toISOString() ?? null, releaseAvailableAt, }; }); return { success: true, data: enriched, }; });