Domain Model
Project Milestone
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 |
| projectId | string | Yes | — | ID of the associated project |
| name | string | Yes | — | Name |
| description | unknown | Yes | — | Description |
| status | enum(pending, in_progress, completed, skipped) | Yes | — | Status |
| milestoneType | enum(payment, project) | Yes | — | Milestone type |
| percentage | unknown | Yes | — | Percentage |
| triggerType | unknown | Yes | — | Trigger type |
| dependsOnMilestoneId | unknown | Yes | — | ID of the associated depends on milestone |
| paymentTermMilestoneId | unknown | Yes | — | ID of the associated payment term milestone |
| dueDate | unknown | Yes | — | Due date |
| completedDate | unknown | Yes | — | Completed date |
| sortOrder | integer | Yes | — | Sort order |
| workspaceId | string | Yes | — | ID of the associated workspace |
| visibilityMode | enum(global, workspace_local, shared) | Yes | — | Visibility mode |
Create Schema
Fields accepted when creating a new record:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| projectId | string | Yes | — | ID of the associated project |
| name | string | Yes | — | Name |
| description | string | No | — | Description |
| status | enum(pending, in_progress, completed, skipped) | Yes | "pending" | Status |
| milestoneType | enum(payment, project) | Yes | "project" | Milestone type |
| percentage | unknown | No | — | Percentage |
| triggerType | unknown | No | — | Trigger type |
| dependsOnMilestoneId | unknown | No | — | ID of the associated depends on milestone |
| paymentTermMilestoneId | unknown | No | — | ID of the associated payment term milestone |
| dueDate | string.date-time | No | — | Due date |
| completedDate | string.date-time | No | — | Completed date |
| sortOrder | integer | Yes | 0 | Sort order |
| workspaceId | string | No | — | ID of the associated workspace |
| visibilityMode | enum(global, workspace_local, shared) | Yes | "workspace_local" | Visibility mode |
Update Schema
All fields are optional when updating:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | No | — | Name |
| description | string | No | — | Description |
| status | enum(pending, in_progress, completed, skipped) | No | "pending" | Status |
| milestoneType | enum(payment, project) | No | "project" | Milestone type |
| percentage | unknown | No | — | Percentage |
| triggerType | unknown | No | — | Trigger type |
| dependsOnMilestoneId | unknown | No | — | ID of the associated depends on milestone |
| paymentTermMilestoneId | unknown | No | — | ID of the associated payment term milestone |
| dueDate | string.date-time | No | — | Due date |
| completedDate | string.date-time | No | — | Completed date |
| sortOrder | integer | No | 0 | Sort order |