diff --git a/app/api/onboarding/[id]/process/route.ts b/app/api/onboarding/[id]/process/route.ts
index a2dfac4..9b34d81 100644
--- a/app/api/onboarding/[id]/process/route.ts
+++ b/app/api/onboarding/[id]/process/route.ts
@@ -115,7 +115,19 @@ export async function POST(
inactive_companies: 0,
first_seen: new Date().toISOString().slice(0, 10),
last_checked: new Date().toISOString().slice(0, 10),
- notes: `Created from onboarding submission ${submission.reference_no}. Residential: ${d.residential_address}; Postal: ${d.postal_address}; Email: ${d.email}; DOB: ${d.date_of_birth}.`,
+ residential_address_line_1: d.residential_address_line_1?.trim() ?? "",
+ residential_address_line_2: d.residential_address_line_2?.trim() ?? "",
+ residential_town_city: d.residential_town_city?.trim() ?? "",
+ residential_province: d.residential_province?.trim() ?? "",
+ residential_postal_code: d.residential_postal_code?.trim() ?? "",
+ postal_address_line_1: d.postal_address_line_1?.trim() ?? "",
+ postal_address_line_2: d.postal_address_line_2?.trim() ?? "",
+ postal_town_city: d.postal_town_city?.trim() ?? "",
+ postal_province: d.postal_province?.trim() ?? "",
+ postal_postal_code: d.postal_postal_code?.trim() ?? "",
+ email: d.email?.trim() ?? "",
+ date_of_birth: d.date_of_birth ?? "",
+ notes: `Created from onboarding submission ${submission.reference_no}. Email: ${d.email}; DOB: ${d.date_of_birth}.`,
});
created.push(created_rec.id);
} catch (err) {
diff --git a/app/api/onboarding/submit/route.ts b/app/api/onboarding/submit/route.ts
index fdea83d..4727dbf 100644
--- a/app/api/onboarding/submit/route.ts
+++ b/app/api/onboarding/submit/route.ts
@@ -98,8 +98,14 @@ function validateDirector(d: OnboardingDirectorPayload): string | null {
if (!d.surname?.trim()) return "Director surname required";
if (!/^\d{13}$/.test(d.id_no ?? "")) return "Director ID must be 13 digits";
if (!d.date_of_birth) return "Director date of birth required";
- if (!d.residential_address?.trim()) return "Director residential address required";
- if (!d.postal_address?.trim()) return "Director postal address required";
+ if (!d.residential_address_line_1?.trim()) return "Director residential address line 1 required";
+ if (!d.residential_town_city?.trim()) return "Director residential town/city required";
+ if (!d.residential_province?.trim()) return "Director residential province required";
+ if (!d.residential_postal_code?.trim()) return "Director residential postal code required";
+ if (!d.postal_address_line_1?.trim()) return "Director postal address line 1 required";
+ if (!d.postal_town_city?.trim()) return "Director postal town/city required";
+ if (!d.postal_province?.trim()) return "Director postal province required";
+ if (!d.postal_postal_code?.trim()) return "Director postal postal code required";
if (!d.email?.trim()) return "Director email required";
return null;
}
diff --git a/components/OnboardingWizard.tsx b/components/OnboardingWizard.tsx
index 057b42d..93a016a 100644
--- a/components/OnboardingWizard.tsx
+++ b/components/OnboardingWizard.tsx
@@ -60,7 +60,17 @@ function blankDirector(): OnboardingDirector {
id_no: "",
date_of_birth: "",
residential_address: "",
+ residential_address_line_1: "",
+ residential_address_line_2: "",
+ residential_town_city: "",
+ residential_province: "",
+ residential_postal_code: "",
postal_address: "",
+ postal_address_line_1: "",
+ postal_address_line_2: "",
+ postal_town_city: "",
+ postal_province: "",
+ postal_postal_code: "",
cell_phone: "",
email: ""
};
@@ -149,8 +159,14 @@ function validateDirector(d: OnboardingDirector): string[] {
const idErr = validateIdNo(d.id_no);
if (idErr) errs.push(idErr);
if (!d.date_of_birth) errs.push("Date of birth required");
- if (!d.residential_address.trim()) errs.push("Residential address required");
- if (!d.postal_address.trim()) errs.push("Postal address required");
+ if (!d.residential_address_line_1.trim()) errs.push("Residential address line 1 required");
+ if (!d.residential_town_city.trim()) errs.push("Residential town/city required");
+ if (!d.residential_province.trim()) errs.push("Residential province required");
+ if (!d.residential_postal_code.trim()) errs.push("Residential postal code required");
+ if (!d.postal_address_line_1.trim()) errs.push("Postal address line 1 required");
+ if (!d.postal_town_city.trim()) errs.push("Postal town/city required");
+ if (!d.postal_province.trim()) errs.push("Postal province required");
+ if (!d.postal_postal_code.trim()) errs.push("Postal postal code required");
if (!d.cell_phone.trim()) errs.push("Cell phone required");
const emailErr = validateEmail(d.email);
if (emailErr) errs.push(emailErr);
@@ -864,24 +880,75 @@ function DirectorsStep({
-
Residential address
+Postal address (leave blank if same as residential)
+