import PreRegistration from '../../../models/preRegistration.js' import { connectDB } from '../../../utils/mongoose.js' export default defineEventHandler(async (event) => { await requireAdmin(event) const id = getRouterParam(event, 'id') const body = await validateBody(event, preRegistrantStatusUpdateSchema) await connectDB() const existing = await PreRegistration.findById(id) if (!existing) { throw createError({ statusCode: 404, statusMessage: 'Pre-registrant not found' }) } // Only allow status changes to pending/selected (invite/accept are handled by other endpoints) if (existing.status === 'accepted') { throw createError({ statusCode: 400, statusMessage: 'Cannot modify an accepted pre-registrant' }) } const update = {} if (body.status !== undefined) update.status = body.status if (body.adminNotes !== undefined) update.adminNotes = body.adminNotes const updated = await PreRegistration.findByIdAndUpdate(id, update, { new: true }).lean() return updated })