import { execute, queryOne } from '../../../utils/db' interface LinkBody { todoId: number weeklyReportId: number markCompleted?: boolean } /** * TODO와 주간보고 연계 * POST /api/todo/report/link */ export default defineEventHandler(async (event) => { const body = await readBody(event) if (!body.todoId || !body.weeklyReportId) { throw createError({ statusCode: 400, message: 'TODO ID와 주간보고 ID가 필요합니다.' }) } const todo = await queryOne('SELECT * FROM wr_todo WHERE todo_id = $1', [body.todoId]) if (!todo) { throw createError({ statusCode: 404, message: 'TODO를 찾을 수 없습니다.' }) } const updates = ['weekly_report_id = $1', 'updated_at = NOW()'] const values = [body.weeklyReportId] if (body.markCompleted) { updates.push('status = $2', 'completed_at = NOW()') values.push('COMPLETED') } values.push(body.todoId) await execute(` UPDATE wr_todo SET ${updates.join(', ')} WHERE todo_id = $${values.length} `, values) return { success: true, message: body.markCompleted ? 'TODO가 완료 처리되고 주간보고와 연계되었습니다.' : 'TODO가 주간보고와 연계되었습니다.' } })