zou 0.20.82__py3-none-any.whl → 0.20.83__py3-none-any.whl

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.
@@ -19,20 +19,60 @@ class EditResource(Resource, ArgsMixin):
19
19
  @jwt_required()
20
20
  def get(self, edit_id):
21
21
  """
22
- Retrieve given edit.
22
+ Get edit
23
23
  ---
24
+ description: Retrieve detailed information about a specific edit.
24
25
  tags:
25
26
  - Edits
26
27
  parameters:
27
28
  - in: path
28
29
  name: edit_id
29
- required: True
30
+ required: true
30
31
  type: string
31
32
  format: uuid
32
33
  example: a24a6ea4-ce75-4665-a070-57453082c25
34
+ description: Unique identifier of the edit
33
35
  responses:
34
- 200:
35
- description: Given edit
36
+ 200:
37
+ description: Edit information successfully retrieved
38
+ content:
39
+ application/json:
40
+ schema:
41
+ type: object
42
+ properties:
43
+ id:
44
+ type: string
45
+ format: uuid
46
+ description: Edit unique identifier
47
+ example: a24a6ea4-ce75-4665-a070-57453082c25
48
+ name:
49
+ type: string
50
+ description: Edit name
51
+ example: "Opening Sequence"
52
+ description:
53
+ type: string
54
+ description: Edit description
55
+ example: "Main opening sequence edit"
56
+ project_id:
57
+ type: string
58
+ format: uuid
59
+ description: Project identifier
60
+ example: b35b7fb5-df86-5776-b181-68564193d36
61
+ episode_id:
62
+ type: string
63
+ format: uuid
64
+ description: Episode identifier
65
+ example: c46c8gc6-eg97-6887-c292-79675204e47
66
+ created_at:
67
+ type: string
68
+ format: date-time
69
+ description: Creation timestamp
70
+ example: "2023-01-01T12:00:00Z"
71
+ updated_at:
72
+ type: string
73
+ format: date-time
74
+ description: Last update timestamp
75
+ example: "2023-01-01T12:30:00Z"
36
76
  """
37
77
  edit = edits_service.get_full_edit(edit_id)
38
78
  if edit is None:
@@ -45,20 +85,28 @@ class EditResource(Resource, ArgsMixin):
45
85
  @jwt_required()
46
86
  def delete(self, edit_id):
47
87
  """
48
- Delete given edit.
88
+ Delete edit
49
89
  ---
90
+ description: Permanently remove an edit from the system. Only edit creators or project managers can delete edits.
50
91
  tags:
51
92
  - Edits
52
93
  parameters:
53
94
  - in: path
54
95
  name: edit_id
55
- required: True
96
+ required: true
56
97
  type: string
57
98
  format: uuid
58
99
  example: a24a6ea4-ce75-4665-a070-57453082c25
100
+ description: Unique identifier of the edit to delete
101
+ - in: query
102
+ name: force
103
+ type: boolean
104
+ required: false
105
+ description: Force deletion bypassing validation checks
106
+ example: false
59
107
  responses:
60
- 204:
61
- description: Given edit deleted
108
+ 204:
109
+ description: Edit successfully deleted
62
110
  """
63
111
  force = self.get_force()
64
112
  edit = edits_service.get_edit(edit_id)
@@ -74,31 +122,75 @@ class EditsResource(Resource):
74
122
  @jwt_required()
75
123
  def get(self):
