Files
weeklyreport/backend/api/project/[id]/detail.get.ts
2026-01-04 20:58:47 +09:00

43 lines
1.4 KiB
TypeScript

import { queryOne, query } from '../../../utils/db'
/**
* 프로젝트 상세 조회
* GET /api/project/[id]/detail
*/
export default defineEventHandler(async (event) => {
const projectId = getRouterParam(event, 'id')
const project = await queryOne<any>(`
SELECT * FROM wr_project_info WHERE project_id = $1
`, [projectId])
if (!project) {
throw createError({ statusCode: 404, message: '프로젝트를 찾을 수 없습니다.' })
}
// 현재 PM/PL
const managers = await query(`
SELECT * FROM wr_project_manager_current WHERE project_id = $1
`, [projectId])
const pm = managers.find((m: any) => m.role_type === 'PM')
const pl = managers.find((m: any) => m.role_type === 'PL')
return {
projectId: project.project_id,
projectCode: project.project_code,
projectName: project.project_name,
projectType: project.project_type || 'SI',
clientName: project.client_name,
projectDescription: project.project_description,
startDate: project.start_date,
endDate: project.end_date,
contractAmount: project.contract_amount,
projectStatus: project.project_status,
createdAt: project.created_at,
updatedAt: project.updated_at,
currentPm: pm ? { employeeId: pm.employee_id, employeeName: pm.employee_name } : null,
currentPl: pl ? { employeeId: pl.employee_id, employeeName: pl.employee_name } : null
}
})