import Member from '../../../../models/member.js' import { connectDB } from '../../../../utils/mongoose.js' import { validateBody } from '../../../../utils/validateBody.js' import { adminSlackStatusSchema } from '../../../../utils/schemas.js' export default defineEventHandler(async (event) => { const admin = await requireAdmin(event) await validateBody(event, adminSlackStatusSchema) await connectDB() const memberId = getRouterParam(event, 'id') const existing = await Member.findById(memberId) if (!existing) { throw createError({ statusCode: 404, statusMessage: 'Member not found.' }) } // Idempotent: if already invited, no-op (preserve original slackInvitedAt, no log). if (existing.slackInvited === true) { return { success: true, member: existing } } const member = await Member.findByIdAndUpdate( memberId, { slackInvited: true, slackInvitedAt: new Date() }, { new: true, runValidators: false } ) logActivity(memberId, 'slack_invited_manually', {}, { performedBy: admin._id }) return { success: true, member } })