76
124
  """
77
- Retrieve all edit entries.
125
+ Get edits
78
126
  ---
127
+ description: Retrieve all edit entries with filtering support. Filters can be specified in the query string.
79
128
  tags:
80
129
  - Edits
81
- description: Filters can be specified in the query string.
82
130
  parameters:
83
131
  - in: query
84
132
  name: project_id
85
- required: False
133
+ required: false
86
134
  type: string
87
135
  format: uuid
88
136
  example: a24a6ea4-ce75-4665-a070-57453082c25
137
+ description: Filter edits by specific project
89
138
  - in: query
90
139
  name: name
91
- required: False
140
+ required: false
92
141
  type: string
93
- example: Name of edit
142
+ example: "Opening Sequence"
143
+ description: Filter edits by name
94
144
  - in: query
95
145
  name: force
96
- required: False
146
+ required: false
97
147
  type: boolean
98
- default: False
148
+ default: false
149
+ description: Force parameter for additional filtering
150
+ example: false
99
151
  responses:
100
- 200:
101
- description: All edit entries
152
+ 200:
153
+ description: List of edits successfully retrieved
154
+ content:
155
+ application/json:
156
+ schema:
157
+ type: array
158
+ items:
159
+ type: object
160
+ properties:
161
+ id:
162
+ type: string
163
+ format: uuid
164
+ description: Edit unique identifier
165
+ example: a24a6ea4-ce75-4665-a070-57453082c25
166
+ name:
167
+ type: string
168
+ description: Edit name
169
+ example: "Opening Sequence"
170
+ description:
171
+ type: string
172
+ description: Edit description
173
+ example: "Main opening sequence edit"
174
+ project_id:
175
+ type: string
176
+ format: uuid
177
+ description: Project identifier
178
+ example: b35b7fb5-df86-5776-b181-68564193d36
179
+ episode_id:
180
+ type: string
181
+ format: uuid
182
+ description: Episode identifier
183
+ example: c46c8gc6-eg97-6887-c292-79675204e47
184
+ created_at:
185
+ type: string
186
+ format: date-time
187
+ description: Creation timestamp
188
+ example: "2023-01-01T12:00:00Z"
189
+ updated_at:
190
+ type: string
191
+ format: date-time
192
+ description: Last update timestamp
193
+ example: "2023-01-01T12:30:00Z"
102
194
  """
103
195
  criterions = query.get_query_criterions_from_request(request)
104
196
  user_service.check_project_access(criterions.get("project_id", None))
@@ -113,31 +205,75 @@ class AllEditsResource(Resource):
113
205
  @jwt_required()
114
206
  def get(self):
115
207
  """
116
- Retrieve all edit entries.
208
+ Get all edits
117
209
  ---
210
+ description: Retrieve all edit entries with filtering support. Filters can be specified in the query string.
118
211
  tags:
119
212
  - Edits
120
- description: Filters can be specified in the query string.
121
213
  parameters:
122
214
  - in: query
123
215
  name: project_id
124
- required: False
216
+ required: false
125
217
  type: string
126
218
  format: uuid
127
219
  example: a24a6ea4-ce75-4665-a070-57453082c25
220
+ description: Filter edits by specific project
128
221
  - in: query
129
222
  name: name
130
- required: False
223
+ required: false
131
224
  type: string
132
- example: Name of edit
225
+ example: "Opening Sequence"
226
+ description: Filter edits by name
133
227
  - in: query
134
228
  name: force
135
- required: False
229
+ required: false
136
230
  type: boolean
137
- default: False
231
+ default: false
232
+ description: Force parameter for additional filtering
233
+ example: false
138
234
  responses:
139
- 200:
140
- description: All edit entries
235
+ 200:
236
+ description: List of all edits successfully retrieved
237
+ content:
238
+ application/json:
239
+ schema:
240
+ type: array
241
+ items:
242
+ type: object
243
+ properties:
244
+ id:
245
+ type: string
246
+ format: uuid
247
+ description: Edit unique identifier
248
+ example: a24a6ea4-ce75-4665-a070-57453082c25
249
+ name:
250
+ type: string
251
+ description: Edit name
252
+ example: "Opening Sequence"
253
+ description:
254
+ type: string
255
+ description: Edit description
256
+ example: "Main opening sequence edit"
257
+ project_id:
258
+ type: string
259
+ format: uuid
260
+ description: Project identifier
261
+ example: b35b7fb5-df86-5776-b181-68564193d36
262
+ episode_id:
263
+ type: string
264
+ format: uuid
265
+ description: Episode identifier
266
+ example: c46c8gc6-eg97-6887-c292-79675204e47
267
+ created_at:
268
+ type: string
269
+ format: date-time
270
+ description: Creation timestamp
271
+ example: "2023-01-01T12:00:00Z"
272
+ updated_at:
273
+ type: string
274
+ format: date-time
275
+ description: Last update timestamp
276
+ example: "2023-01-01T12:30:00Z"
141
277
  """
142
278
  criterions = query.get_query_criterions_from_request(request)
143
279
  if permissions.has_vendor_permissions():
@@ -152,20 +288,50 @@ class EditTaskTypesResource(Resource):
152
288
  @jwt_required()
153
289
  def get(self, edit_id):
