import { query } from '../../../utils/db' /** * 내 주간보고 목록 * GET /api/report/weekly/list */ export default defineEventHandler(async (event) => { const userId = getCookie(event, 'user_id') if (!userId) { throw createError({ statusCode: 401, message: '로그인이 필요합니다.' }) } const queryParams = getQuery(event) const year = queryParams.year ? parseInt(queryParams.year as string) : null const projectId = queryParams.projectId ? parseInt(queryParams.projectId as string) : null let sql = ` SELECT r.*, p.project_name, p.project_code FROM wr_weekly_report_detail r JOIN wr_project_info p ON r.project_id = p.project_id WHERE r.author_id = $1 ` const params: any[] = [parseInt(userId)] let paramIndex = 2 if (year) { sql += ` AND r.report_year = $${paramIndex++}` params.push(year) } if (projectId) { sql += ` AND r.project_id = $${paramIndex++}` params.push(projectId) } sql += ' ORDER BY r.report_year DESC, r.report_week DESC' const reports = await query(sql, params) return { reports: reports.map((r: any) => ({ reportId: r.report_id, projectId: r.project_id, projectName: r.project_name, projectCode: r.project_code, reportYear: r.report_year, reportWeek: r.report_week, weekStartDate: r.week_start_date, weekEndDate: r.week_end_date, workDescription: r.work_description, planDescription: r.plan_description, issueDescription: r.issue_description, remarkDescription: r.remark_description, workHours: r.work_hours, reportStatus: r.report_status, submittedAt: r.submitted_at, createdAt: r.created_at, updatedAt: r.updated_at })) } })