The top-nav Accounting module (/accounting, nav.billing.view)
shows Invoices at /accounting/invoices in the URL; that path
rewrites internally to the billing route folder
(apps/web/src/app/(authenticated)/billing/invoices/,
next.config.ts's /accounting/:path* → /billing/:path* rewrite), where
New Invoice (invoices/new/new-invoice-page.tsx) creates one.
InvoiceStatus (Prisma enum, defaults to DRAFT) tracks each invoice's
own lifecycle, separate from PlatformInvoiceStatus, which is the
contractor organization's own solarOS billing.
TODO(owner, likely product): write the full guide covering how an invoice
is generated from a Project/Work Order versus created standalone, the
full InvoiceStatus lifecycle, and how this page relates to
Stripe payments and
QuickBooks sync.