154
290
  """
155
- Retrieve all task types related to a given edit.
291
+ Get edit task types
156
292
  ---
293
+ description: Retrieve all task types that are related to a specific edit.
157
294
  tags:
158
295
  - Edits
159
296
  parameters:
160
297
  - in: path
161
298
  name: edit_id
162
- required: True
299
+ required: true
163
300
  type: string
164
301
  format: uuid
165
302
  example: a24a6ea4-ce75-4665-a070-57453082c25
303
+ description: Unique identifier of the edit
166
304
  responses:
167
- 200:
168
- description: All task types related to given edit
305
+ 200:
306
+ description: List of edit task types successfully retrieved
307
+ content:
308
+ application/json:
309
+ schema:
310
+ type: array
311
+ items:
312
+ type: object
313
+ properties:
314
+ id:
315
+ type: string
316
+ format: uuid
317
+ description: Task type unique identifier
318
+ example: b35b7fb5-df86-5776-b181-68564193d36
319
+ name:
320
+ type: string
321
+ description: Task type name
322
+ example: "Edit"
323
+ short_name:
324
+ type: string
325
+ description: Task type short name
326
+ example: "EDT"
327
+ color:
328
+ type: string
329
+ description: Task type color code
330
+ example: "#FF5733"
331
+ for_entity:
332
+ type: string
333
+ description: Entity type this task type is for
334
+ example: "Edit"
169
335
  """
170
336
  edit = edits_service.get_edit(edit_id)
171
337
  user_service.check_project_access(edit["project_id"])
@@ -177,20 +343,74 @@ class EditTasksResource(Resource, ArgsMixin):
177
343
  @jwt_required()
178
344
  def get(self, edit_id):
179
345
  """
180
- Retrieve all tasks related to a given edit.
346
+ Get edit tasks
181
347
  ---
348
+ description: Retrieve all tasks that are related to a specific edit.
182
349
  tags:
183
350
  - Edits
184
351
  parameters:
185
352
  - in: path
186
353
  name: edit_id
187
- required: True
354
+ required: true
188
355
  type: string
189
356
  format: uuid
190
357
  example: a24a6ea4-ce75-4665-a070-57453082c25
358
+ description: Unique identifier of the edit
359
+ - in: query
360
+ name: relations
361
+ type: boolean
362
+ required: false
363
+ description: Include related entity information
364
+ example: true
191
365
  responses:
192
- 200:
193
- description: All tasks related to given edit
366
+ 200:
367
+ description: List of edit tasks successfully retrieved
368
+ content:
369
+ application/json:
370
+ schema:
371
+ type: array
372
+ items:
373
+ type: object
374
+ properties:
375
+ id:
376
+ type: string
377
+ format: uuid
378
+ description: Task unique identifier
379
+ example: b35b7fb5-df86-5776-b181-68564193d36
380
+ name:
381
+ type: string
382
+ description: Task name
383
+ example: "Edit Task"
384
+ task_type_id:
385
+ type: string
386
+ format: uuid
387
+ description: Task type identifier
388
+ example: c46c8gc6-eg97-6887-c292-79675204e47
389
+ task_status_id:
390
+ type: string
391
+ format: uuid
392
+ description: Task status identifier
393
+ example: d57d9hd7-fh08-7998-d403-80786315f58
394
+ entity_id:
395
+ type: string
396
+ format: uuid
397
+ description: Entity identifier
398
+ example: e68e0ie8-gi19-8009-e514-91897426g69
399
+ assigned_to:
400
+ type: string
401
+ format: uuid
402
+ description: Assigned person identifier
403
+ example: f79f1jf9-hj20-9010-f625-02998537h80
404
+ created_at:
405
+ type: string
406
+ format: date-time
407
+ description: Creation timestamp
408
+ example: "2023-01-01T12:00:00Z"
409
+ updated_at:
410
+ type: string
411
+ format: date-time
412
+ description: Last update timestamp
413
+ example: "2023-01-01T12:30:00Z"
194
414
  """
195
415
  edit = edits_service.get_edit(edit_id)
196
416
  user_service.check_project_access(edit["project_id"])
@@ -203,20 +423,74 @@ class EpisodeEditTasksResource(Resource, ArgsMixin):
203
423
  @jwt_required()
204
424
  def get(self, episode_id):
