fix(purchase): 작업일정 삭제 시 관련 데이터 캐스케이드 삭제 (admin 전용)

- 삭제 권한을 admin 전용으로 변경 (requireAdmin)
- 트랜잭션으로 reports → checkins → safety_education → schedule 순서 삭제
- 프론트엔드: admin만 삭제 버튼 표시, 종속 데이터 삭제 경고 추가
- 404 처리 및 한국어 에러 메시지

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-03-13 21:03:27 +09:00
parent 3e50639914
commit e8076a8550
4 changed files with 30 additions and 9 deletions

View File

@@ -198,14 +198,17 @@ async function updateStatus(req, res) {
}
}
// 일정 삭제
// 일정 삭제 (admin 전용, 관련 데이터 캐스케이드 삭제)
async function deleteSchedule(req, res) {
try {
await scheduleModel.deleteSchedule(req.params.id);
const result = await scheduleModel.deleteSchedule(req.params.id);
if (result === null) {
return res.status(404).json({ success: false, error: '일정을 찾을 수 없습니다' });
}
res.json({ success: true, message: '삭제 완료' });
} catch (err) {
console.error('Schedule delete error:', err);
res.status(500).json({ success: false, error: err.message });
res.status(500).json({ success: false, error: '일정 삭제 중 오류가 발생했습니다' });
}
}