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,55 @@ class ConceptResource(Resource, ArgsMixin):
19
19
  @jwt_required()
20
20
  def get(self, concept_id):
21
21
  """
22
- Retrieve given concept.
22
+ Get concept
23
23
  ---
24
+ description: Retrieve detailed information about a specific concept including metadata, project context, and related data.
24
25
  tags:
25
- - Concepts
26
+ - Concepts
26
27
  parameters:
27
28
  - in: path
28
29
  name: concept_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 concept
33
35
  responses:
34
- 200:
35
- description: Given concept
36
+ 200:
37
+ description: Concept 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: Concept unique identifier
47
+ example: a24a6ea4-ce75-4665-a070-57453082c25
48
+ name:
49
+ type: string
50
+ description: Concept name
51
+ example: "Character Design"
52
+ description:
53
+ type: string
54
+ description: Concept description
55
+ example: "Main character concept art"
56
+ project_id:
57
+ type: string
58
+ format: uuid
59
+ description: Project identifier
60
+ example: b35b7fb5-df86-5776-b181-68564193d36
61
+ created_at:
62
+ type: string
63
+ format: date-time
64
+ description: Creation timestamp
65
+ example: "2023-01-01T12:00:00Z"
66
+ updated_at:
67
+ type: string
68
+ format: date-time
69
+ description: Last update timestamp
70
+ example: "2023-01-01T12:30:00Z"
36
71
  """
37
72
  concept = concepts_service.get_full_concept(concept_id)
38
73
  if concept is None:
@@ -47,20 +82,28 @@ class ConceptResource(Resource, ArgsMixin):
47
82
  @jwt_required()
48
83
  def delete(self, concept_id):
49
84
  """
50
- Delete given concept.
85
+ Delete concept
51
86
  ---
87
+ description: Permanently remove a concept from the system. Only concept creators or project managers can delete concepts.
52
88
  tags:
53
- - Concepts
89
+ - Concepts
54
90
  parameters:
55
91
  - in: path
56
92
  name: concept_id
57
- required: True
93
+ required: true
58
94
  type: string
59
95
  format: uuid
60
96
  example: a24a6ea4-ce75-4665-a070-57453082c25
97
+ description: Unique identifier of the concept to delete
98
+ - in: query
99
+ name: force
100
+ type: boolean
101
+ required: false
102
+ description: Force deletion bypassing validation checks
103
+ example: false
61
104
  responses:
62
- 204:
63
- description: Given concept deleted
105
+ 204:
106
+ description: Concept successfully deleted
64
107
  """
65
108
  force = self.get_force()
66
109
  concept = concepts_service.get_concept(concept_id)
@@ -76,27 +119,69 @@ class AllConceptsResource(Resource):
76
119
  @jwt_required()
77
120
  def get(self):
78
121
  """
79
- Retrieve all concept entries.
122
+ Get all concepts
80
123
  ---
124
+ description: Retrieve all concept entries with filtering support. Filters can be specified in the query string to narrow down results by project or parent concept.
81
125
  tags:
82
- - Concepts
83
- description: Filters can be specified in the query string.
126
+ - Concepts
84
127
  parameters:
85
128
  - in: query
86
129
  name: project_id
87
- required: False
130
+ required: false
88
131
  type: string
89
132
  format: uuid
90
133
  example: a24a6ea4-ce75-4665-a070-57453082c25
134
+ description: Filter concepts by specific project
91
135
  - in: query
92
136
  name: parent_id
93
- required: False
137
+ required: false
94
138
  type: string
95
139
  format: uuid
96
- example: a24a6ea4-ce75-4665-a070-57453082c25
140
+ example: b35b7fb5-df86-5776-b181-68564193d36
141
+ description: Filter concepts by parent concept
97
142
  responses:
98
- 200:
99
- description: All concept entries
143
+ 200:
144
+ description: List of concepts successfully retrieved
145
+ content:
146
+ application/json:
147
+ schema:
148
+ type: array
149
+ items:
150
+ type: object
151
+ properties:
152
+ id:
153
+ type: string
154
+ format: uuid
155
+ description: Concept unique identifier
156
+ example: a24a6ea4-ce75-4665-a070-57453082c25
157
+ name:
158
+ type: string
159
+ description: Concept name
160
+ example: "Character Design"
161
+ description:
162
+ type: string
163
+ description: Concept description
164
+ example: "Main character concept art"
165
+ project_id:
166
+ type: string
167
+ format: uuid
168
+ description: Project identifier
169
+ example: b35b7fb5-df86-5776-b181-68564193d36
170
+ parent_id:
171
+ type: string
172
+ format: uuid
173
+ description: Parent concept identifier
174
+ example: c46c8gc6-eg97-6887-c292-79675204e47
175
+ created_at:
176
+ type: string
177
+ format: date-time
178
+ description: Creation timestamp
179
+ example: "2023-01-01T12:00:00Z"
180
+ updated_at:
181
+ type: string
182
+ format: date-time
183
+ description: Last update timestamp
184
+ example: "2023-01-01T12:30:00Z"
100
185
  """