205
425
  """
206
- Retrieve all tasks related to a given episode.
426
+ Get episode edit tasks
207
427
  ---
428
+ description: Retrieve all tasks that are related to a specific episode.
208
429
  tags:
209
430
  - Edits
210
431
  parameters:
211
432
  - in: path
212
433
  name: episode_id
213
- required: True
434
+ required: true
214
435
  type: string
215
436
  format: uuid
216
437
  example: a24a6ea4-ce75-4665-a070-57453082c25
438
+ description: Unique identifier of the episode
439
+ - in: query
440
+ name: relations
441
+ type: boolean
442
+ required: false
443
+ description: Include related entity information
444
+ example: true
217
445
  responses:
218
- 200:
219
- description: All tasks related to given episode
446
+ 200:
447
+ description: List of episode edit tasks successfully retrieved
448
+ content:
449
+ application/json:
450
+ schema:
451
+ type: array
452
+ items:
453
+ type: object
454
+ properties:
455
+ id:
456
+ type: string
457
+ format: uuid
458
+ description: Task unique identifier
459
+ example: b35b7fb5-df86-5776-b181-68564193d36
460
+ name:
461
+ type: string
462
+ description: Task name
463
+ example: "Episode Edit Task"
464
+ task_type_id:
465
+ type: string
466
+ format: uuid
467
+ description: Task type identifier
468
+ example: c46c8gc6-eg97-6887-c292-79675204e47
469
+ task_status_id:
470
+ type: string
471
+ format: uuid
472
+ description: Task status identifier
473
+ example: d57d9hd7-fh08-7998-d403-80786315f58
474
+ entity_id:
475
+ type: string
476
+ format: uuid
477
+ description: Entity identifier
478
+ example: e68e0ie8-gi19-8009-e514-91897426g69
479
+ assigned_to:
480
+ type: string
481
+ format: uuid
482
+ description: Assigned person identifier
483
+ example: f79f1jf9-hj20-9010-f625-02998537h80
484
+ created_at:
485
+ type: string
486
+ format: date-time
487
+ description: Creation timestamp
488
+ example: "2023-01-01T12:00:00Z"
489
+ updated_at:
490
+ type: string
491
+ format: date-time
492
+ description: Last update timestamp
493
+ example: "2023-01-01T12:30:00Z"
220
494
  """
221
495
  episode = edits_service.get_episode(episode_id)
222
496
  user_service.check_project_access(episode["project_id"])
@@ -233,20 +507,68 @@ class EpisodeEditsResource(Resource, ArgsMixin):
233
507
  @jwt_required()
234
508
  def get(self, episode_id):
235
509
  """
236
- Retrieve all edits related to a given episode.
510
+ Get episode edits
237
511
  ---
512
+ description: Retrieve all edits that are related to a specific episode.
238
513
  tags:
239
514
  - Edits
240
515
  parameters:
241
516
  - in: path
242
517
  name: episode_id
243
- required: True
518
+ required: true
244
519
  type: string
245
520
  format: uuid
246
521
  example: a24a6ea4-ce75-4665-a070-57453082c25
522
+ description: Unique identifier of the episode
523
+ - in: query
524
+ name: relations
525
+ type: boolean
526
+ required: false
527
+ description: Include related entity information
528
+ example: true
247
529
  responses:
248
- 200:
249
- description: All efits related to given episode
530
+ 200:
531
+ description: List of episode edits successfully retrieved
532
+ content:
533
+ application/json:
534
+ schema:
535
+ type: array
536
+ items:
537
+ type: object
538
+ properties:
539
+ id:
540
+ type: string
541
+ format: uuid
542
+ description: Edit unique identifier
543
+ example: a24a6ea4-ce75-4665-a070-57453082c25
544
+ name:
545
+ type: string
546
+ description: Edit name
547
+ example: "Episode Edit"
548
+ description:
549
+ type: string
550
+ description: Edit description
551
+ example: "Main episode edit"
552
+ project_id:
553
+ type: string
554
+ format: uuid
555
+ description: Project identifier
556
+ example: b35b7fb5-df86-5776-b181-68564193d36
557
+ episode_id:
558
+ type: string
559
+ format: uuid
560
+ description: Episode identifier
561
+ example: c46c8gc6-eg97-6887-c292-79675204e47
562
+ created_at:
563
+ type: string
564
+ format: date-time
565
+ description: Creation timestamp
566
+ example: "2023-01-01T12:00:00Z"
567
+ updated_at:
568
+ type: string
569
+ format: date-time
570
+ description: Last update timestamp
571
+ example: "2023-01-01T12:30:00Z"
250
572
  """
251
573
  episode = edits_service.get_episode(episode_id)
