import { requireAuth } from '~/server/utils/auth' import { prisma } from '~/server/utils/prisma' export default defineEventHandler(async (event) => { const user = requireAuth(event) const body = await readBody(event) const { taskId, canvasId, newState } = body if (!taskId || !canvasId || !newState) { throw createError({ statusCode: 400, message: 'taskId, canvasId and newState are required' }) } // 1. Найти холст const canvas = await prisma.canvas.findUnique({ where: { id: canvasId } }) if (!canvas) { throw createError({ statusCode: 404, message: 'Canvas not found' }) } // 2. Найти и обновить узел в JSON const nodes = (canvas.nodes as any[]) || [] const nodeIdx = nodes.findIndex(n => n.id === taskId) if (nodeIdx === -1) { throw createError({ statusCode: 404, message: 'Task node not found in canvas' }) } // Обновляем состояние nodes[nodeIdx].state = newState // Также обновляем дату изменения, если нужно nodes[nodeIdx].updatedAt = new Date().toISOString() // 3. Сохранить изменения в БД await prisma.canvas.update({ where: { id: canvasId }, data: { nodes } }) return { success: true, message: `Task ${taskId} moved to ${newState}` } })