Domain Model
Product
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 |
| categoryId | string | Yes | — | ID of the associated category |
| name | string | Yes | — | Name |
| sku | string | Yes | — | Sku |
| description | string | Yes | — | Description |
| manufacturer | string | No | — | Manufacturer |
| modelNumber | string | No | — | Model number |
| unitPrice | number | No | — | Unit price |
| costPrice | number | No | — | Cost price |
| msrp | number | No | — | Msrp |
| markupPercent | number | No | — | Markup percent |
| unit | enum(each, foot, meter, box, roll, pair, kit) | Yes | — | Unit |
| status | enum(draft, active, discontinued) | Yes | — | Status |
| attributes | object | Yes | — | Attributes |
| warrantyMonths | integer | No | — | Warranty months |
| leadTimeDays | integer | No | — | Lead time days |
| minOrderQuantity | integer | Yes | — | Min order quantity |
| estimatedLaborHours | number | No | — | Estimated labor hours |
| laborNotes | string | No | — | Labor notes |
| notes | string | No | — | Notes |
| productType | unknown | Yes | — | Product type |
| cutSheetS3Key | unknown | Yes | — | Cut sheet s3key |
| trackInventory | boolean | Yes | — | Track inventory |
| reorderPoint | unknown | Yes | — | Reorder point |
| reorderQty | unknown | Yes | — | Reorder qty |
| 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 |
|---|---|---|---|---|
| categoryId | string | Yes | — | ID of the associated category |
| name | string | Yes | — | Name |
| sku | string | Yes | — | Sku |
| description | string | Yes | — | Description |
| manufacturer | string | No | — | Manufacturer |
| modelNumber | string | No | — | Model number |
| unitPrice | number | No | — | Unit price |
| costPrice | number | No | — | Cost price |
| msrp | number | No | — | Msrp |
| markupPercent | number | No | — | Markup percent |
| unit | enum(each, foot, meter, box, roll, pair, kit) | Yes | "each" | Unit |
| status | enum(draft, active, discontinued) | Yes | "draft" | Status |
| attributes | object | Yes | {} | Attributes |
| warrantyMonths | integer | No | — | Warranty months |
| leadTimeDays | integer | No | — | Lead time days |
| minOrderQuantity | integer | Yes | 1 | Min order quantity |
| estimatedLaborHours | number | No | — | Estimated labor hours |
| laborNotes | string | No | — | Labor notes |
| notes | string | No | — | Notes |
| productType | enum(controller, panel, camera, sensor, reader, lock, switch, server, nvr_dvr, workstation, ups, pdu, enclosure, module, cable_run, access_point, intercom_station, other) | No | — | Product type |
| cutSheetS3Key | string | No | — | Cut sheet s3key |
| trackInventory | boolean | Yes | false | Track inventory |
| reorderPoint | unknown | No | — | Reorder point |
| reorderQty | unknown | No | — | Reorder qty |
| 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 |
|---|---|---|---|---|
| categoryId | string | No | — | ID of the associated category |
| name | string | No | — | Name |
| sku | string | No | — | Sku |
| description | string | No | — | Description |
| manufacturer | unknown | No | — | Manufacturer |
| modelNumber | unknown | No | — | Model number |
| unitPrice | unknown | No | — | Unit price |
| costPrice | unknown | No | — | Cost price |
| msrp | unknown | No | — | Msrp |
| markupPercent | unknown | No | — | Markup percent |
| unit | enum(each, foot, meter, box, roll, pair, kit) | No | "each" | Unit |
| status | enum(draft, active, discontinued) | No | "draft" | Status |
| attributes | object | No | {} | Attributes |
| warrantyMonths | unknown | No | — | Warranty months |
| leadTimeDays | unknown | No | — | Lead time days |
| minOrderQuantity | integer | No | 1 | Min order quantity |
| estimatedLaborHours | unknown | No | — | Estimated labor hours |
| laborNotes | unknown | No | — | Labor notes |
| notes | unknown | No | — | Notes |
| productType | unknown | No | — | Product type |
| cutSheetS3Key | unknown | No | — | Cut sheet s3key |
| trackInventory | boolean | No | — | Track inventory |
| reorderPoint | unknown | No | — | Reorder point |
| reorderQty | unknown | No | — | Reorder qty |