252
574
  user_service.check_project_access(episode["project_id"])
@@ -261,21 +583,60 @@ class EditPreviewsResource(Resource):
261
583
  @jwt_required()
262
584
  def get(self, edit_id):
263
585
  """
264
- Retrieve all previews related to a given edit.
586
+ Get edit previews
265
587
  ---
588
+ description: Retrieve all preview files related to a specific edit.
589
+ Returns them as a dictionary where keys are related task type IDs and
590
+ values are arrays of previews for that task type.
266
591
  tags:
267
592
  - Edits
268
- description: It sends them as a dict. Keys are related task type ids and values are arrays of preview for this task type.
269
593
  parameters:
270
594
  - in: path
271
595
  name: edit_id
272
- required: True
596
+ required: true
273
597
  type: string
274
598
  format: uuid
275
599
  example: a24a6ea4-ce75-4665-a070-57453082c25
600
+ description: Unique identifier of the edit
276
601
  responses:
277
- 200:
278
- description: All previews related to given edit
602
+ 200:
603
+ description: Edit previews successfully retrieved
604
+ content:
605
+ application/json:
606
+ schema:
607
+ type: object
608
+ additionalProperties:
609
+ type: array
610
+ items:
611
+ type: object
612
+ properties:
613
+ id:
614
+ type: string
615
+ format: uuid
616
+ description: Preview unique identifier
617
+ example: b35b7fb5-df86-5776-b181-68564193d36
618
+ name:
619
+ type: string
620
+ description: Preview name
621
+ example: "edit_preview_01"
622
+ original_name:
623
+ type: string
624
+ description: Original file name
625
+ example: "edit_sequence.mov"
626
+ file_path:
627
+ type: string
628
+ description: File path
629
+ example: "/previews/edit/edit_preview_01.mov"
630
+ task_type_id:
631
+ type: string
632
+ format: uuid
633
+ description: Task type identifier
634
+ example: c46c8gc6-eg97-6887-c292-79675204e47
635
+ created_at:
636
+ type: string
637
+ format: date-time
638
+ description: Creation timestamp
639
+ example: "2023-01-01T12:00:00Z"
279
640
  """
280
641
  edit = edits_service.get_edit(edit_id)
281
642
  user_service.check_project_access(edit["project_id"])
@@ -287,30 +648,98 @@ class EditsAndTasksResource(Resource):
287
648
  @jwt_required()
288
649
  def get(self):
289
650
  """
290
- Retrieve all edits, adds project name and all related tasks.
651
+ Get edits and tasks
291
652
  ---
653
+ description: Retrieve all edits with project name and all related tasks.
292
654
  tags:
293
655
  - Edits
294
656
  parameters:
295
657
  - in: query
296
658
  name: project_id
297
- required: False
659
+ required: false
298
660
  type: string
299
661
  format: uuid
300
662
  example: a24a6ea4-ce75-4665-a070-57453082c25
663
+ description: Filter edits by specific project
301
664
  - in: query
302
665
  name: name
303
- required: False
666
+ required: false
304
667
  type: string
305
- example: Name of edit
668
+ example: "Opening Sequence"
669
+ description: Filter edits by name
306
670
  - in: query
307
671
  name: force
308
- required: False
672
+ required: false
309
673
  type: boolean
310
- default: False
674
+ default: false
675
+ description: Force parameter for additional filtering
676
+ example: false
311
677
  responses:
312
- 200:
313
- description: All edits and all related tasks.
678
+ 200:
679
+ description: Edits with tasks successfully retrieved
680
+ content:
681
+ application/json:
682
+ schema:
683
+ type: array
684
+ items:
685
+ type: object
686
+ properties:
687
+ id:
688
+ type: string
689
+ format: uuid
690
+ description: Edit unique identifier
691
+ example: a24a6ea4-ce75-4665-a070-57453082c25
692
+ name:
693
+ type: string
694
+ description: Edit name
695
+ example: "Opening Sequence"
696
+ description:
697
+ type: string
698
+ description: Edit description
699
+ example: "Main opening sequence edit"
700
+ project_id:
701
+ type: string
702
+ format: uuid
703
+ description: Project identifier
704
+ example: b35b7fb5-df86-5776-b181-68564193d36
705
+ project_name:
706
+ type: string
707
+ description: Project name
708
+ example: "My Animation Project"
709
+ episode_id:
710
+ type: string
711
+ format: uuid
712
+ description: Episode identifier
713
+ example: c46c8gc6-eg97-6887-c292-79675204e47
714
+ tasks:
715
+ type: array
716
+ items:
717
+ type: object
718
+ properties:
719
+ id:
720
+ type: string
721
+ format: uuid
722
+ description: Task unique identifier
723
+ example: d57d9hd7-fh08-7998-d403-80786315f58
724
+ name:
725
+ type: string
726
+ description: Task name
727
+ example: "Edit Task"
728
+ task_type_id:
729
+ type: string
730
+ format: uuid
731
+ description: Task type identifier
732
+ example: e68e0ie8-gi19-8009-e514-91897426g69
733
+ created_at:
734
+ type: string
735
+ format: date-time
736
+ description: Creation timestamp
737
+ example: "2023-01-01T12:00:00Z"
738
+ updated_at:
739
+ type: string
740
+ format: date-time
741
+ description: Last update timestamp
742
+ example: "2023-01-01T12:30:00Z"
314
743
  """
