feat(tkuser): 협력업체 완전삭제 기능 추가 (admin 전용)
- 관련 데이터 cascade 삭제 (workers, schedules, checkins, reports, SSO 계정 등)
- 구매 이력 있는 업체는 삭제 차단
- 프론트엔드: 목록/상세에 완전삭제 버튼 + prompt("삭제") 안전장치
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -119,7 +119,32 @@ async function deactivateWorker(req, res) {
|
||||
}
|
||||
}
|
||||
|
||||
async function getDeleteInfo(req, res) {
|
||||
try {
|
||||
const company = await partnerModel.findById(req.params.id);
|
||||
if (!company) return res.status(404).json({ success: false, error: '업체를 찾을 수 없습니다' });
|
||||
const info = await partnerModel.getDeleteInfo(req.params.id);
|
||||
res.json({ success: true, data: { company_name: company.company_name, ...info } });
|
||||
} catch (err) {
|
||||
console.error('Partner getDeleteInfo error:', err);
|
||||
res.status(500).json({ success: false, error: err.message });
|
||||
}
|
||||
}
|
||||
|
||||
async function permanentDelete(req, res) {
|
||||
try {
|
||||
const company = await partnerModel.findById(req.params.id);
|
||||
if (!company) return res.status(404).json({ success: false, error: '업체를 찾을 수 없습니다' });
|
||||
await partnerModel.permanentDelete(req.params.id, req.user.id);
|
||||
res.json({ success: true, message: `"${company.company_name}" 업체가 완전히 삭제되었습니다` });
|
||||
} catch (err) {
|
||||
console.error('Partner permanentDelete error:', err);
|
||||
res.status(500).json({ success: false, error: err.message });
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
list, getById, create, update, deactivate,
|
||||
listWorkers, createWorker, updateWorker, deactivateWorker
|
||||
listWorkers, createWorker, updateWorker, deactivateWorker,
|
||||
getDeleteInfo, permanentDelete
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user