Add BillingEmail field for commercial customers; support comma-separated multi-email

- Customer entity + DTO: new BillingEmail field (accounting/invoicing address)
- Email fields now accept comma-separated lists; DTO validates each address individually
- NotificationService: SendToEmailListAsync helper fans out to all addresses in a list;
  NotifyQuoteSentAsync accepts optional overrideEmail so staff can send to an ad-hoc address
- Migration: AddCustomerBillingEmail
- Customer Create/Edit/Details views updated to show Billing Email field
- customer-billing-email.js: client-side helpers for billing email input

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-08 20:46:53 -04:00
parent 12f784f34c
commit fb979bc88d
10 changed files with 9812 additions and 56 deletions
@@ -6,6 +6,7 @@ public class Customer : BaseEntity
public string? ContactFirstName { get; set; }
public string? ContactLastName { get; set; }
public string? Email { get; set; }
public string? BillingEmail { get; set; } // Accounting/invoicing email for commercial customers
public string? Phone { get; set; }
public string? MobilePhone { get; set; }
public string? Address { get; set; }