import { defineEventHandler, getQuery, createError, getCookie } from 'h3' import { query } from '../../../utils/db' export default defineEventHandler(async (event) => { const userId = getCookie(event, 'user_id') if (!userId) { throw createError({ statusCode: 401, message: '로그인이 필요합니다.' }) } const { year, week } = getQuery(event) if (!year || !week) { throw createError({ statusCode: 400, message: '연도와 주차를 지정해주세요.' }) } // 해당 주차에 제출된 보고서가 있는 프로젝트 목록 const projects = await query(` SELECT p.project_id, p.project_code, p.project_name, COUNT(DISTINCT r.report_id) as report_count FROM wr_weekly_report r JOIN wr_weekly_report_task t ON r.report_id = t.report_id JOIN wr_project_info p ON t.project_id = p.project_id WHERE r.report_year = $1 AND r.report_week = $2 AND r.report_status IN ('SUBMITTED', 'AGGREGATED') GROUP BY p.project_id, p.project_code, p.project_name ORDER BY p.project_name `, [Number(year), Number(week)]) return { projects: projects.map((p: any) => ({ projectId: p.project_id, projectCode: p.project_code, projectName: p.project_name, reportCount: parseInt(p.report_count) })) } })