import { queryOne, execute } from '../../../../utils/db' import { requireAdmin } from '../../../../utils/session' /** * 권한 삭제 * DELETE /api/admin/role/[id]/delete */ export default defineEventHandler(async (event) => { await requireAdmin(event) const roleId = getRouterParam(event, 'id') if (!roleId) { throw createError({ statusCode: 400, message: '권한 ID가 필요합니다.' }) } // 존재 여부 확인 const existing = await queryOne(` SELECT role_id, role_code FROM wr_role WHERE role_id = $1 `, [roleId]) if (!existing) { throw createError({ statusCode: 404, message: '권한을 찾을 수 없습니다.' }) } // 기본 권한은 삭제 불가 const protectedCodes = ['ROLE_ADMIN', 'ROLE_MANAGER', 'ROLE_USER'] if (protectedCodes.includes(existing.role_code)) { throw createError({ statusCode: 400, message: '기본 권한은 삭제할 수 없습니다.' }) } // 사용 중인 권한인지 확인 const usageCount = await queryOne(` SELECT COUNT(*) as cnt FROM wr_employee_role WHERE role_id = $1 `, [roleId]) if (parseInt(usageCount.cnt) > 0) { throw createError({ statusCode: 400, message: `${usageCount.cnt}명의 사용자가 이 권한을 사용 중입니다. 먼저 권한을 해제해주세요.` }) } await execute(`DELETE FROM wr_role WHERE role_id = $1`, [roleId]) return { success: true } })