101
186
  criterions = query.get_query_criterions_from_request(request)
102
187
  user_service.check_project_access(criterions.get("project_id", None))
@@ -112,20 +197,50 @@ class ConceptTaskTypesResource(Resource):
112
197
  @jwt_required()
113
198
  def get(self, concept_id):
114
199
  """
115
- Retrieve all task types related to a given concept.
200
+ Get concept task types
116
201
  ---
202
+ description: Retrieve all task types that are related to a specific concept.
117
203
  tags:
118
- - Concepts
204
+ - Concepts
119
205
  parameters:
120
206
  - in: path
121
207
  name: concept_id
122
- required: True
208
+ required: true
123
209
  type: string
124
210
  format: uuid
125
211
  example: a24a6ea4-ce75-4665-a070-57453082c25
212
+ description: Unique identifier of the concept
126
213
  responses:
127
- 200:
128
- description: All task types related to given concept
214
+ 200:
215
+ description: List of concept task types successfully retrieved
216
+ content:
217
+ application/json:
218
+ schema:
219
+ type: array
220
+ items:
221
+ type: object
222
+ properties:
223
+ id:
224
+ type: string
225
+ format: uuid
226
+ description: Task type unique identifier
227
+ example: b35b7fb5-df86-5776-b181-68564193d36
228
+ name:
229
+ type: string
230
+ description: Task type name
231
+ example: "Concept Art"
232
+ short_name:
233
+ type: string
234
+ description: Task type short name
235
+ example: "CON"
236
+ color:
237
+ type: string
238
+ description: Task type color code
239
+ example: "#FF5733"
240
+ for_entity:
241
+ type: string
242
+ description: Entity type this task type is for
243
+ example: "Concept"
129
244
  """
130
245
  concept = concepts_service.get_concept(concept_id)
131
246
  user_service.check_project_access(concept["project_id"])
@@ -139,20 +254,74 @@ class ConceptTasksResource(Resource, ArgsMixin):
139
254
  @jwt_required()
140
255
  def get(self, concept_id):
