Domain Model
Quote Response
Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string.uuid | Yes | — | Id |
| createdAt | string.date-time | Yes | — | Created at |
| updatedAt | string.date-time | Yes | — | Updated at |
| quoteId | string | Yes | — | ID of the associated quote |
| contactId | string | Yes | — | ID of the associated contact |
| action | enum(accepted, rejected, changes_requested) | Yes | — | Action |
| rejectionReason | unknown | Yes | — | Rejection reason |
| rejectionNotes | unknown | Yes | — | Rejection notes |
| changeCategories | unknown | Yes | — | Change categories |
| changeNotes | unknown | Yes | — | Change notes |
| ipAddress | unknown | Yes | — | Ip address |
| userAgent | unknown | Yes | — | User agent |
| respondedAt | string.date-time | Yes | — | Responded at |
| workspaceId | string | Yes | — | ID of the associated workspace |
Create Schema
Fields accepted when creating a new record:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| quoteId | string | Yes | — | ID of the associated quote |
| contactId | string | Yes | — | ID of the associated contact |
| action | enum(accepted, rejected, changes_requested) | Yes | — | Action |
| rejectionReason | enum(too_expensive, chose_competitor, project_cancelled, scope_mismatch, timeline_doesnt_work, other) | No | — | Rejection reason |
| rejectionNotes | string | No | — | Rejection notes |
| changeCategories | string[] | No | — | Change categories |
| changeNotes | object | No | — | Change notes |
| ipAddress | string | No | — | Ip address |
| userAgent | string | No | — | User agent |
| workspaceId | string | Yes | — | ID of the associated workspace |