diff --git a/site/src/components/intake/steps/EntityStep.astro b/site/src/components/intake/steps/EntityStep.astro index e8443ce..46c2791 100644 --- a/site/src/components/intake/steps/EntityStep.astro +++ b/site/src/components/intake/steps/EntityStep.astro @@ -388,9 +388,22 @@ const active = (window as any).PWIntake.get(); if (active.step_index !== (window as any).PWIntake.steps.indexOf("entity")) return; const missing: string[] = []; - if (!INPUTS.email.value.trim()) missing.push("email"); + if (!INPUTS.email.value.trim()) missing.push("email address"); if (!INPUTS.name.value.trim()) missing.push("your name"); - if (!INPUTS.legal_name.value.trim()) missing.push("legal name"); + if (!INPUTS.legal_name.value.trim()) missing.push("carrier legal name"); + if (!INPUTS.entity_structure.value) missing.push("entity structure"); + // EIN validation: must be XX-XXXXXXX format if provided, required for filing + const ein = INPUTS.ein.value.trim().replace(/[^0-9-]/g, ""); + if (!ein) { + missing.push("EIN"); + } else if (!/^\d{2}-?\d{7}$/.test(ein)) { + missing.push("valid EIN (format: 12-3456789)"); + } + // Address — at minimum need state + if (!INPUTS.street.value.trim()) missing.push("street address"); + if (!INPUTS.city.value.trim()) missing.push("city"); + if (!INPUTS.state.value.trim()) missing.push("state"); + if (!INPUTS.zip.value.trim()) missing.push("ZIP code"); // Affiliated filer: name+EIN required together const affName = INPUTS.aff_name.value.trim(); const affEin = INPUTS.aff_ein.value.trim();