import { query } from '../../../utils/db' /** * 주간보고 연계용 유지보수 업무 조회 * 해당 주차에 완료된 유지보수 업무 목록 * GET /api/maintenance/report/available */ export default defineEventHandler(async (event) => { const params = getQuery(event) const projectId = params.projectId ? Number(params.projectId) : null const weekStartDate = params.weekStartDate as string const weekEndDate = params.weekEndDate as string if (!projectId) { throw createError({ statusCode: 400, message: '프로젝트 ID가 필요합니다.' }) } // 해당 주차에 완료된 유지보수 업무 (아직 주간보고에 연결 안 된 것) const sql = ` SELECT m.task_id, m.request_date, m.request_title, m.request_content, m.requester_name, m.task_type, m.priority, m.status, m.resolution_content, m.dev_completed_at, m.ops_completed_at, m.client_confirmed_at, m.weekly_report_id FROM wr_maintenance_task m WHERE m.project_id = $1 AND m.status = 'COMPLETED' AND m.weekly_report_id IS NULL AND ( (m.dev_completed_at >= $2 AND m.dev_completed_at <= $3) OR (m.ops_completed_at >= $2 AND m.ops_completed_at <= $3) OR (m.client_confirmed_at >= $2 AND m.client_confirmed_at <= $3) ) ORDER BY m.dev_completed_at DESC NULLS LAST, m.task_id DESC ` const tasks = await query(sql, [projectId, weekStartDate, weekEndDate + ' 23:59:59']) return { tasks: tasks.map((t: any) => ({ taskId: t.task_id, requestDate: t.request_date, requestTitle: t.request_title, requestContent: t.request_content, requesterName: t.requester_name, taskType: t.task_type, priority: t.priority, status: t.status, resolutionContent: t.resolution_content, devCompletedAt: t.dev_completed_at, opsCompletedAt: t.ops_completed_at, clientConfirmedAt: t.client_confirmed_at })) } })