Domain Model
Media Artifact
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 |
| siteId | string | No | — | ID of the associated site |
| relatedEntityType | string | No | — | Related entity type |
| relatedEntityId | string | No | — | ID of the associated related entity |
| mediaType | enum(photo, video, audio, voice_note, screenshot, scan, other) | Yes | — | Media type |
| filename | string | Yes | — | Filename |
| objectStorageKey | string | Yes | — | Object storage key |
| mimeType | string | No | — | Mime type |
| capturedAt | string.date-time | No | — | Captured at |
| capturedByUserId | string | No | — | ID of the associated captured by user |
| geotag | string | No | — | Geotag |
| transcript | string | No | — | Transcript |
| aiSummary | string | No | — | Ai summary |
| verificationStatus | enum(unverified, verified, disputed, redacted) | Yes | — | Verification status |
| 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 |
|---|---|---|---|---|
| siteId | string | No | — | ID of the associated site |
| relatedEntityType | string | No | — | Related entity type |
| relatedEntityId | string | No | — | ID of the associated related entity |
| mediaType | enum(photo, video, audio, voice_note, screenshot, scan, other) | Yes | — | Media type |
| filename | string | Yes | — | Filename |
| objectStorageKey | string | Yes | — | Object storage key |
| mimeType | string | No | — | Mime type |
| capturedAt | string.date-time | No | — | Captured at |
| capturedByUserId | string | No | — | ID of the associated captured by user |
| geotag | string | No | — | Geotag |
| transcript | string | No | — | Transcript |
| aiSummary | string | No | — | Ai summary |
| verificationStatus | enum(unverified, verified, disputed, redacted) | Yes | "unverified" | Verification status |
| 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 |
|---|---|---|---|---|
| siteId | string | No | — | ID of the associated site |
| relatedEntityType | string | No | — | Related entity type |
| relatedEntityId | string | No | — | ID of the associated related entity |
| mediaType | enum(photo, video, audio, voice_note, screenshot, scan, other) | No | — | Media type |
| filename | string | No | — | Filename |
| objectStorageKey | string | No | — | Object storage key |
| mimeType | string | No | — | Mime type |
| capturedAt | string.date-time | No | — | Captured at |
| capturedByUserId | string | No | — | ID of the associated captured by user |
| geotag | string | No | — | Geotag |
| transcript | string | No | — | Transcript |
| aiSummary | string | No | — | Ai summary |