Service requests
Price customer quote requests at /dashboard/platform/service-requests.
Signed-in website customers request a quote for a published service. Staff price it on /dashboard/platform/service-requests (constructionOperatorRequests).
Open the request
Status requested.
Quote
commandConstructionRequest with quote: amount, terms, and expiry. Each quote is a version. "Accepted or cancelled requests cannot be repriced".
Customer decides
The customer accepts (status becomes payment_pending) or cancels in /account/requests/[id].
Collect the deposit
If Stripe is set up, the customer pays on /account/requests/[id]/payment. See Payment providers.
Staff can also cancel with cancel. Status values: requested, quoted, payment_pending, cancelled. Events are stored as ServiceRequestEvent.