315
744
  criterions = query.get_query_criterions_from_request(request)
316
745
  user_service.check_project_access(criterions.get("project_id", None))
@@ -329,20 +758,62 @@ class ProjectEditsResource(Resource, ArgsMixin):
329
758
  @jwt_required()
330
759
  def get(self, project_id):
331
760
  """
332
- Retrieve all edits related to a given project.
761
+ Get project edits
333
762
  ---
763
+ description: Retrieve all edits that are related to a specific project.
334
764
  tags:
335
765
  - Edits
336
766
  parameters:
337
767
  - in: path
338
768
  name: project_id
339
- required: True
769
+ required: true
340
770
  type: string
341
771
  format: uuid
342
772
  example: a24a6ea4-ce75-4665-a070-57453082c25
773
+ description: Unique identifier of the project
343
774
  responses:
344
- 200:
345
- description: All edits related to given project
775
+ 200:
776
+ description: List of project edits successfully retrieved
777
+ content:
778
+ application/json:
779
+ schema:
780
+ type: array
781
+ items:
782
+ type: object
783
+ properties:
784
+ id:
785
+ type: string
786
+ format: uuid
787
+ description: Edit unique identifier
788
+ example: a24a6ea4-ce75-4665-a070-57453082c25
789
+ name:
790
+ type: string
791
+ description: Edit name
792
+ example: "Opening Sequence"
793
+ description:
794
+ type: string
795
+ description: Edit description
796
+ example: "Main opening sequence edit"
797
+ project_id:
798
+ type: string
799
+ format: uuid
800
+ description: Project identifier
801
+ example: b35b7fb5-df86-5776-b181-68564193d36
802
+ episode_id:
803
+ type: string
804
+ format: uuid
805
+ description: Episode identifier
806
+ example: c46c8gc6-eg97-6887-c292-79675204e47
807
+ created_at:
808
+ type: string
809
+ format: date-time
810
+ description: Creation timestamp
811
+ example: "2023-01-01T12:00:00Z"
812
+ updated_at:
813
+ type: string
814
+ format: date-time
815
+ description: Last update timestamp
816
+ example: "2023-01-01T12:30:00Z"
346
817
  """
347
818
  projects_service.get_project(project_id)
348
819
  user_service.check_project_access(project_id)
@@ -353,34 +824,95 @@ class ProjectEditsResource(Resource, ArgsMixin):
353
824
  @jwt_required()
354
825
  def post(self, project_id):
