// server/api/members/[id]/mark-dues-paid.post.ts export default defineEventHandler(async (event) => { try { const memberId = getRouterParam(event, 'id'); if (!memberId) { throw createError({ statusCode: 400, statusMessage: 'Member ID is required' }); } const { updateMember, getMemberById } = await import('~/server/utils/nocodb'); // Get current member data const currentMember = await getMemberById(memberId); if (!currentMember) { throw createError({ statusCode: 404, statusMessage: 'Member not found' }); } // Prepare update data const today = new Date(); const updateData = { current_year_dues_paid: 'true', membership_date_paid: today.toISOString().split('T')[0], // YYYY-MM-DD format payment_due_date: undefined // Clear the due date since it's now paid }; // Update the member const updatedMember = await updateMember(memberId, updateData); console.log(`[API] Successfully marked dues as paid for member ${memberId}`); return { success: true, data: updatedMember, message: `Dues marked as paid for ${updatedMember.first_name} ${updatedMember.last_name}` }; } catch (error: any) { console.error('[API] Error marking dues as paid:', error); throw createError({ statusCode: error.statusCode || 500, statusMessage: error.message || 'Failed to mark dues as paid' }); } });