zou 0.20.82__py3-none-any.whl → 0.20.84__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.
Files changed (114) hide show
  1. zou/__init__.py +1 -1
  2. zou/app/blueprints/assets/resources.py +1060 -153
  3. zou/app/blueprints/auth/resources.py +368 -238
  4. zou/app/blueprints/breakdown/resources.py +584 -94
  5. zou/app/blueprints/chats/resources.py +176 -37
  6. zou/app/blueprints/comments/resources.py +409 -150
  7. zou/app/blueprints/concepts/resources.py +443 -63
  8. zou/app/blueprints/crud/asset_instance.py +272 -0
  9. zou/app/blueprints/crud/attachment_file.py +263 -0
  10. zou/app/blueprints/crud/base.py +176 -69
  11. zou/app/blueprints/crud/budget.py +278 -0
  12. zou/app/blueprints/crud/budget_entry.py +269 -0
  13. zou/app/blueprints/crud/chat.py +282 -0
  14. zou/app/blueprints/crud/chat_message.py +286 -0
  15. zou/app/blueprints/crud/comments.py +312 -1
  16. zou/app/blueprints/crud/custom_action.py +268 -0
  17. zou/app/blueprints/crud/day_off.py +298 -0
  18. zou/app/blueprints/crud/department.py +268 -0
  19. zou/app/blueprints/crud/entity.py +297 -3
  20. zou/app/blueprints/crud/entity_link.py +303 -0
  21. zou/app/blueprints/crud/entity_type.py +269 -0
  22. zou/app/blueprints/crud/event.py +197 -0
  23. zou/app/blueprints/crud/file_status.py +268 -0
  24. zou/app/blueprints/crud/hardware_item.py +268 -0
  25. zou/app/blueprints/crud/metadata_descriptor.py +312 -0
  26. zou/app/blueprints/crud/milestone.py +302 -1
  27. zou/app/blueprints/crud/news.py +285 -0
  28. zou/app/blueprints/crud/notification.py +287 -0
  29. zou/app/blueprints/crud/organisation.py +269 -0
  30. zou/app/blueprints/crud/output_file.py +34 -10
  31. zou/app/blueprints/crud/output_type.py +30 -10
  32. zou/app/blueprints/crud/person.py +407 -2
  33. zou/app/blueprints/crud/playlist.py +322 -4
  34. zou/app/blueprints/crud/plugin.py +269 -0
  35. zou/app/blueprints/crud/preview_background_file.py +272 -0
  36. zou/app/blueprints/crud/preview_file.py +280 -9
  37. zou/app/blueprints/crud/production_schedule_version.py +569 -0
  38. zou/app/blueprints/crud/project.py +440 -0
  39. zou/app/blueprints/crud/project_status.py +268 -0
  40. zou/app/blueprints/crud/salary_scale.py +185 -5
  41. zou/app/blueprints/crud/schedule_item.py +305 -0
  42. zou/app/blueprints/crud/search_filter.py +302 -0
  43. zou/app/blueprints/crud/search_filter_group.py +270 -0
  44. zou/app/blueprints/crud/software.py +30 -10
  45. zou/app/blueprints/crud/status_automation.py +296 -2
  46. zou/app/blueprints/crud/studio.py +268 -0
  47. zou/app/blueprints/crud/subscription.py +279 -0
  48. zou/app/blueprints/crud/task.py +325 -5
  49. zou/app/blueprints/crud/task_status.py +301 -0
  50. zou/app/blueprints/crud/task_type.py +283 -0
  51. zou/app/blueprints/crud/time_spent.py +327 -0
  52. zou/app/blueprints/crud/working_file.py +273 -10
  53. zou/app/blueprints/departments/resources.py +302 -68
  54. zou/app/blueprints/edits/resources.py +651 -81
  55. zou/app/blueprints/entities/resources.py +104 -39
  56. zou/app/blueprints/events/resources.py +96 -8
  57. zou/app/blueprints/export/csv/assets.py +15 -5
  58. zou/app/blueprints/export/csv/base.py +12 -3
  59. zou/app/blueprints/export/csv/casting.py +32 -5
  60. zou/app/blueprints/export/csv/edits.py +15 -5
  61. zou/app/blueprints/export/csv/persons.py +24 -0
  62. zou/app/blueprints/export/csv/playlists.py +16 -5
  63. zou/app/blueprints/export/csv/projects.py +23 -0
  64. zou/app/blueprints/export/csv/shots.py +15 -5
  65. zou/app/blueprints/export/csv/task_types.py +23 -0
  66. zou/app/blueprints/export/csv/tasks.py +24 -0
  67. zou/app/blueprints/export/csv/time_spents.py +24 -0
  68. zou/app/blueprints/files/resources.py +928 -377
  69. zou/app/blueprints/index/resources.py +49 -42
  70. zou/app/blueprints/news/resources.py +47 -27
  71. zou/app/blueprints/persons/resources.py +644 -271
  72. zou/app/blueprints/playlists/resources.py +154 -72
  73. zou/app/blueprints/previews/resources.py +473 -228
  74. zou/app/blueprints/projects/__init__.py +5 -0
  75. zou/app/blueprints/projects/resources.py +987 -420
  76. zou/app/blueprints/search/resources.py +44 -32
  77. zou/app/blueprints/shots/resources.py +1338 -88
  78. zou/app/blueprints/source/csv/assets.py +44 -6
  79. zou/app/blueprints/source/csv/casting.py +43 -6
  80. zou/app/blueprints/source/csv/edits.py +47 -9
  81. zou/app/blueprints/source/csv/persons.py +43 -4
  82. zou/app/blueprints/source/csv/shots.py +47 -6
  83. zou/app/blueprints/source/csv/task_type_estimations.py +95 -35
  84. zou/app/blueprints/source/kitsu.py +433 -11
  85. zou/app/blueprints/source/otio.py +215 -20
  86. zou/app/blueprints/source/shotgun/assets.py +146 -0
  87. zou/app/blueprints/source/shotgun/base.py +85 -14
  88. zou/app/blueprints/source/shotgun/episode.py +124 -0
  89. zou/app/blueprints/source/shotgun/import_errors.py +105 -14
  90. zou/app/blueprints/source/shotgun/notes.py +132 -0
  91. zou/app/blueprints/source/shotgun/person.py +163 -0
  92. zou/app/blueprints/source/shotgun/project.py +120 -0
  93. zou/app/blueprints/source/shotgun/scene.py +120 -0
  94. zou/app/blueprints/source/shotgun/sequence.py +134 -0
  95. zou/app/blueprints/source/shotgun/shot.py +166 -0
  96. zou/app/blueprints/source/shotgun/status.py +129 -0
  97. zou/app/blueprints/source/shotgun/steps.py +138 -0
  98. zou/app/blueprints/source/shotgun/tasks.py +199 -0
  99. zou/app/blueprints/source/shotgun/team.py +132 -0
  100. zou/app/blueprints/source/shotgun/versions.py +155 -0
  101. zou/app/blueprints/tasks/resources.py +1197 -308
  102. zou/app/blueprints/user/resources.py +1808 -215
  103. zou/app/models/metadata_descriptor.py +1 -0
  104. zou/app/services/persons_service.py +1 -1
  105. zou/app/services/projects_service.py +45 -1
  106. zou/app/services/time_spents_service.py +1 -1
  107. zou/app/swagger.py +100 -27
  108. zou/migrations/versions/a1b2c3d4e5f6_add_position_to_metadata_descriptor.py +32 -0
  109. {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/METADATA +18 -18
  110. {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/RECORD +114 -113
  111. {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/WHEEL +0 -0
  112. {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/entry_points.txt +0 -0
  113. {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/licenses/LICENSE +0 -0
  114. {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/top_level.txt +0 -0
@@ -18,20 +18,47 @@ class ChatResource(Resource):
18
18
  @jwt_required()
19
19
  def get(self, entity_id):
20
20
  """
21
- Get chat details.
21
+ Get chat details
22
22
  ---
23
+ description: Retrieve chat information and messages for a specific entity.
24
+ Returns chat metadata including participants and all associated messages.
23
25
  tags:
24
26
  - Chat
25
27
  parameters:
26
28
  - in: path
27
29
  name: entity_id
28
30
  description: ID of the entity related to the chat
29
- type: integer
31
+ type: string
32
+ format: uuid
30
33
  required: true
31
34
  example: a24a6ea4-ce75-4665-a070-57453082c25
32
35
  responses:
33
36
  200:
34
- description: Chat information
37
+ description: Chat 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: Chat unique identifier
47
+ entity_id:
48
+ type: string
49
+ format: uuid
50
+ description: Entity ID this chat is associated with
51
+ participants:
52
+ type: array
53
+ items:
54
+ type: string
55
+ format: uuid
56
+ description: List of participant user IDs
57
+ messages:
58
+ type: array
59
+ items:
60
+ type: object
61
+ description: Array of chat messages
35
62
  """
36
63
  entity = entities_service.get_entity(entity_id)
37
64
  user_service.check_project_access(entity["project_id"])
@@ -46,20 +73,50 @@ class ChatMessagesResource(Resource):
46
73
  @jwt_required()
47
74
  def get(self, entity_id):
48
75
  """
49
- Get chat messages for an entity.
76
+ Get chat messages
50
77
  ---
78
+ description: Retrieve all chat messages for a specific entity.
79
+ Returns a list of messages with sender information and timestamps.
51
80
  tags:
52
81
  - Chat
53
82
  parameters:
54
83
  - in: path
55
84
  name: entity_id
56
85
  description: ID of the entity related to the chat
57
- type: integer
86
+ type: string
87
+ format: uuid
58
88
  required: true
59
89
  example: a24a6ea4-ce75-4665-a070-57453082c25
60
90
  responses:
61
- 200:
62
- description: Chat messages
91
+ 200:
92
+ description: Chat messages successfully retrieved
93
+ content:
94
+ application/json:
95
+ schema:
96
+ type: array
97
+ items:
98
+ type: object
99
+ properties:
100
+ id:
101
+ type: string
102
+ format: uuid
103
+ description: Message unique identifier
104
+ message:
105
+ type: string
106
+ description: Message content
107
+ person_id:
108
+ type: string
109
+ format: uuid
110
+ description: ID of the message sender
111
+ created_at:
112
+ type: string
113
+ format: date-time
114
+ description: Message creation timestamp
115
+ attachments:
116
+ type: array
117
+ items:
118
+ type: object
119
+ description: Array of file attachments
63
120
  """
64
121
  entity = entities_service.get_entity(entity_id)
65
122
  user_service.check_project_access(entity["project_id"])
@@ -69,33 +126,78 @@ class ChatMessagesResource(Resource):
69
126
  @jwt_required()
70
127
  def post(self, entity_id):
71
128
  """
72
- Create a new chat message.
129
+ Create chat message
73
130
  ---
131
+ description: Create a new chat message for a specific entity.
132
+ Supports both JSON and form data with optional file attachments.
133
+ Only chat participants can send messages.
74
134
  tags:
75
135
  - Chat
76
136
  parameters:
77
137
  - in: path
78
138
  name: entity_id
79
139
  description: ID of the entity related to the chat
80
- type: integer
81
- required: true
82
- example: a24a6ea4-ce75-4665-a070-57453082c25
83
- - in: body
84
- name: message
85
- description: Message to send
86
140
  type: string
141
+ format: uuid
87
142
  required: true
88
- example: Hello, world!
89
- - in: formData
90
- name: files
91
- description: Files to attach
92
- type: file
93
- required: false
143
+ example: a24a6ea4-ce75-4665-a070-57453082c25
144
+ requestBody:
145
+ required: true
146
+ content:
147
+ application/json:
148
+ schema:
149
+ type: object
150
+ properties:
151
+ message:
152
+ type: string
153
+ description: Message content to send
154
+ example: Hello, world!
155
+ required:
156
+ - message
157
+ multipart/form-data:
158
+ schema:
159
+ type: object
160
+ properties:
161
+ message:
162
+ type: string
163
+ description: Message content to send
164
+ example: Hello, world!
165
+ files:
166
+ type: array
167
+ items:
168
+ type: string
169
+ format: binary
170
+ description: Files to attach to the message
171
+ required:
172
+ - message
94
173
  responses:
95
- 201:
96
- description: Chat message created
97
- 400:
98
- description: Not participant of the chat
174
+ 201:
175
+ description: Chat message successfully created
176
+ content:
177
+ application/json:
178
+ schema:
179
+ type: object
180
+ properties:
181
+ id:
182
+ type: string
183
+ format: uuid
184
+ description: Created message unique identifier
185
+ message:
186
+ type: string
187
+ description: Message content
188
+ person_id:
189
+ type: string
190
+ format: uuid
191
+ description: ID of the message sender
192
+ created_at:
193
+ type: string
194
+ format: date-time
195
+ description: Message creation timestamp
196
+ attachments:
197
+ type: array
198
+ items:
199
+ type: object
200
+ description: Array of attached files
99
201
  """
100
202
  entity = entities_service.get_entity(entity_id)
101
203
  user_service.check_project_access(entity["project_id"])
@@ -133,26 +235,59 @@ class ChatMessageResource(Resource):
133
235
  @jwt_required()
134
236
  def get(self, entity_id, chat_message_id):
135
237
  """
136
- Get chat message.
238
+ Get chat message
137
239
  ---
240
+ description: Retrieve a specific chat message by its ID.
241
+ Returns detailed message information including content and metadata.
138
242
  tags:
139
243
  - Chat
140
244
  parameters:
141
245
  - in: path
142
246
  name: entity_id
143
247
  description: ID of the entity related to the chat
144
- type: integer
248
+ type: string
249
+ format: uuid
145
250
  required: true
146
251
  example: a24a6ea4-ce75-4665-a070-57453082c25
147
252
  - in: path
148
253
  name: chat_message_id
149
254
  description: ID of the chat message
150
- type: integer
255
+ type: string
256
+ format: uuid
151
257
  required: true
152
- example: 1
258
+ example: a24a6ea4-ce75-4665-a070-57453082c25
153
259
  responses:
154
- 200:
155
- description: Chat message
260
+ 200:
261
+ description: Chat message successfully retrieved
262
+ content:
263
+ application/json:
264
+ schema:
265
+ type: object
266
+ properties:
267
+ id:
268
+ type: string
269
+ format: uuid
270
+ description: Message unique identifier
271
+ message:
272
+ type: string
273
+ description: Message content
274
+ person_id:
275
+ type: string
276
+ format: uuid
277
+ description: ID of the message sender
278
+ created_at:
279
+ type: string
280
+ format: date-time
281
+ description: Message creation timestamp
282
+ updated_at:
283
+ type: string
284
+ format: date-time
285
+ description: Message last update timestamp
286
+ attachments:
287
+ type: array
288
+ items:
289
+ type: object
290
+ description: Array of file attachments
156
291
  """
157
292
  entity = entities_service.get_entity(entity_id)
158
293
  user_service.check_project_access(entity["project_id"])
@@ -162,26 +297,30 @@ class ChatMessageResource(Resource):
162
297
  @jwt_required()
163
298
  def delete(self, entity_id, chat_message_id):
164
299
  """
165
- Delete chat message.
300
+ Delete chat message
166
301
  ---
302
+ description: Delete a specific chat message. Only the message author
303
+ or administrators can delete messages.
167
304
  tags:
168
305
  - Chat
169
306
  parameters:
170
307
  - in: path
171
308
  name: entity_id
172
309
  description: ID of the entity related to the chat
173
- type: integer
310
+ type: string
311
+ format: uuid
174
312
  required: true
175
313
  example: a24a6ea4-ce75-4665-a070-57453082c25
176
314
  - in: path
177
315
  name: chat_message_id
178
- description: ID of the chat message
179
- type: integer
316
+ description: ID of the chat message to delete
317
+ type: string
318
+ format: uuid
180
319
  required: true
181
- example: 1
320
+ example: a24a6ea4-ce75-4665-a070-57453082c25
182
321
  responses:
183
- 204:
184
- description: Empty response
322
+ 204:
323
+ description: Chat message successfully deleted
185
324
  """
186
325
  entity = entities_service.get_entity(entity_id)
187
326
  user_service.check_project_access(entity["project_id"])