141
256
  """
142
- Retrieve all tasks related to a given concept.
257
+ Get concept tasks
143
258
  ---
259
+ description: Retrieve all tasks that are related to a specific concept.
144
260
  tags:
145
- - Concepts
261
+ - Concepts
146
262
  parameters:
147
263
  - in: path
148
264
  name: concept_id
149
- required: True
265
+ required: true
150
266
  type: string
151
267
  format: uuid
152
268
  example: a24a6ea4-ce75-4665-a070-57453082c25
269
+ description: Unique identifier of the concept
270
+ - in: query
271
+ name: relations
272
+ type: boolean
273
+ required: false
274
+ description: Include related entity information
275
+ example: true
153
276
  responses:
154
- 200:
155
- description: All tasks related to given concept
277
+ 200:
278
+ description: List of concept tasks successfully retrieved
279
+ content:
280
+ application/json:
281
+ schema:
282
+ type: array
283
+ items:
284
+ type: object
285
+ properties:
286
+ id:
287
+ type: string
288
+ format: uuid
289
+ description: Task unique identifier
290
+ example: b35b7fb5-df86-5776-b181-68564193d36
291
+ name:
292
+ type: string
293
+ description: Task name
294
+ example: "Character Design Task"
295
+ task_type_id:
296
+ type: string
297
+ format: uuid
298
+ description: Task type identifier
299
+ example: c46c8gc6-eg97-6887-c292-79675204e47
300
+ task_status_id:
301
+ type: string
302
+ format: uuid
303
+ description: Task status identifier
304
+ example: d57d9hd7-fh08-7998-d403-80786315f58
305
+ entity_id:
306
+ type: string
307
+ format: uuid
308
+ description: Entity identifier
309
+ example: e68e0ie8-gi19-8009-e514-91897426g69
310
+ assigned_to:
311
+ type: string
312
+ format: uuid
313
+ description: Assigned person identifier
314
+ example: f79f1jf9-hj20-9010-f625-02998537h80
315
+ created_at:
316
+ type: string
317
+ format: date-time
318
+ description: Creation timestamp
319
+ example: "2023-01-01T12:00:00Z"
320
+ updated_at:
321
+ type: string
322
+ format: date-time
323
+ description: Last update timestamp
324
+ example: "2023-01-01T12:30:00Z"
156
325
  """
157
326
  concept = concepts_service.get_concept(concept_id)
158
327
  user_service.check_project_access(concept["project_id"])
@@ -169,22 +338,58 @@ class ConceptPreviewsResource(Resource):
169
338
  @jwt_required()
170
339
  def get(self, concept_id):
171
340
  """
172
- Retrieve all previews related to a given concept.
341
+ Get concept previews
173
342
  ---
343
+ description: Retrieve all preview files related to a specific concept. Returns them as a dictionary where keys are related task type IDs and values are arrays of previews for that task type.
174
344
  tags:
175
- - Concepts
176
- description: It sends them as a dict.
177
- Keys are related task type ids and values are arrays of preview for this task type.
345
+ - Concepts
178
346
  parameters:
179
347
  - in: path
180
348
  name: concept_id
181
- required: True
349
+ required: true
182
350
  type: string
183
351
  format: uuid
184
352
  example: a24a6ea4-ce75-4665-a070-57453082c25
353
+ description: Unique identifier of the concept
185
354
  responses:
186
- 200:
187
- description: All previews related to given episode
355
+ 200:
356
+ description: Concept previews successfully retrieved
357
+ content:
358
+ application/json:
359
+ schema:
360
+ type: object
361
+ additionalProperties:
362
+ type: array
363
+ items:
364
+ type: object
365
+ properties:
366
+ id:
367
+ type: string
368
+ format: uuid
369
+ description: Preview unique identifier
370
+ example: b35b7fb5-df86-5776-b181-68564193d36
371
+ name:
372
+ type: string
373
+ description: Preview name
374
+ example: "concept_preview_01"
375
+ original_name:
376
+ type: string
377
+ description: Original file name
378
+ example: "character_concept.jpg"
379
+ file_path:
380
+ type: string
381
+ description: File path
382
+ example: "/previews/concept/concept_preview_01.jpg"
383
+ task_type_id:
384
+ type: string
385
+ format: uuid
386
+ description: Task type identifier
387
+ example: c46c8gc6-eg97-6887-c292-79675204e47
388
+ created_at:
389
+ type: string
390
+ format: date-time
391
+ description: Creation timestamp
392
+ example: "2023-01-01T12:00:00Z"
188
393
  """
189
394
  concept = concepts_service.get_concept(concept_id)
190
395
  user_service.check_project_access(concept["project_id"])
@@ -198,20 +403,84 @@ class ConceptsAndTasksResource(Resource):
198
403
  @jwt_required()
199
404
  def get(self):
