@hed-hog/studio 0.0.293 → 0.0.295
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/hedhog/table/capture_agent.yaml +47 -47
- package/hedhog/table/edit_composition.yaml +66 -66
- package/hedhog/table/edit_pipeline.yaml +45 -45
- package/hedhog/table/edit_stage_execution.yaml +45 -45
- package/hedhog/table/editor_delivery_package.yaml +62 -62
- package/hedhog/table/ingestion_job.yaml +73 -73
- package/hedhog/table/media_asset.yaml +129 -129
- package/hedhog/table/participant_command_ack.yaml +31 -31
- package/hedhog/table/participant_recording.yaml +66 -66
- package/hedhog/table/production_binding.yaml +33 -33
- package/hedhog/table/production_project.yaml +103 -103
- package/hedhog/table/publication_target.yaml +43 -43
- package/hedhog/table/recorded_file.yaml +73 -73
- package/hedhog/table/recording_command.yaml +71 -71
- package/hedhog/table/recording_incident.yaml +64 -64
- package/hedhog/table/recording_session.yaml +85 -85
- package/hedhog/table/scene.yaml +63 -63
- package/hedhog/table/scene_take.yaml +82 -82
- package/hedhog/table/session_participant.yaml +54 -54
- package/hedhog/table/storage_profile.yaml +74 -74
- package/hedhog/table/sync_marker.yaml +43 -43
- package/package.json +4 -4
- package/src/index.ts +4 -4
- package/src/language/en.json +8 -8
- package/src/studio.module.ts +20 -20
|
@@ -1,104 +1,104 @@
|
|
|
1
|
-
columns:
|
|
2
|
-
- type: pk
|
|
3
|
-
- name: uuid
|
|
4
|
-
type: varchar
|
|
5
|
-
length: 36
|
|
6
|
-
isNullable: true
|
|
7
|
-
- name: title
|
|
8
|
-
- type: slug
|
|
9
|
-
- name: description
|
|
10
|
-
type: text
|
|
11
|
-
isNullable: true
|
|
12
|
-
- name: project_type
|
|
13
|
-
type: enum
|
|
14
|
-
values: [course_lesson, standalone, social_content, campaign_asset, other]
|
|
15
|
-
default: standalone
|
|
16
|
-
- name: status
|
|
17
|
-
type: enum
|
|
18
|
-
values: [draft, planned, in_recording, recorded, in_editing, in_finalization, ready_to_publish, published, archived, cancelled]
|
|
19
|
-
default: draft
|
|
20
|
-
- name: current_stage
|
|
21
|
-
type: enum
|
|
22
|
-
values: [preparation, recording, rough_cut, cleanup, finalization, publication]
|
|
23
|
-
default: preparation
|
|
24
|
-
- name: cover_file_id
|
|
25
|
-
type: fk
|
|
26
|
-
isNullable: true
|
|
27
|
-
references:
|
|
28
|
-
table: file
|
|
29
|
-
column: id
|
|
30
|
-
onDelete: SET NULL
|
|
31
|
-
onUpdate: CASCADE
|
|
32
|
-
- name: thumbnail_file_id
|
|
33
|
-
type: fk
|
|
34
|
-
isNullable: true
|
|
35
|
-
references:
|
|
36
|
-
table: file
|
|
37
|
-
column: id
|
|
38
|
-
onDelete: SET NULL
|
|
39
|
-
onUpdate: CASCADE
|
|
40
|
-
- name: owner_user_id
|
|
41
|
-
type: fk
|
|
42
|
-
isNullable: true
|
|
43
|
-
references:
|
|
44
|
-
table: user
|
|
45
|
-
column: id
|
|
46
|
-
onDelete: SET NULL
|
|
47
|
-
onUpdate: CASCADE
|
|
48
|
-
- name: assigned_editor_user_id
|
|
49
|
-
type: fk
|
|
50
|
-
isNullable: true
|
|
51
|
-
references:
|
|
52
|
-
table: user
|
|
53
|
-
column: id
|
|
54
|
-
onDelete: SET NULL
|
|
55
|
-
onUpdate: CASCADE
|
|
56
|
-
- name: planned_at
|
|
57
|
-
type: datetime
|
|
58
|
-
isNullable: true
|
|
59
|
-
- name: recorded_at
|
|
60
|
-
type: datetime
|
|
61
|
-
isNullable: true
|
|
62
|
-
- name: published_at
|
|
63
|
-
type: datetime
|
|
64
|
-
isNullable: true
|
|
65
|
-
- name: started_at
|
|
66
|
-
type: datetime
|
|
67
|
-
isNullable: true
|
|
68
|
-
- name: finished_at
|
|
69
|
-
type: datetime
|
|
70
|
-
isNullable: true
|
|
71
|
-
- name: metadata_json
|
|
72
|
-
type: json
|
|
73
|
-
isNullable: true
|
|
74
|
-
- name: created_by_user_id
|
|
75
|
-
type: fk
|
|
76
|
-
isNullable: true
|
|
77
|
-
references:
|
|
78
|
-
table: user
|
|
79
|
-
column: id
|
|
80
|
-
onDelete: SET NULL
|
|
81
|
-
onUpdate: CASCADE
|
|
82
|
-
- name: updated_by_user_id
|
|
83
|
-
type: fk
|
|
84
|
-
isNullable: true
|
|
85
|
-
references:
|
|
86
|
-
table: user
|
|
87
|
-
column: id
|
|
88
|
-
onDelete: SET NULL
|
|
89
|
-
onUpdate: CASCADE
|
|
90
|
-
- name: deleted_at
|
|
91
|
-
type: datetime
|
|
92
|
-
isNullable: true
|
|
93
|
-
- type: created_at
|
|
94
|
-
- type: updated_at
|
|
95
|
-
|
|
96
|
-
indices:
|
|
97
|
-
- columns: [slug]
|
|
98
|
-
isUnique: true
|
|
99
|
-
- columns: [status]
|
|
100
|
-
- columns: [project_type, status]
|
|
101
|
-
- columns: [current_stage]
|
|
102
|
-
- columns: [owner_user_id]
|
|
103
|
-
- columns: [assigned_editor_user_id]
|
|
1
|
+
columns:
|
|
2
|
+
- type: pk
|
|
3
|
+
- name: uuid
|
|
4
|
+
type: varchar
|
|
5
|
+
length: 36
|
|
6
|
+
isNullable: true
|
|
7
|
+
- name: title
|
|
8
|
+
- type: slug
|
|
9
|
+
- name: description
|
|
10
|
+
type: text
|
|
11
|
+
isNullable: true
|
|
12
|
+
- name: project_type
|
|
13
|
+
type: enum
|
|
14
|
+
values: [course_lesson, standalone, social_content, campaign_asset, other]
|
|
15
|
+
default: standalone
|
|
16
|
+
- name: status
|
|
17
|
+
type: enum
|
|
18
|
+
values: [draft, planned, in_recording, recorded, in_editing, in_finalization, ready_to_publish, published, archived, cancelled]
|
|
19
|
+
default: draft
|
|
20
|
+
- name: current_stage
|
|
21
|
+
type: enum
|
|
22
|
+
values: [preparation, recording, rough_cut, cleanup, finalization, publication]
|
|
23
|
+
default: preparation
|
|
24
|
+
- name: cover_file_id
|
|
25
|
+
type: fk
|
|
26
|
+
isNullable: true
|
|
27
|
+
references:
|
|
28
|
+
table: file
|
|
29
|
+
column: id
|
|
30
|
+
onDelete: SET NULL
|
|
31
|
+
onUpdate: CASCADE
|
|
32
|
+
- name: thumbnail_file_id
|
|
33
|
+
type: fk
|
|
34
|
+
isNullable: true
|
|
35
|
+
references:
|
|
36
|
+
table: file
|
|
37
|
+
column: id
|
|
38
|
+
onDelete: SET NULL
|
|
39
|
+
onUpdate: CASCADE
|
|
40
|
+
- name: owner_user_id
|
|
41
|
+
type: fk
|
|
42
|
+
isNullable: true
|
|
43
|
+
references:
|
|
44
|
+
table: user
|
|
45
|
+
column: id
|
|
46
|
+
onDelete: SET NULL
|
|
47
|
+
onUpdate: CASCADE
|
|
48
|
+
- name: assigned_editor_user_id
|
|
49
|
+
type: fk
|
|
50
|
+
isNullable: true
|
|
51
|
+
references:
|
|
52
|
+
table: user
|
|
53
|
+
column: id
|
|
54
|
+
onDelete: SET NULL
|
|
55
|
+
onUpdate: CASCADE
|
|
56
|
+
- name: planned_at
|
|
57
|
+
type: datetime
|
|
58
|
+
isNullable: true
|
|
59
|
+
- name: recorded_at
|
|
60
|
+
type: datetime
|
|
61
|
+
isNullable: true
|
|
62
|
+
- name: published_at
|
|
63
|
+
type: datetime
|
|
64
|
+
isNullable: true
|
|
65
|
+
- name: started_at
|
|
66
|
+
type: datetime
|
|
67
|
+
isNullable: true
|
|
68
|
+
- name: finished_at
|
|
69
|
+
type: datetime
|
|
70
|
+
isNullable: true
|
|
71
|
+
- name: metadata_json
|
|
72
|
+
type: json
|
|
73
|
+
isNullable: true
|
|
74
|
+
- name: created_by_user_id
|
|
75
|
+
type: fk
|
|
76
|
+
isNullable: true
|
|
77
|
+
references:
|
|
78
|
+
table: user
|
|
79
|
+
column: id
|
|
80
|
+
onDelete: SET NULL
|
|
81
|
+
onUpdate: CASCADE
|
|
82
|
+
- name: updated_by_user_id
|
|
83
|
+
type: fk
|
|
84
|
+
isNullable: true
|
|
85
|
+
references:
|
|
86
|
+
table: user
|
|
87
|
+
column: id
|
|
88
|
+
onDelete: SET NULL
|
|
89
|
+
onUpdate: CASCADE
|
|
90
|
+
- name: deleted_at
|
|
91
|
+
type: datetime
|
|
92
|
+
isNullable: true
|
|
93
|
+
- type: created_at
|
|
94
|
+
- type: updated_at
|
|
95
|
+
|
|
96
|
+
indices:
|
|
97
|
+
- columns: [slug]
|
|
98
|
+
isUnique: true
|
|
99
|
+
- columns: [status]
|
|
100
|
+
- columns: [project_type, status]
|
|
101
|
+
- columns: [current_stage]
|
|
102
|
+
- columns: [owner_user_id]
|
|
103
|
+
- columns: [assigned_editor_user_id]
|
|
104
104
|
- columns: [deleted_at]
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
columns:
|
|
2
|
-
- type: pk
|
|
3
|
-
- name: production_project_id
|
|
4
|
-
type: fk
|
|
5
|
-
references:
|
|
6
|
-
table: production_project
|
|
7
|
-
column: id
|
|
8
|
-
onDelete: CASCADE
|
|
9
|
-
onUpdate: CASCADE
|
|
10
|
-
- name: target_type
|
|
11
|
-
type: enum
|
|
12
|
-
values: [lms, youtube, tiktok, instagram, internal_library, external_url]
|
|
13
|
-
- name: target_reference
|
|
14
|
-
type: varchar
|
|
15
|
-
length: 180
|
|
16
|
-
isNullable: true
|
|
17
|
-
- name: publication_mode
|
|
18
|
-
type: enum
|
|
19
|
-
values: [manual, scheduled, automatic]
|
|
20
|
-
default: manual
|
|
21
|
-
- name: status
|
|
22
|
-
type: enum
|
|
23
|
-
values: [pending, scheduled, processing, published, failed]
|
|
24
|
-
default: pending
|
|
25
|
-
- name: scheduled_at
|
|
26
|
-
type: datetime
|
|
27
|
-
isNullable: true
|
|
28
|
-
- name: published_at
|
|
29
|
-
type: datetime
|
|
30
|
-
isNullable: true
|
|
31
|
-
- name: published_url
|
|
32
|
-
type: varchar
|
|
33
|
-
length: 260
|
|
34
|
-
isNullable: true
|
|
35
|
-
- name: metadata_json
|
|
36
|
-
type: json
|
|
37
|
-
isNullable: true
|
|
38
|
-
- type: created_at
|
|
39
|
-
- type: updated_at
|
|
40
|
-
|
|
41
|
-
indices:
|
|
42
|
-
- columns: [production_project_id]
|
|
43
|
-
- columns: [target_type, status]
|
|
1
|
+
columns:
|
|
2
|
+
- type: pk
|
|
3
|
+
- name: production_project_id
|
|
4
|
+
type: fk
|
|
5
|
+
references:
|
|
6
|
+
table: production_project
|
|
7
|
+
column: id
|
|
8
|
+
onDelete: CASCADE
|
|
9
|
+
onUpdate: CASCADE
|
|
10
|
+
- name: target_type
|
|
11
|
+
type: enum
|
|
12
|
+
values: [lms, youtube, tiktok, instagram, internal_library, external_url]
|
|
13
|
+
- name: target_reference
|
|
14
|
+
type: varchar
|
|
15
|
+
length: 180
|
|
16
|
+
isNullable: true
|
|
17
|
+
- name: publication_mode
|
|
18
|
+
type: enum
|
|
19
|
+
values: [manual, scheduled, automatic]
|
|
20
|
+
default: manual
|
|
21
|
+
- name: status
|
|
22
|
+
type: enum
|
|
23
|
+
values: [pending, scheduled, processing, published, failed]
|
|
24
|
+
default: pending
|
|
25
|
+
- name: scheduled_at
|
|
26
|
+
type: datetime
|
|
27
|
+
isNullable: true
|
|
28
|
+
- name: published_at
|
|
29
|
+
type: datetime
|
|
30
|
+
isNullable: true
|
|
31
|
+
- name: published_url
|
|
32
|
+
type: varchar
|
|
33
|
+
length: 260
|
|
34
|
+
isNullable: true
|
|
35
|
+
- name: metadata_json
|
|
36
|
+
type: json
|
|
37
|
+
isNullable: true
|
|
38
|
+
- type: created_at
|
|
39
|
+
- type: updated_at
|
|
40
|
+
|
|
41
|
+
indices:
|
|
42
|
+
- columns: [production_project_id]
|
|
43
|
+
- columns: [target_type, status]
|
|
44
44
|
- columns: [scheduled_at]
|
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
columns:
|
|
2
|
-
- type: pk
|
|
3
|
-
- name: ingestion_job_id
|
|
4
|
-
type: fk
|
|
5
|
-
references:
|
|
6
|
-
table: ingestion_job
|
|
7
|
-
column: id
|
|
8
|
-
onDelete: CASCADE
|
|
9
|
-
onUpdate: CASCADE
|
|
10
|
-
- name: participant_recording_id
|
|
11
|
-
type: fk
|
|
12
|
-
references:
|
|
13
|
-
table: participant_recording
|
|
14
|
-
column: id
|
|
15
|
-
onDelete: CASCADE
|
|
16
|
-
onUpdate: CASCADE
|
|
17
|
-
- name: source_type
|
|
18
|
-
type: enum
|
|
19
|
-
values: [camera_video, screen_capture, microphone_audio, system_audio, webcam_audio_video, metadata, project_file, other]
|
|
20
|
-
default: other
|
|
21
|
-
- name: local_filename
|
|
22
|
-
type: varchar
|
|
23
|
-
length: 220
|
|
24
|
-
- name: original_filename
|
|
25
|
-
type: varchar
|
|
26
|
-
length: 220
|
|
27
|
-
isNullable: true
|
|
28
|
-
- name: container_format
|
|
29
|
-
type: varchar
|
|
30
|
-
length: 40
|
|
31
|
-
isNullable: true
|
|
32
|
-
- name: codec
|
|
33
|
-
type: varchar
|
|
34
|
-
length: 80
|
|
35
|
-
isNullable: true
|
|
36
|
-
- name: mime_type
|
|
37
|
-
type: varchar
|
|
38
|
-
length: 120
|
|
39
|
-
isNullable: true
|
|
40
|
-
- name: duration_ms
|
|
41
|
-
type: int
|
|
42
|
-
isNullable: true
|
|
43
|
-
- name: size_bytes
|
|
44
|
-
type: bigint
|
|
45
|
-
isNullable: true
|
|
46
|
-
- name: checksum
|
|
47
|
-
type: varchar
|
|
48
|
-
length: 128
|
|
49
|
-
isNullable: true
|
|
50
|
-
- name: width
|
|
51
|
-
type: int
|
|
52
|
-
isNullable: true
|
|
53
|
-
- name: height
|
|
54
|
-
type: int
|
|
55
|
-
isNullable: true
|
|
56
|
-
- name: frame_rate
|
|
57
|
-
type: int
|
|
58
|
-
isNullable: true
|
|
59
|
-
- name: audio_sample_rate
|
|
60
|
-
type: int
|
|
61
|
-
isNullable: true
|
|
62
|
-
- name: track_index
|
|
63
|
-
type: int
|
|
64
|
-
isNullable: true
|
|
65
|
-
- name: is_optional
|
|
66
|
-
type: boolean
|
|
67
|
-
default: false
|
|
68
|
-
- type: created_at
|
|
69
|
-
- type: updated_at
|
|
70
|
-
|
|
71
|
-
indices:
|
|
72
|
-
- columns: [ingestion_job_id]
|
|
73
|
-
- columns: [participant_recording_id]
|
|
1
|
+
columns:
|
|
2
|
+
- type: pk
|
|
3
|
+
- name: ingestion_job_id
|
|
4
|
+
type: fk
|
|
5
|
+
references:
|
|
6
|
+
table: ingestion_job
|
|
7
|
+
column: id
|
|
8
|
+
onDelete: CASCADE
|
|
9
|
+
onUpdate: CASCADE
|
|
10
|
+
- name: participant_recording_id
|
|
11
|
+
type: fk
|
|
12
|
+
references:
|
|
13
|
+
table: participant_recording
|
|
14
|
+
column: id
|
|
15
|
+
onDelete: CASCADE
|
|
16
|
+
onUpdate: CASCADE
|
|
17
|
+
- name: source_type
|
|
18
|
+
type: enum
|
|
19
|
+
values: [camera_video, screen_capture, microphone_audio, system_audio, webcam_audio_video, metadata, project_file, other]
|
|
20
|
+
default: other
|
|
21
|
+
- name: local_filename
|
|
22
|
+
type: varchar
|
|
23
|
+
length: 220
|
|
24
|
+
- name: original_filename
|
|
25
|
+
type: varchar
|
|
26
|
+
length: 220
|
|
27
|
+
isNullable: true
|
|
28
|
+
- name: container_format
|
|
29
|
+
type: varchar
|
|
30
|
+
length: 40
|
|
31
|
+
isNullable: true
|
|
32
|
+
- name: codec
|
|
33
|
+
type: varchar
|
|
34
|
+
length: 80
|
|
35
|
+
isNullable: true
|
|
36
|
+
- name: mime_type
|
|
37
|
+
type: varchar
|
|
38
|
+
length: 120
|
|
39
|
+
isNullable: true
|
|
40
|
+
- name: duration_ms
|
|
41
|
+
type: int
|
|
42
|
+
isNullable: true
|
|
43
|
+
- name: size_bytes
|
|
44
|
+
type: bigint
|
|
45
|
+
isNullable: true
|
|
46
|
+
- name: checksum
|
|
47
|
+
type: varchar
|
|
48
|
+
length: 128
|
|
49
|
+
isNullable: true
|
|
50
|
+
- name: width
|
|
51
|
+
type: int
|
|
52
|
+
isNullable: true
|
|
53
|
+
- name: height
|
|
54
|
+
type: int
|
|
55
|
+
isNullable: true
|
|
56
|
+
- name: frame_rate
|
|
57
|
+
type: int
|
|
58
|
+
isNullable: true
|
|
59
|
+
- name: audio_sample_rate
|
|
60
|
+
type: int
|
|
61
|
+
isNullable: true
|
|
62
|
+
- name: track_index
|
|
63
|
+
type: int
|
|
64
|
+
isNullable: true
|
|
65
|
+
- name: is_optional
|
|
66
|
+
type: boolean
|
|
67
|
+
default: false
|
|
68
|
+
- type: created_at
|
|
69
|
+
- type: updated_at
|
|
70
|
+
|
|
71
|
+
indices:
|
|
72
|
+
- columns: [ingestion_job_id]
|
|
73
|
+
- columns: [participant_recording_id]
|
|
74
74
|
- columns: [source_type]
|
|
@@ -1,72 +1,72 @@
|
|
|
1
|
-
columns:
|
|
2
|
-
- type: pk
|
|
3
|
-
- name: recording_session_id
|
|
4
|
-
type: fk
|
|
5
|
-
references:
|
|
6
|
-
table: recording_session
|
|
7
|
-
column: id
|
|
8
|
-
onDelete: CASCADE
|
|
9
|
-
onUpdate: CASCADE
|
|
10
|
-
- name: scene_id
|
|
11
|
-
type: fk
|
|
12
|
-
isNullable: true
|
|
13
|
-
references:
|
|
14
|
-
table: scene
|
|
15
|
-
column: id
|
|
16
|
-
onDelete: SET NULL
|
|
17
|
-
onUpdate: CASCADE
|
|
18
|
-
- name: scene_take_id
|
|
19
|
-
type: fk
|
|
20
|
-
isNullable: true
|
|
21
|
-
references:
|
|
22
|
-
table: scene_take
|
|
23
|
-
column: id
|
|
24
|
-
onDelete: SET NULL
|
|
25
|
-
onUpdate: CASCADE
|
|
26
|
-
- name: command_type
|
|
27
|
-
type: enum
|
|
28
|
-
values: [arm, start, stop, pause, resume, cancel]
|
|
29
|
-
- name: command_status
|
|
30
|
-
type: enum
|
|
31
|
-
values: [issued, acknowledged, partially_executed, executed, failed]
|
|
32
|
-
default: issued
|
|
33
|
-
- name: requested_by_user_id
|
|
34
|
-
type: fk
|
|
35
|
-
isNullable: true
|
|
36
|
-
references:
|
|
37
|
-
table: user
|
|
38
|
-
column: id
|
|
39
|
-
onDelete: SET NULL
|
|
40
|
-
onUpdate: CASCADE
|
|
41
|
-
- name: issued_by_user_id
|
|
42
|
-
type: fk
|
|
43
|
-
isNullable: true
|
|
44
|
-
references:
|
|
45
|
-
table: user
|
|
46
|
-
column: id
|
|
47
|
-
onDelete: SET NULL
|
|
48
|
-
onUpdate: CASCADE
|
|
49
|
-
- name: command_uuid
|
|
50
|
-
type: varchar
|
|
51
|
-
length: 36
|
|
52
|
-
- name: idempotency_key
|
|
53
|
-
type: varchar
|
|
54
|
-
length: 120
|
|
55
|
-
isNullable: true
|
|
56
|
-
- name: payload_json
|
|
57
|
-
type: json
|
|
58
|
-
isNullable: true
|
|
59
|
-
- name: issued_at
|
|
60
|
-
type: datetime
|
|
61
|
-
- name: effective_at
|
|
62
|
-
type: datetime
|
|
63
|
-
isNullable: true
|
|
64
|
-
- type: created_at
|
|
65
|
-
- type: updated_at
|
|
66
|
-
|
|
67
|
-
indices:
|
|
68
|
-
- columns: [recording_session_id, issued_at]
|
|
69
|
-
- columns: [scene_take_id]
|
|
70
|
-
- columns: [command_uuid]
|
|
71
|
-
isUnique: true
|
|
1
|
+
columns:
|
|
2
|
+
- type: pk
|
|
3
|
+
- name: recording_session_id
|
|
4
|
+
type: fk
|
|
5
|
+
references:
|
|
6
|
+
table: recording_session
|
|
7
|
+
column: id
|
|
8
|
+
onDelete: CASCADE
|
|
9
|
+
onUpdate: CASCADE
|
|
10
|
+
- name: scene_id
|
|
11
|
+
type: fk
|
|
12
|
+
isNullable: true
|
|
13
|
+
references:
|
|
14
|
+
table: scene
|
|
15
|
+
column: id
|
|
16
|
+
onDelete: SET NULL
|
|
17
|
+
onUpdate: CASCADE
|
|
18
|
+
- name: scene_take_id
|
|
19
|
+
type: fk
|
|
20
|
+
isNullable: true
|
|
21
|
+
references:
|
|
22
|
+
table: scene_take
|
|
23
|
+
column: id
|
|
24
|
+
onDelete: SET NULL
|
|
25
|
+
onUpdate: CASCADE
|
|
26
|
+
- name: command_type
|
|
27
|
+
type: enum
|
|
28
|
+
values: [arm, start, stop, pause, resume, cancel]
|
|
29
|
+
- name: command_status
|
|
30
|
+
type: enum
|
|
31
|
+
values: [issued, acknowledged, partially_executed, executed, failed]
|
|
32
|
+
default: issued
|
|
33
|
+
- name: requested_by_user_id
|
|
34
|
+
type: fk
|
|
35
|
+
isNullable: true
|
|
36
|
+
references:
|
|
37
|
+
table: user
|
|
38
|
+
column: id
|
|
39
|
+
onDelete: SET NULL
|
|
40
|
+
onUpdate: CASCADE
|
|
41
|
+
- name: issued_by_user_id
|
|
42
|
+
type: fk
|
|
43
|
+
isNullable: true
|
|
44
|
+
references:
|
|
45
|
+
table: user
|
|
46
|
+
column: id
|
|
47
|
+
onDelete: SET NULL
|
|
48
|
+
onUpdate: CASCADE
|
|
49
|
+
- name: command_uuid
|
|
50
|
+
type: varchar
|
|
51
|
+
length: 36
|
|
52
|
+
- name: idempotency_key
|
|
53
|
+
type: varchar
|
|
54
|
+
length: 120
|
|
55
|
+
isNullable: true
|
|
56
|
+
- name: payload_json
|
|
57
|
+
type: json
|
|
58
|
+
isNullable: true
|
|
59
|
+
- name: issued_at
|
|
60
|
+
type: datetime
|
|
61
|
+
- name: effective_at
|
|
62
|
+
type: datetime
|
|
63
|
+
isNullable: true
|
|
64
|
+
- type: created_at
|
|
65
|
+
- type: updated_at
|
|
66
|
+
|
|
67
|
+
indices:
|
|
68
|
+
- columns: [recording_session_id, issued_at]
|
|
69
|
+
- columns: [scene_take_id]
|
|
70
|
+
- columns: [command_uuid]
|
|
71
|
+
isUnique: true
|
|
72
72
|
- columns: [idempotency_key]
|