Skip to main content

Invoices & Contracts

Contracts

  • Created via app/actions/contracts.ts (CRUD + signing)
  • Stored in Supabase, typed via lib/contract-types.ts, fetched via lib/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 via lib/invoice-data.ts
  • Admin UI: /admin/invoices — table with payment status

Work Orders

  • Created after contract signing
  • app/actions/work-orders.ts handles CRUD
  • Admin UI: /admin/work-orders/[id]

Retainers

  • For ongoing client relationships
  • Typed via lib/retainer-types.ts, managed via app/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]).