200
405
  """
201
- Retrieve all concepts, adds project name and asset type name and all related tasks.
406
+ Get concepts and tasks
202
407
  ---
408
+ description: Retrieve all concepts and all related tasks included in the response.
203
409
  tags:
204
- - Concepts
410
+ - Concepts
205
411
  parameters:
206
412
  - in: query
207
413
  name: project_id
208
- required: False
414
+ required: false
209
415
  type: string
210
416
  format: uuid
211
417
  example: a24a6ea4-ce75-4665-a070-57453082c25
418
+ description: Filter concepts by specific project
212
419
  responses:
213
- 200:
214
- description: All concepts
420
+ 200:
421
+ description: Concepts with tasks successfully retrieved
422
+ content:
423
+ application/json:
424
+ schema:
425
+ type: array
426
+ items:
427
+ type: object
428
+ properties:
429
+ id:
430
+ type: string
431
+ format: uuid
432
+ description: Concept unique identifier
433
+ example: a24a6ea4-ce75-4665-a070-57453082c25
434
+ name:
435
+ type: string
436
+ description: Concept name
437
+ example: "Character Design"
438
+ description:
439
+ type: string
440
+ description: Concept description
441
+ example: "Main character concept art"
442
+ project_id:
443
+ type: string
444
+ format: uuid
445
+ description: Project identifier
446
+ example: b35b7fb5-df86-5776-b181-68564193d36
447
+ project_name:
448
+ type: string
449
+ description: Project name
450
+ example: "My Animation Project"
451
+ asset_type_name:
452
+ type: string
453
+ description: Asset type name
454
+ example: "Character"
455
+ tasks:
456
+ type: array
457
+ items:
458
+ type: object
459
+ properties:
460
+ id:
461
+ type: string
462
+ format: uuid
463
+ description: Task unique identifier
464
+ example: c46c8gc6-eg97-6887-c292-79675204e47
465
+ name:
466
+ type: string
467
+ description: Task name
468
+ example: "Character Design Task"
469
+ task_type_id:
470
+ type: string
471
+ format: uuid
472
+ description: Task type identifier
473
+ example: d57d9hd7-fh08-7998-d403-80786315f58
474
+ created_at:
475
+ type: string
476
+ format: date-time
477
+ description: Creation timestamp
478
+ example: "2023-01-01T12:00:00Z"
479
+ updated_at:
480
+ type: string
481
+ format: date-time
482
+ description: Last update timestamp
483
+ example: "2023-01-01T12:30:00Z"
215
484
  """
216
485
  criterions = query.get_query_criterions_from_request(request)
217
486
  user_service.check_project_access(criterions.get("project_id", None))
@@ -227,20 +496,57 @@ class ProjectConceptsResource(Resource, ArgsMixin):
227
496
  @jwt_required()
228
497
  def get(self, project_id):
229
498
  """
230
- Retrieve all concepts related to a given project.
499
+ Get project concepts
231
500
  ---
501
+ description: Retrieve all concepts that are related to a specific project.
232
502
  tags:
233
- - Concepts
503
+ - Concepts
234
504
  parameters:
235
505
  - in: path
236
506
  name: project_id
237
- required: True
507
+ required: true
238
508
  type: string
239
509
  format: uuid
240
510
  example: a24a6ea4-ce75-4665-a070-57453082c25
511
+ description: Unique identifier of the project
241
512
  responses:
242
- 200:
243
- description: All concepts related to given project
513
+ 200:
514
+ description: List of project concepts successfully retrieved
515
+ content:
516
+ application/json:
517
+ schema:
518
+ type: array
519
+ items:
520
+ type: object
521
+ properties:
522
+ id:
523
+ type: string
524
+ format: uuid
525
+ description: Concept unique identifier
526
+ example: a24a6ea4-ce75-4665-a070-57453082c25
527
+ name:
528
+ type: string
529
+ description: Concept name
530
+ example: "Character Design"
531
+ description:
532
+ type: string
533
+ description: Concept description
534
+ example: "Main character concept art"
535
+ project_id:
536
+ type: string
537
+ format: uuid
538
+ description: Project identifier
539
+ example: b35b7fb5-df86-5776-b181-68564193d36
540
+ created_at:
541
+ type: string
542
+ format: date-time
543
+ description: Creation timestamp
544
+ example: "2023-01-01T12:00:00Z"
545
+ updated_at:
546
+ type: string
547
+ format: date-time
548
+ description: Last update timestamp
549
+ example: "2023-01-01T12:30:00Z"
244
550
  """
