Add unique member ID generation to registration process
All checks were successful
Build And Push Image / docker (push) Successful in 3m25s

- Generate and store unique member IDs during user registration
- Update email templates to include formatted member ID and registration date
- Add member_id field mapping in NocoDB utility functions
- Enhance email service with better logging and template data handling
This commit is contained in:
2025-08-11 16:05:24 +02:00
parent f1a462094a
commit f4044c4477
3 changed files with 28 additions and 5 deletions

View File

@@ -116,7 +116,11 @@ export default defineEventHandler(async (event) => {
membershipData
});
// 6. Create member record
// 6. Generate unique member ID and create member record
console.log('[api/registration.post] Generating unique member ID...');
const { generateMemberID } = await import('~/server/utils/member-id');
const generatedMemberID = await generateMemberID();
console.log('[api/registration.post] Creating member record...');
const memberData = {
first_name: body.first_name,
@@ -131,6 +135,7 @@ export default defineEventHandler(async (event) => {
membership_status: 'Active',
registration_date: new Date().toISOString(),
member_since: new Date().toISOString().split('T')[0], // YYYY-MM-DD format
member_id: generatedMemberID, // Include the generated member ID
membership_date_paid: '',
payment_due_date: paymentDueDate.toISOString() // 1 month from registration
};
@@ -154,7 +159,12 @@ export default defineEventHandler(async (event) => {
firstName: body.first_name,
lastName: body.last_name,
verificationLink,
memberId: createdMemberId
memberId: member.member_id || `MUSA-${createdMemberId}`, // Use formatted member_id
registrationDate: new Date().toLocaleDateString('en-US', {
year: 'numeric',
month: 'long',
day: 'numeric'
})
});
console.log('[api/registration.post] Welcome email sent successfully');
@@ -163,13 +173,13 @@ export default defineEventHandler(async (event) => {
// Don't fail the registration if email fails - user can resend verification email later
}
console.log(`[api/registration.post] ✅ Registration successful - Member ID: ${createdMemberId}, Keycloak ID: ${createdKeycloakId}`);
console.log(`[api/registration.post] ✅ Registration successful - Member ID: ${member.member_id || `MUSA-${createdMemberId}`}, Keycloak ID: ${createdKeycloakId}`);
return {
success: true,
message: 'Registration successful! Please check your email to verify your account and set your password.',
data: {
memberId: createdMemberId,
memberId: member.member_id || `MUSA-${createdMemberId}`, // Return formatted member_id
email: body.email
}
};