A business account record holds the company-level information for a fleet or trade customer.
Account-level fields
The businessAccounts table is lean:
| Field | Notes |
|---|---|
| Name | What appears on the invoice |
| Address | Single field — the company's billing address |
| Notes | Internal-only |
| Active | Inactive accounts are hidden from pickers but kept on file |
Phones and emails
Phones and emails are not stored as columns on the account itself. Instead, the related businessContactInfo table holds labelled key-value pairs — so you can add a "Switchboard" phone, an "Accounts" email, a "Mobile (Fleet Manager)" number, etc. Each entry has:
- A label (free text — "Accounts", "Switchboard", "After hours")
- A value (the phone number or email)
- A sort order
This is more flexible than a single phone+email pair, and it survives team changes — when the "Accounts" person leaves you just update the value behind that label.
Contacts and vehicles aren't on the account
Contacts and vehicles each have their own records. Contacts link to the account via businessContacts.businessAccountId; vehicles link through shared jobcards (the jobcard carries businessAccountId), not via a direct vehicle → business FK.
VAT number
VAT numbers are stored at the company level (your garage's parent company), not on individual business accounts. If a business account customer needs their own VAT number on the printed invoice today, it'd go in the account's notes or address fields rather than a dedicated column.
How this differs from a private customer
A private customer record has firstName + lastName + a single phone and email and a flat address. A business account has a company name and address but pushes phones/emails out to a separate labelled table — reflecting that a company usually has many ways to be reached.