245
551
  projects_service.get_project(project_id)
246
552
  user_service.check_project_access(project_id)
@@ -256,33 +562,92 @@ class ProjectConceptsResource(Resource, ArgsMixin):
256
562
  @jwt_required()
257
563
  def post(self, project_id):
258
564
  """
259
- Create a concept for given project.
565
+ Create concept
260
566
  ---
567
+ description: Create a new concept for a specific project with name, description, and optional entity concept links.
261
568
  tags:
262
- - Concepts
569
+ - Concepts
263
570
  parameters:
264
571
  - in: path
265
572
  name: project_id
266
- required: True
573
+ required: true
267
574
  type: string
268
575
  format: uuid
269
576
  example: a24a6ea4-ce75-4665-a070-57453082c25
270
- - in: formData
271
- name: name
272
- required: True
273
- type: string
274
- example: Name of concept
275
- - in: formData
276
- name: description
277
- type: string
278
- example: Description of concept
279
- - in: formData
280
- name: entity_concept_links
281
- type: list of UUIDs
282
- example: ["a24a6ea4-ce75-4665-a070-57453082c25"]
577
+ description: Unique identifier of the project
578
+ requestBody:
579
+ required: true
580
+ content:
581
+ application/json:
582
+ schema:
583
+ type: object
584
+ required:
585
+ - name
586
+ properties:
587
+ name:
588
+ type: string
589
+ description: Concept name
590
+ example: "Character Design"
591
+ description:
592
+ type: string
593
+ description: Concept description
594
+ example: "Main character concept art"
595
+ data:
596
+ type: object
597
+ description: Additional concept data
598
+ example: {"style": "realistic", "mood": "heroic"}
599
+ entity_concept_links:
600
+ type: array
601
+ items:
602
+ type: string
603
+ format: uuid
604
+ description: List of entity concept link identifiers
605
+ example: ["b35b7fb5-df86-5776-b181-68564193d36", "c46c8gc6-eg97-6887-c292-79675204e47"]
283
606
  responses:
284
- 201:
285
- description: Concept created for given project
607
+ 201:
608
+ description: Concept successfully created
609
+ content:
610
+ application/json:
611
+ schema:
612
+ type: object
613
+ properties:
614
+ id:
615
+ type: string
616
+ format: uuid
617
+ description: Concept unique identifier
618
+ example: a24a6ea4-ce75-4665-a070-57453082c25
619
+ name:
620
+ type: string
621
+ description: Concept name
622
+ example: "Character Design"
623
+ description:
624
+ type: string
625
+ description: Concept description
626
+ example: "Main character concept art"
627
+ project_id:
628
+ type: string
629
+ format: uuid
630
+ description: Project identifier
631
+ example: b35b7fb5-df86-5776-b181-68564193d36
632
+ data:
633
+ type: object
634
+ description: Additional concept data
635
+ example: {"style": "realistic", "mood": "heroic"}
636
+ created_by:
637
+ type: string
638
+ format: uuid
639
+ description: Creator person identifier
640
+ example: d57d9hd7-fh08-7998-d403-80786315f58
641
+ created_at:
642
+ type: string
643
+ format: date-time
644
+ description: Creation timestamp
645
+ example: "2023-01-01T12:00:00Z"
646
+ updated_at:
647
+ type: string
648
+ format: date-time
649
+ description: Last update timestamp
650
+ example: "2023-01-01T12:00:00Z"
286
651
  """
287
652
  (name, data, description, entity_concept_links) = self.get_arguments()
288
653
  projects_service.get_project(project_id)