import { requestDeviceRelease } from "../../../db/devices"; /** * POST /api/devices/:id/request-release * * Original-User markiert sein eigenes Device für Freigabe. * Freigabe wird aktiv nach 24h (Cooldown schützt gegen impulsiven Release im Drang-Window). * * Auth: eingeloggter User, ownership-check via userId im DB-Query. */ export default defineEventHandler(async (event) => { const user = await requireUser(event, { skipDeviceCheck: true }); const id = getRouterParam(event, "id"); if (!id) { throw createError({ statusCode: 400, data: { error: "MISSING_ID" } }); } const updated = await requestDeviceRelease(user.id, id); if (!updated) { // Device nicht gefunden, gehört nicht dem User, oder hat kein boundToPlan throw createError({ statusCode: 404, data: { error: "DEVICE_NOT_FOUND_OR_NOT_BOUND" }, }); } const releaseAt = new Date(Date.now() + 24 * 60 * 60 * 1000); return { success: true, releaseAt: releaseAt.toISOString(), }; });