355
826
  """
356
- Create an edit for given project.
827
+ Create edit
357
828
  ---
829
+ description: Create a new edit for a specific project with name, description, and optional episode association.
358
830
  tags:
359
831
  - Edits
360
832
  parameters:
361
833
  - in: path
362
834
  name: project_id
363
- required: True
364
- type: string
365
- format: uuid
366
- example: a24a6ea4-ce75-4665-a070-57453082c25
367
- - in: formData
368
- name: name
369
- required: True
370
- type: string
371
- example: Name of edit
372
- - in: formData
373
- name: description
374
- type: string
375
- example: Description of edit
376
- - in: formData
377
- name: episode_id
835
+ required: true
378
836
  type: string
379
837
  format: uuid
380
838
  example: a24a6ea4-ce75-4665-a070-57453082c25
839
+ description: Unique identifier of the project
840
+ requestBody:
841
+ required: true
842
+ content:
843
+ application/json:
844
+ schema:
845
+ type: object
846
+ required:
847
+ - name
848
+ properties:
849
+ name:
850
+ type: string
851
+ description: Edit name
852
+ example: "Opening Sequence"
853
+ description:
854
+ type: string
855
+ description: Edit description
856
+ example: "Main opening sequence edit"
857
+ data:
858
+ type: object
859
+ description: Additional edit data
860
+ example: {"duration": 120, "fps": 24}
861
+ episode_id:
862
+ type: string
863
+ format: uuid
864
+ description: Episode identifier (optional)
865
+ example: b35b7fb5-df86-5776-b181-68564193d36
381
866
  responses:
382
- 201:
383
- description: Edit created for given project
867
+ 201:
868
+ description: Edit successfully created
869
+ content:
870
+ application/json:
871
+ schema:
872
+ type: object
873
+ properties:
874
+ id:
875
+ type: string
876
+ format: uuid
877
+ description: Edit unique identifier
878
+ example: a24a6ea4-ce75-4665-a070-57453082c25
879
+ name:
880
+ type: string
881
+ description: Edit name
882
+ example: "Opening Sequence"
883
+ description:
884
+ type: string
885
+ description: Edit description
886
+ example: "Main opening sequence edit"
887
+ project_id:
888
+ type: string
889
+ format: uuid
890
+ description: Project identifier
891
+ example: b35b7fb5-df86-5776-b181-68564193d36
892
+ episode_id:
893
+ type: string
894
+ format: uuid
895
+ description: Episode identifier
896
+ example: c46c8gc6-eg97-6887-c292-79675204e47
897
+ data:
898
+ type: object
899
+ description: Additional edit data
900
+ example: {"duration": 120, "fps": 24}
901
+ created_by:
902
+ type: string
903
+ format: uuid
904
+ description: Creator person identifier
905
+ example: d57d9hd7-fh08-7998-d403-80786315f58
906
+ created_at:
907
+ type: string
908
+ format: date-time
909
+ description: Creation timestamp
910
+ example: "2023-01-01T12:00:00Z"
911
+ updated_at:
912
+ type: string
913
+ format: date-time
914
+ description: Last update timestamp
915
+ example: "2023-01-01T12:00:00Z"
384
916
  """
385
917
  (name, description, data, parent_id) = self.get_arguments()
386
918
  projects_service.get_project(project_id)
@@ -426,20 +958,58 @@ class EditVersionsResource(Resource):
426
958
  @jwt_required()
427
959
  def get(self, edit_id):
428
960
  """
429
- Retrieve data versions of given edit.
961
+ Get edit versions
430
962
  ---
963
+ description: Retrieve all data versions of a specific edit. This
964
+ includes historical versions and metadata about changes over time.
431
965
  tags:
432
966
  - Edits
433
967
  parameters:
434
968
  - in: path
435
969
  name: edit_id
436
- required: True
970
+ required: true
437
971
  type: string
438
972
  format: uuid
439
973
  example: a24a6ea4-ce75-4665-a070-57453082c25
974
+ description: Unique identifier of the edit
440
975
  responses:
441
- 200:
442
- description: Data versions of given edit
976
+ 200:
977
+ description: Edit versions successfully retrieved
978
+ content:
979
+ application/json:
980
+ schema:
981
+ type: array
982
+ items:
983
+ type: object
984
+ properties:
985
+ id:
986
+ type: string
987
+ format: uuid
988
+ description: Version unique identifier
989
+ example: b35b7fb5-df86-5776-b181-68564193d36
990
+ edit_id:
991
+ type: string
992
+ format: uuid
993
+ description: Edit identifier
994
+ example: a24a6ea4-ce75-4665-a070-57453082c25
995
+ version_number:
996
+ type: integer
997
+ description: Version number
998
+ example: 1
999
+ data:
1000
+ type: object
1001
+ description: Version data content
1002
+ example: {"duration": 120, "fps": 24, "changes": "Added transitions"}
1003
+ created_at:
1004
+ type: string
1005
+ format: date-time
1006
+ description: Creation timestamp
1007
+ example: "2023-01-01T12:00:00Z"
1008
+ created_by:
1009
+ type: string
1010
+ format: uuid
1011
+ description: Creator person identifier
1012
+ example: c46c8gc6-eg97-6887-c292-79675204e47
443
1013
  """
444
1014
  edit = edits_service.get_edit(edit_id)
445
1015
  user_service.check_project_access(edit["project_id"])