import { createError, getRouterParam } from 'h3' import { requireAdminSession } from '../../../../utils/admin-auth' import { deleteMemberByAdmin } from '../../../../repositories/member-repository' import { removeManagedAvatarAsset } from '../../../../utils/member-avatar' /** * 관리자 회원 삭제 API * @param {import('h3').H3Event} event - 요청 이벤트 * @returns {Promise<{ ok: true }>} 삭제 결과 */ export default defineEventHandler(async (event) => { const session = requireAdminSession(event) const memberId = String(getRouterParam(event, 'id') || '') if (!memberId) { throw createError({ statusCode: 400, message: '회원 ID가 필요합니다.' }) } const deletedMember = await deleteMemberByAdmin({ actorUserId: session.userId, targetUserId: memberId }) if (deletedMember.avatarUrl) { await removeManagedAvatarAsset(deletedMember.avatarUrl) } return { ok: true } })