diff --git a/components/AddMemberDialog.vue b/components/AddMemberDialog.vue index 3374d26..a5ddfa6 100644 --- a/components/AddMemberDialog.vue +++ b/components/AddMemberDialog.vue @@ -316,17 +316,30 @@ const handleSubmit = async () => { clearFieldErrors(); try { - // Prepare the data for submission - const memberData = { ...form.value }; + // Transform field names to match server expectations (snake_case) + const memberData = { + first_name: form.value['First Name']?.trim(), + last_name: form.value['Last Name']?.trim(), + email: form.value.Email?.trim(), + phone: form.value.Phone?.trim() || null, + date_of_birth: form.value['Date of Birth'] || null, + nationality: form.value.Nationality?.trim() || null, + address: form.value.Address?.trim() || null, + membership_status: form.value['Membership Status'], + member_since: form.value['Member Since'] || null, + current_year_dues_paid: form.value['Current Year Dues Paid'], + membership_date_paid: form.value['Membership Date Paid'] || null, + payment_due_date: form.value['Payment Due Date'] || null + }; // Ensure required fields are not empty - if (!memberData['First Name']?.trim()) { + if (!memberData.first_name) { throw new Error('First Name is required'); } - if (!memberData['Last Name']?.trim()) { + if (!memberData.last_name) { throw new Error('Last Name is required'); } - if (!memberData.Email?.trim()) { + if (!memberData.email) { throw new Error('Email is required'); } diff --git a/components/EnhancedPhoneInput.vue b/components/EnhancedPhoneInput.vue index d934dcf..f3530e8 100644 --- a/components/EnhancedPhoneInput.vue +++ b/components/EnhancedPhoneInput.vue @@ -19,6 +19,7 @@ :placeholder="inputPlaceholder" :label="label" variant="outlined" + density="comfortable" :error="hasError" :error-messages="errorMessage" :rules="rules" diff --git a/components/MultipleNationalityInput.vue b/components/MultipleNationalityInput.vue index 371c8ac..b4e5dee 100644 --- a/components/MultipleNationalityInput.vue +++ b/components/MultipleNationalityInput.vue @@ -13,10 +13,11 @@ :items="countryOptions" :label="`Nationality ${index + 1}`" variant="outlined" - density="compact" + density="comfortable" :error="hasError" :error-messages="errorMessage" @update:model-value="updateNationalities" + class="nationality-select" >