Invoices & Contracts
Contracts
- Created via
app/actions/contracts.ts(CRUD + signing) - Stored in Supabase, typed via
lib/contract-types.ts, fetched vialib/contract-data.ts - Admin UI:
/admin/contracts/[id]— detail + signing flow
Invoices
- Created via
app/actions/invoices.ts(CRUD + payment tracking) - Stored in Supabase, typed via
lib/invoice-types.ts, fetched vialib/invoice-data.ts - Admin UI:
/admin/invoices— table with payment status
Work Orders
- Created after contract signing
app/actions/work-orders.tshandles CRUD- Admin UI:
/admin/work-orders/[id]
Retainers
- For ongoing client relationships
- Typed via
lib/retainer-types.ts, managed viaapp/actions/retainers.ts - Admin UI:
/admin/retainers/[id]
Typical sequence
Proposal approved → Contract signed → Invoice sent → Payment received → Work Order created
Each of these is a card on the lead detail page (/admin/leads/[id]).