@hubex/mcp 0.2.0

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 (92) hide show
  1. package/.env.example +54 -0
  2. package/CONNECTING.md +260 -0
  3. package/README.md +266 -0
  4. package/dist/auth.js +226 -0
  5. package/dist/config.js +120 -0
  6. package/dist/generated/manifest.js +3643 -0
  7. package/dist/guides/field-notes.json +27 -0
  8. package/dist/guides/loader.js +32 -0
  9. package/dist/guides/service-map.js +6 -0
  10. package/dist/http.js +93 -0
  11. package/dist/index/store.js +134 -0
  12. package/dist/index/types.js +1 -0
  13. package/dist/index.js +20 -0
  14. package/dist/paths.js +20 -0
  15. package/dist/pii/fields.js +100 -0
  16. package/dist/pii/mask.js +50 -0
  17. package/dist/pii/strategies.js +88 -0
  18. package/dist/schema/build-index.js +67 -0
  19. package/dist/schema/deref.js +87 -0
  20. package/dist/schema/describe.js +65 -0
  21. package/dist/server.js +62 -0
  22. package/dist/token-prompt.js +41 -0
  23. package/dist/tools/curated.js +151 -0
  24. package/dist/tools/discovery.js +187 -0
  25. package/dist/tools/guides.js +126 -0
  26. package/dist/tools/registry.js +37 -0
  27. package/dist/tools/request.js +170 -0
  28. package/dist/tools/types.js +1 -0
  29. package/docs/guides/assets.md +334 -0
  30. package/docs/guides/attributes.md +125 -0
  31. package/docs/guides/checklisttemplates.md +154 -0
  32. package/docs/guides/companies.md +57 -0
  33. package/docs/guides/dictionaries.md +64 -0
  34. package/docs/guides/lifecycle.md +263 -0
  35. package/docs/guides/materials.md +135 -0
  36. package/docs/guides/notifications.md +184 -0
  37. package/docs/guides/roles.md +125 -0
  38. package/docs/guides/sla.md +130 -0
  39. package/docs/guides/start.md +67 -0
  40. package/docs/guides/taskchecklists.md +149 -0
  41. package/docs/guides/taskcreate.md +260 -0
  42. package/docs/guides/taskedit.md +277 -0
  43. package/docs/guides/tasktypes.md +156 -0
  44. package/docs/guides/users.md +71 -0
  45. package/generated/index.dev.json +18776 -0
  46. package/generated/index.prod.json +18858 -0
  47. package/package.json +48 -0
  48. package/swagger/dev/ADM.json +27777 -0
  49. package/swagger/dev/AUTH.json +1739 -0
  50. package/swagger/dev/AUTHN.json +1250 -0
  51. package/swagger/dev/AUTHZ.json +1404 -0
  52. package/swagger/dev/CM.json +309 -0
  53. package/swagger/dev/COMMON.json +6543 -0
  54. package/swagger/dev/ES.json +28029 -0
  55. package/swagger/dev/EXPORT.json +4575 -0
  56. package/swagger/dev/IMPORT.json +1479 -0
  57. package/swagger/dev/LIC.json +224 -0
  58. package/swagger/dev/MSG.json +7883 -0
  59. package/swagger/dev/NEWS.json +348 -0
  60. package/swagger/dev/PA.json +5981 -0
  61. package/swagger/dev/PMP.json +3196 -0
  62. package/swagger/dev/PROXY.json +416 -0
  63. package/swagger/dev/REPORT.json +3921 -0
  64. package/swagger/dev/SC.json +3771 -0
  65. package/swagger/dev/SLA.json +2837 -0
  66. package/swagger/dev/TSTG.json +4981 -0
  67. package/swagger/dev/UI.json +4720 -0
  68. package/swagger/dev/WH.json +16796 -0
  69. package/swagger/dev/WORK.json +36024 -0
  70. package/swagger/dev/WSP.json +1612 -0
  71. package/swagger/prod/ADM.json +27777 -0
  72. package/swagger/prod/AUTH.json +1308 -0
  73. package/swagger/prod/AUTHN.json +2710 -0
  74. package/swagger/prod/AUTHZ.json +896 -0
  75. package/swagger/prod/CM.json +162 -0
  76. package/swagger/prod/COMMON.json +4910 -0
  77. package/swagger/prod/ES.json +28029 -0
  78. package/swagger/prod/EXPORT.json +3091 -0
  79. package/swagger/prod/LIC.json +123 -0
  80. package/swagger/prod/MSG.json +6239 -0
  81. package/swagger/prod/NEWS.json +295 -0
  82. package/swagger/prod/PA.json +5123 -0
  83. package/swagger/prod/PMP.json +2978 -0
  84. package/swagger/prod/PROXY.json +250 -0
  85. package/swagger/prod/REPORT.json +3729 -0
  86. package/swagger/prod/SC.json +3771 -0
  87. package/swagger/prod/SLA.json +2201 -0
  88. package/swagger/prod/TSTG.json +4220 -0
  89. package/swagger/prod/UI.json +3879 -0
  90. package/swagger/prod/WH.json +16730 -0
  91. package/swagger/prod/WORK.json +35994 -0
  92. package/swagger/prod/WSP.json +1468 -0
@@ -0,0 +1,3921 @@
1
+ {
2
+ "openapi": "3.0.1",
3
+ "info": {
4
+ "title": "API for REPORT in HubEx",
5
+ "description": "Service offers application programming interface for ....",
6
+ "contact": {
7
+ "name": "SmartService Backend Team",
8
+ "email": "fmbackend@melston.ru"
9
+ },
10
+ "version": "v1.0.0.0"
11
+ },
12
+ "servers": [
13
+ {
14
+ "url": "/REPORT"
15
+ }
16
+ ],
17
+ "paths": {
18
+ "/AssetMaintenance/planned": {
19
+ "get": {
20
+ "tags": [
21
+ "AssetMaintenance"
22
+ ],
23
+ "summary": "Получение запланированных заявок на обслуживание объектов",
24
+ "description": "## Пример запроса:\r\n`GET /AssetMaintenance/planned?validityFrom=2026-01-01&validityTill=2026-12-31`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"taskTemplateID\": 10,\r\n \"appointment\": \"2026-03-15T09:00:00Z\",\r\n \"normalWorkingHours\": 2,\r\n \"normalWorkingMinutes\": 120,\r\n \"workType\": { \"id\": 5, \"name\": \"ТО оборудования\" },\r\n \"asset\": { \"id\": 100, \"name\": \"Насосная станция №1\" }\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные не найдены.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `PreventiveAssetMaintenanceList`.",
25
+ "parameters": [
26
+ {
27
+ "name": "validFrom",
28
+ "in": "query",
29
+ "description": "Начало периода выбора данных (если не указано, то начало текущего года)",
30
+ "schema": {
31
+ "type": "string",
32
+ "format": "date-time"
33
+ }
34
+ },
35
+ {
36
+ "name": "validTill",
37
+ "in": "query",
38
+ "description": "Окончание периода выбора данных (если не указано, то конец текущего года)",
39
+ "schema": {
40
+ "type": "string",
41
+ "format": "date-time"
42
+ }
43
+ },
44
+ {
45
+ "name": "X-Application-ID",
46
+ "in": "header",
47
+ "description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
48
+ "schema": {
49
+ "enum": [
50
+ 1,
51
+ 2,
52
+ 3,
53
+ 4,
54
+ 5,
55
+ 6
56
+ ],
57
+ "type": "integer",
58
+ "format": "int32",
59
+ "default": 3,
60
+ "x-enumNames": [
61
+ "EngineerMobile",
62
+ "CustomerMobile",
63
+ "MainWeb",
64
+ "AdminWeb",
65
+ "Api",
66
+ "PlateWeb"
67
+ ]
68
+ }
69
+ }
70
+ ],
71
+ "responses": {
72
+ "200": {
73
+ "description": "Список запланированного обслуживания.",
74
+ "content": {
75
+ "text/plain": {
76
+ "schema": {
77
+ "type": "array",
78
+ "items": {
79
+ "$ref": "#/components/schemas/ResultsAssetMaintenancePlannedMaintenanceResult"
80
+ }
81
+ }
82
+ },
83
+ "application/json": {
84
+ "schema": {
85
+ "type": "array",
86
+ "items": {
87
+ "$ref": "#/components/schemas/ResultsAssetMaintenancePlannedMaintenanceResult"
88
+ }
89
+ }
90
+ },
91
+ "text/json": {
92
+ "schema": {
93
+ "type": "array",
94
+ "items": {
95
+ "$ref": "#/components/schemas/ResultsAssetMaintenancePlannedMaintenanceResult"
96
+ }
97
+ }
98
+ }
99
+ }
100
+ },
101
+ "204": {
102
+ "description": "Данные не найдены."
103
+ },
104
+ "401": {
105
+ "description": "Отсутствует или некорректен Bearer-токен."
106
+ },
107
+ "403": {
108
+ "description": "Недостаточно прав для просмотра отчета."
109
+ }
110
+ },
111
+ "security": [
112
+ {
113
+ "Bearer": [ ]
114
+ }
115
+ ]
116
+ }
117
+ },
118
+ "/CompletionTime": {
119
+ "get": {
120
+ "tags": [
121
+ "CompletionTime"
122
+ ],
123
+ "summary": "Получение отчета по времени выполнения заявок",
124
+ "description": "## Пример запроса:\r\n`GET /CompletionTime?groupByPeriod=Month&creationFrom=2026-01-01&creationTill=2026-12-31`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"period\": { \"from\": \"2026-01-01T00:00:00Z\", \"till\": \"2026-01-31T23:59:59Z\" },\r\n \"completionTime\": { \"totalMinutes\": 4800, \"averageMinutes\": 120 }\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные по заданным фильтрам не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 400 BadRequest: не указан или некорректен параметр groupByPeriod.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав TaskListCompletionTime.",
125
+ "parameters": [
126
+ {
127
+ "name": "groupByPeriod",
128
+ "in": "query",
129
+ "description": "Период группировки: Day, Week или Month.",
130
+ "schema": {
131
+ "$ref": "#/components/schemas/ApiEnumsDatePart"
132
+ }
133
+ },
134
+ {
135
+ "name": "Range",
136
+ "in": "header",
137
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
138
+ "schema": {
139
+ "type": "string"
140
+ }
141
+ },
142
+ {
143
+ "name": "offset",
144
+ "in": "query",
145
+ "description": "количество элементов, которое нобходимо пропустить",
146
+ "schema": {
147
+ "type": "string"
148
+ }
149
+ },
150
+ {
151
+ "name": "fetch",
152
+ "in": "query",
153
+ "description": "количество элементов, которое необходимо вернуть",
154
+ "schema": {
155
+ "type": "string"
156
+ }
157
+ },
158
+ {
159
+ "name": "groupByPeriod",
160
+ "in": "query",
161
+ "description": "Период группировки (Day, Week, Month)",
162
+ "required": true,
163
+ "schema": {
164
+ "enum": [
165
+ "Year",
166
+ "Quarter",
167
+ "Month",
168
+ "Day",
169
+ "Week",
170
+ "Second",
171
+ "Minute",
172
+ "Hour"
173
+ ],
174
+ "type": "string"
175
+ }
176
+ },
177
+ {
178
+ "name": "requestedBy",
179
+ "in": "query",
180
+ "description": "Идентификаторы пользователей, которые подали заявку, по которым будет отфильтрован результат",
181
+ "schema": {
182
+ "type": "integer",
183
+ "format": "int32"
184
+ }
185
+ },
186
+ {
187
+ "name": "assignedTo",
188
+ "in": "query",
189
+ "description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
190
+ "schema": {
191
+ "type": "integer",
192
+ "format": "int32"
193
+ }
194
+ },
195
+ {
196
+ "name": "approvalWith",
197
+ "in": "query",
198
+ "description": "Идентификаторы пользователей, от которых ожидается утверждение заявки, по которым будет отфильтрован результат",
199
+ "schema": {
200
+ "type": "integer",
201
+ "format": "int32"
202
+ }
203
+ },
204
+ {
205
+ "name": "escalatedTo",
206
+ "in": "query",
207
+ "description": "Идентификаторы пользователей, на которых была эскалирована заявка, по которым будет отфильтрован результат",
208
+ "schema": {
209
+ "type": "integer",
210
+ "format": "int32"
211
+ }
212
+ },
213
+ {
214
+ "name": "assetID",
215
+ "in": "query",
216
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
217
+ "schema": {
218
+ "type": "integer",
219
+ "format": "int32"
220
+ }
221
+ },
222
+ {
223
+ "name": "startWithAssetID",
224
+ "in": "query",
225
+ "description": "Идентификаторы объектов, по которым и по дочерним объектам которых будет отфильтрован результат",
226
+ "schema": {
227
+ "type": "integer",
228
+ "format": "int32"
229
+ }
230
+ },
231
+ {
232
+ "name": "taskID",
233
+ "in": "query",
234
+ "description": "Идентификаторы заявок, по которым будет отфильтрован результат",
235
+ "schema": {
236
+ "type": "integer",
237
+ "format": "int32"
238
+ }
239
+ },
240
+ {
241
+ "name": "taskNumber",
242
+ "in": "query",
243
+ "description": "Номера заявок, по которым будет отфильтрован результат",
244
+ "schema": {
245
+ "type": "string"
246
+ }
247
+ },
248
+ {
249
+ "name": "taskTypeID",
250
+ "in": "query",
251
+ "description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
252
+ "schema": {
253
+ "type": "integer",
254
+ "format": "int32"
255
+ }
256
+ },
257
+ {
258
+ "name": "workTypeID",
259
+ "in": "query",
260
+ "description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
261
+ "schema": {
262
+ "type": "integer",
263
+ "format": "int32"
264
+ }
265
+ },
266
+ {
267
+ "name": "taskStageID",
268
+ "in": "query",
269
+ "description": "Идентификаторы стадий заявок, на которых в текущий находятся заявки, по которым будет отфильтрован результат",
270
+ "schema": {
271
+ "type": "integer",
272
+ "format": "int32"
273
+ }
274
+ },
275
+ {
276
+ "name": "taskStatusID",
277
+ "in": "query",
278
+ "description": "Идентификаторы статусов заявок, по которым будет отфильтрован результат",
279
+ "schema": {
280
+ "type": "integer",
281
+ "format": "int32"
282
+ }
283
+ },
284
+ {
285
+ "name": "creationFrom",
286
+ "in": "query",
287
+ "description": "Начальный период фильтрации по дате создания заявки",
288
+ "schema": {
289
+ "type": "string",
290
+ "format": "date-time"
291
+ }
292
+ },
293
+ {
294
+ "name": "creationTill",
295
+ "in": "query",
296
+ "description": "Конечный период фильтрации по дате создания заявки",
297
+ "schema": {
298
+ "type": "string",
299
+ "format": "date-time"
300
+ }
301
+ },
302
+ {
303
+ "name": "assignationFrom",
304
+ "in": "query",
305
+ "description": "Начальный период фильтрации по дате назначения заявки",
306
+ "schema": {
307
+ "type": "string",
308
+ "format": "date-time"
309
+ }
310
+ },
311
+ {
312
+ "name": "assignationTill",
313
+ "in": "query",
314
+ "description": "Конечный период фильтрации по дате назначения заявки",
315
+ "schema": {
316
+ "type": "string",
317
+ "format": "date-time"
318
+ }
319
+ },
320
+ {
321
+ "name": "completionFrom",
322
+ "in": "query",
323
+ "description": "Начальный период фильтрации по дате выполнения заявки",
324
+ "schema": {
325
+ "type": "string",
326
+ "format": "date-time"
327
+ }
328
+ },
329
+ {
330
+ "name": "completionTill",
331
+ "in": "query",
332
+ "description": "Конечный период фильтрации по дате выполнения заявки",
333
+ "schema": {
334
+ "type": "string",
335
+ "format": "date-time"
336
+ }
337
+ },
338
+ {
339
+ "name": "closingFrom",
340
+ "in": "query",
341
+ "description": "Начальный период фильтрации по дате закрытия заявки",
342
+ "schema": {
343
+ "type": "string",
344
+ "format": "date-time"
345
+ }
346
+ },
347
+ {
348
+ "name": "closingTill",
349
+ "in": "query",
350
+ "description": "Конечный период фильтрации по дате закрытия заявки",
351
+ "schema": {
352
+ "type": "string",
353
+ "format": "date-time"
354
+ }
355
+ },
356
+ {
357
+ "name": "deadlineFrom",
358
+ "in": "query",
359
+ "description": "Начальный период фильтрации по сроку выполнения заявки",
360
+ "schema": {
361
+ "type": "string",
362
+ "format": "date-time"
363
+ }
364
+ },
365
+ {
366
+ "name": "deadlineTill",
367
+ "in": "query",
368
+ "description": "Конечный период фильтрации по сроку выполнения заявки",
369
+ "schema": {
370
+ "type": "string",
371
+ "format": "date-time"
372
+ }
373
+ },
374
+ {
375
+ "name": "isClosed",
376
+ "in": "query",
377
+ "description": "Если true, результат будет содержать только закрытые заявки, если false - только открытые",
378
+ "schema": {
379
+ "type": "boolean"
380
+ }
381
+ },
382
+ {
383
+ "name": "isFavourite",
384
+ "in": "query",
385
+ "description": "Если true, результат будет содержать только заявки из списка избранных для текущего пользователя, если false - только те, которые не вошли в список избранных текущего пользователя",
386
+ "schema": {
387
+ "type": "boolean"
388
+ }
389
+ },
390
+ {
391
+ "name": "isCompleted",
392
+ "in": "query",
393
+ "description": "Если true, результат будет содержать только выполненые заявки, если false - только не выполненные",
394
+ "schema": {
395
+ "type": "boolean"
396
+ }
397
+ },
398
+ {
399
+ "name": "isAssigned",
400
+ "in": "query",
401
+ "description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
402
+ "schema": {
403
+ "type": "boolean"
404
+ }
405
+ },
406
+ {
407
+ "name": "isDeleted",
408
+ "in": "query",
409
+ "description": "Если true, результат будет содержать только удаленные заявки, если false - только неудаленные",
410
+ "schema": {
411
+ "type": "boolean"
412
+ }
413
+ },
414
+ {
415
+ "name": "companyID",
416
+ "in": "query",
417
+ "description": "Идентификаторы компаний владельца оборудования, по заявкам которых будет отфильтрован результат",
418
+ "schema": {
419
+ "type": "integer",
420
+ "format": "int32"
421
+ }
422
+ },
423
+ {
424
+ "name": "contractID",
425
+ "in": "query",
426
+ "description": "Идентификаторы контракта, в рамках которого выполняется заявка",
427
+ "schema": {
428
+ "type": "integer",
429
+ "format": "int32"
430
+ }
431
+ },
432
+ {
433
+ "name": "criticalityID",
434
+ "in": "query",
435
+ "description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
436
+ "schema": {
437
+ "type": "integer",
438
+ "format": "int32"
439
+ }
440
+ },
441
+ {
442
+ "name": "X-Application-ID",
443
+ "in": "header",
444
+ "description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
445
+ "schema": {
446
+ "enum": [
447
+ 1,
448
+ 2,
449
+ 3,
450
+ 4,
451
+ 5,
452
+ 6
453
+ ],
454
+ "type": "integer",
455
+ "format": "int32",
456
+ "default": 3,
457
+ "x-enumNames": [
458
+ "EngineerMobile",
459
+ "CustomerMobile",
460
+ "MainWeb",
461
+ "AdminWeb",
462
+ "Api",
463
+ "PlateWeb"
464
+ ]
465
+ }
466
+ }
467
+ ],
468
+ "responses": {
469
+ "200": {
470
+ "description": "Отчет по времени выполнения.",
471
+ "content": {
472
+ "text/plain": {
473
+ "schema": {
474
+ "type": "array",
475
+ "items": {
476
+ "$ref": "#/components/schemas/ResultsCompletionTimeCompletionTimeResult"
477
+ }
478
+ }
479
+ },
480
+ "application/json": {
481
+ "schema": {
482
+ "type": "array",
483
+ "items": {
484
+ "$ref": "#/components/schemas/ResultsCompletionTimeCompletionTimeResult"
485
+ }
486
+ }
487
+ },
488
+ "text/json": {
489
+ "schema": {
490
+ "type": "array",
491
+ "items": {
492
+ "$ref": "#/components/schemas/ResultsCompletionTimeCompletionTimeResult"
493
+ }
494
+ }
495
+ }
496
+ }
497
+ },
498
+ "204": {
499
+ "description": "Данные не найдены."
500
+ },
501
+ "206": {
502
+ "description": "Частичный ответ при использовании Range-заголовка."
503
+ },
504
+ "401": {
505
+ "description": "Отсутствует или некорректен Bearer-токен."
506
+ },
507
+ "400": {
508
+ "description": "Некорректный параметр groupByPeriod."
509
+ },
510
+ "403": {
511
+ "description": "Недостаточно прав для просмотра отчета."
512
+ }
513
+ },
514
+ "security": [
515
+ {
516
+ "Bearer": [ ]
517
+ }
518
+ ]
519
+ }
520
+ },
521
+ "/PowerBICustomReports": {
522
+ "get": {
523
+ "tags": [
524
+ "PowerBICustomReports"
525
+ ],
526
+ "summary": "Получение списка кастомных отчетов PowerBI",
527
+ "description": "## Пример запроса:\r\n`GET /PowerBICustomReports`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"1\": {\r\n \"name\": \"Отчет по заявкам\",\r\n \"reportID\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\r\n \"reportType\": \"PowerBI\"\r\n }\r\n}\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: отчеты не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав `PowerBICustomReportList`.",
528
+ "parameters": [
529
+ {
530
+ "name": "Range",
531
+ "in": "header",
532
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
533
+ "schema": {
534
+ "type": "string"
535
+ }
536
+ },
537
+ {
538
+ "name": "offset",
539
+ "in": "query",
540
+ "description": "количество элементов, которое нобходимо пропустить",
541
+ "schema": {
542
+ "type": "string"
543
+ }
544
+ },
545
+ {
546
+ "name": "fetch",
547
+ "in": "query",
548
+ "description": "количество элементов, которое необходимо вернуть",
549
+ "schema": {
550
+ "type": "string"
551
+ }
552
+ },
553
+ {
554
+ "name": "X-Application-ID",
555
+ "in": "header",
556
+ "description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
557
+ "schema": {
558
+ "enum": [
559
+ 1,
560
+ 2,
561
+ 3,
562
+ 4,
563
+ 5,
564
+ 6
565
+ ],
566
+ "type": "integer",
567
+ "format": "int32",
568
+ "default": 3,
569
+ "x-enumNames": [
570
+ "EngineerMobile",
571
+ "CustomerMobile",
572
+ "MainWeb",
573
+ "AdminWeb",
574
+ "Api",
575
+ "PlateWeb"
576
+ ]
577
+ }
578
+ }
579
+ ],
580
+ "responses": {
581
+ "200": {
582
+ "description": "Полный список отчетов.",
583
+ "content": {
584
+ "text/plain": {
585
+ "schema": {
586
+ "type": "object",
587
+ "additionalProperties": {
588
+ "$ref": "#/components/schemas/ResultsPowerBICustomReportsCustomReportList"
589
+ }
590
+ }
591
+ },
592
+ "application/json": {
593
+ "schema": {
594
+ "type": "object",
595
+ "additionalProperties": {
596
+ "$ref": "#/components/schemas/ResultsPowerBICustomReportsCustomReportList"
597
+ }
598
+ }
599
+ },
600
+ "text/json": {
601
+ "schema": {
602
+ "type": "object",
603
+ "additionalProperties": {
604
+ "$ref": "#/components/schemas/ResultsPowerBICustomReportsCustomReportList"
605
+ }
606
+ }
607
+ }
608
+ }
609
+ },
610
+ "206": {
611
+ "description": "Частичный список отчетов при использовании Range-заголовка."
612
+ },
613
+ "204": {
614
+ "description": "Отчеты не найдены."
615
+ },
616
+ "401": {
617
+ "description": "Отсутствует или некорректен Bearer-токен."
618
+ },
619
+ "403": {
620
+ "description": "Недостаточно прав для просмотра отчетов."
621
+ }
622
+ },
623
+ "security": [
624
+ {
625
+ "Bearer": [ ]
626
+ }
627
+ ]
628
+ }
629
+ },
630
+ "/ReactionTime": {
631
+ "get": {
632
+ "tags": [
633
+ "ReactionTime"
634
+ ],
635
+ "summary": "Получение отчета по времени реакции на заявки",
636
+ "description": "## Пример запроса:\r\n`GET /ReactionTime?groupByPeriod=Week&creationFrom=2026-01-01&creationTill=2026-03-31`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"period\": { \"from\": \"2026-01-01T00:00:00Z\", \"till\": \"2026-01-07T23:59:59Z\" },\r\n \"reactionTime\": { \"totalMinutes\": 360, \"averageMinutes\": 45 }\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные по заданным фильтрам не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 400 BadRequest: не указан или некорректен параметр groupByPeriod.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав TaskListReactionTime.",
637
+ "parameters": [
638
+ {
639
+ "name": "groupByPeriod",
640
+ "in": "query",
641
+ "description": "Период группировки: Day, Week или Month.",
642
+ "schema": {
643
+ "$ref": "#/components/schemas/ApiEnumsDatePart"
644
+ }
645
+ },
646
+ {
647
+ "name": "Range",
648
+ "in": "header",
649
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
650
+ "schema": {
651
+ "type": "string"
652
+ }
653
+ },
654
+ {
655
+ "name": "offset",
656
+ "in": "query",
657
+ "description": "количество элементов, которое нобходимо пропустить",
658
+ "schema": {
659
+ "type": "string"
660
+ }
661
+ },
662
+ {
663
+ "name": "fetch",
664
+ "in": "query",
665
+ "description": "количество элементов, которое необходимо вернуть",
666
+ "schema": {
667
+ "type": "string"
668
+ }
669
+ },
670
+ {
671
+ "name": "groupByPeriod",
672
+ "in": "query",
673
+ "description": "Период группировки (Day, Week, Month)",
674
+ "required": true,
675
+ "schema": {
676
+ "enum": [
677
+ "Year",
678
+ "Quarter",
679
+ "Month",
680
+ "Day",
681
+ "Week",
682
+ "Second",
683
+ "Minute",
684
+ "Hour"
685
+ ],
686
+ "type": "string"
687
+ }
688
+ },
689
+ {
690
+ "name": "requestedBy",
691
+ "in": "query",
692
+ "description": "Идентификаторы пользователей, которые подали заявку, по которым будет отфильтрован результат",
693
+ "schema": {
694
+ "type": "integer",
695
+ "format": "int32"
696
+ }
697
+ },
698
+ {
699
+ "name": "assignedTo",
700
+ "in": "query",
701
+ "description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
702
+ "schema": {
703
+ "type": "integer",
704
+ "format": "int32"
705
+ }
706
+ },
707
+ {
708
+ "name": "approvalWith",
709
+ "in": "query",
710
+ "description": "Идентификаторы пользователей, от которых ожидается утверждение заявки, по которым будет отфильтрован результат",
711
+ "schema": {
712
+ "type": "integer",
713
+ "format": "int32"
714
+ }
715
+ },
716
+ {
717
+ "name": "escalatedTo",
718
+ "in": "query",
719
+ "description": "Идентификаторы пользователей, на которых была эскалирована заявка, по которым будет отфильтрован результат",
720
+ "schema": {
721
+ "type": "integer",
722
+ "format": "int32"
723
+ }
724
+ },
725
+ {
726
+ "name": "assetID",
727
+ "in": "query",
728
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
729
+ "schema": {
730
+ "type": "integer",
731
+ "format": "int32"
732
+ }
733
+ },
734
+ {
735
+ "name": "startWithAssetID",
736
+ "in": "query",
737
+ "description": "Идентификаторы объектов, по которым и по дочерним объектам которых будет отфильтрован результат",
738
+ "schema": {
739
+ "type": "integer",
740
+ "format": "int32"
741
+ }
742
+ },
743
+ {
744
+ "name": "taskID",
745
+ "in": "query",
746
+ "description": "Идентификаторы заявок, по которым будет отфильтрован результат",
747
+ "schema": {
748
+ "type": "integer",
749
+ "format": "int32"
750
+ }
751
+ },
752
+ {
753
+ "name": "taskNumber",
754
+ "in": "query",
755
+ "description": "Номера заявок, по которым будет отфильтрован результат",
756
+ "schema": {
757
+ "type": "string"
758
+ }
759
+ },
760
+ {
761
+ "name": "taskTypeID",
762
+ "in": "query",
763
+ "description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
764
+ "schema": {
765
+ "type": "integer",
766
+ "format": "int32"
767
+ }
768
+ },
769
+ {
770
+ "name": "workTypeID",
771
+ "in": "query",
772
+ "description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
773
+ "schema": {
774
+ "type": "integer",
775
+ "format": "int32"
776
+ }
777
+ },
778
+ {
779
+ "name": "taskStageID",
780
+ "in": "query",
781
+ "description": "Идентификаторы стадий заявок, на которых в текущий находятся заявки, по которым будет отфильтрован результат",
782
+ "schema": {
783
+ "type": "integer",
784
+ "format": "int32"
785
+ }
786
+ },
787
+ {
788
+ "name": "taskStatusID",
789
+ "in": "query",
790
+ "description": "Идентификаторы статусов заявок, по которым будет отфильтрован результат",
791
+ "schema": {
792
+ "type": "integer",
793
+ "format": "int32"
794
+ }
795
+ },
796
+ {
797
+ "name": "creationFrom",
798
+ "in": "query",
799
+ "description": "Начальный период фильтрации по дате создания заявки",
800
+ "schema": {
801
+ "type": "string",
802
+ "format": "date-time"
803
+ }
804
+ },
805
+ {
806
+ "name": "creationTill",
807
+ "in": "query",
808
+ "description": "Конечный период фильтрации по дате создания заявки",
809
+ "schema": {
810
+ "type": "string",
811
+ "format": "date-time"
812
+ }
813
+ },
814
+ {
815
+ "name": "assignationFrom",
816
+ "in": "query",
817
+ "description": "Начальный период фильтрации по дате назначения заявки",
818
+ "schema": {
819
+ "type": "string",
820
+ "format": "date-time"
821
+ }
822
+ },
823
+ {
824
+ "name": "assignationTill",
825
+ "in": "query",
826
+ "description": "Конечный период фильтрации по дате назначения заявки",
827
+ "schema": {
828
+ "type": "string",
829
+ "format": "date-time"
830
+ }
831
+ },
832
+ {
833
+ "name": "completionFrom",
834
+ "in": "query",
835
+ "description": "Начальный период фильтрации по дате выполнения заявки",
836
+ "schema": {
837
+ "type": "string",
838
+ "format": "date-time"
839
+ }
840
+ },
841
+ {
842
+ "name": "completionTill",
843
+ "in": "query",
844
+ "description": "Конечный период фильтрации по дате выполнения заявки",
845
+ "schema": {
846
+ "type": "string",
847
+ "format": "date-time"
848
+ }
849
+ },
850
+ {
851
+ "name": "closingFrom",
852
+ "in": "query",
853
+ "description": "Начальный период фильтрации по дате закрытия заявки",
854
+ "schema": {
855
+ "type": "string",
856
+ "format": "date-time"
857
+ }
858
+ },
859
+ {
860
+ "name": "closingTill",
861
+ "in": "query",
862
+ "description": "Конечный период фильтрации по дате закрытия заявки",
863
+ "schema": {
864
+ "type": "string",
865
+ "format": "date-time"
866
+ }
867
+ },
868
+ {
869
+ "name": "deadlineFrom",
870
+ "in": "query",
871
+ "description": "Начальный период фильтрации по сроку выполнения заявки",
872
+ "schema": {
873
+ "type": "string",
874
+ "format": "date-time"
875
+ }
876
+ },
877
+ {
878
+ "name": "deadlineTill",
879
+ "in": "query",
880
+ "description": "Конечный период фильтрации по сроку выполнения заявки",
881
+ "schema": {
882
+ "type": "string",
883
+ "format": "date-time"
884
+ }
885
+ },
886
+ {
887
+ "name": "isClosed",
888
+ "in": "query",
889
+ "description": "Если true, результат будет содержать только закрытые заявки, если false - только открытые",
890
+ "schema": {
891
+ "type": "boolean"
892
+ }
893
+ },
894
+ {
895
+ "name": "isFavourite",
896
+ "in": "query",
897
+ "description": "Если true, результат будет содержать только заявки из списка избранных для текущего пользователя, если false - только те, которые не вошли в список избранных текущего пользователя",
898
+ "schema": {
899
+ "type": "boolean"
900
+ }
901
+ },
902
+ {
903
+ "name": "isCompleted",
904
+ "in": "query",
905
+ "description": "Если true, результат будет содержать только выполненые заявки, если false - только не выполненные",
906
+ "schema": {
907
+ "type": "boolean"
908
+ }
909
+ },
910
+ {
911
+ "name": "isAssigned",
912
+ "in": "query",
913
+ "description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
914
+ "schema": {
915
+ "type": "boolean"
916
+ }
917
+ },
918
+ {
919
+ "name": "isDeleted",
920
+ "in": "query",
921
+ "description": "Если true, результат будет содержать только удаленные заявки, если false - только неудаленные",
922
+ "schema": {
923
+ "type": "boolean"
924
+ }
925
+ },
926
+ {
927
+ "name": "companyID",
928
+ "in": "query",
929
+ "description": "Идентификаторы компаний владельца оборудования, по заявкам которых будет отфильтрован результат",
930
+ "schema": {
931
+ "type": "integer",
932
+ "format": "int32"
933
+ }
934
+ },
935
+ {
936
+ "name": "contractID",
937
+ "in": "query",
938
+ "description": "Идентификаторы контракта, в рамках которого выполняется заявка",
939
+ "schema": {
940
+ "type": "integer",
941
+ "format": "int32"
942
+ }
943
+ },
944
+ {
945
+ "name": "criticalityID",
946
+ "in": "query",
947
+ "description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
948
+ "schema": {
949
+ "type": "integer",
950
+ "format": "int32"
951
+ }
952
+ },
953
+ {
954
+ "name": "X-Application-ID",
955
+ "in": "header",
956
+ "description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
957
+ "schema": {
958
+ "enum": [
959
+ 1,
960
+ 2,
961
+ 3,
962
+ 4,
963
+ 5,
964
+ 6
965
+ ],
966
+ "type": "integer",
967
+ "format": "int32",
968
+ "default": 3,
969
+ "x-enumNames": [
970
+ "EngineerMobile",
971
+ "CustomerMobile",
972
+ "MainWeb",
973
+ "AdminWeb",
974
+ "Api",
975
+ "PlateWeb"
976
+ ]
977
+ }
978
+ }
979
+ ],
980
+ "responses": {
981
+ "200": {
982
+ "description": "Отчет по времени реакции.",
983
+ "content": {
984
+ "text/plain": {
985
+ "schema": {
986
+ "type": "array",
987
+ "items": {
988
+ "$ref": "#/components/schemas/ResultsReactionTimeReactionTimeResult"
989
+ }
990
+ }
991
+ },
992
+ "application/json": {
993
+ "schema": {
994
+ "type": "array",
995
+ "items": {
996
+ "$ref": "#/components/schemas/ResultsReactionTimeReactionTimeResult"
997
+ }
998
+ }
999
+ },
1000
+ "text/json": {
1001
+ "schema": {
1002
+ "type": "array",
1003
+ "items": {
1004
+ "$ref": "#/components/schemas/ResultsReactionTimeReactionTimeResult"
1005
+ }
1006
+ }
1007
+ }
1008
+ }
1009
+ },
1010
+ "204": {
1011
+ "description": "Данные не найдены."
1012
+ },
1013
+ "206": {
1014
+ "description": "Частичный ответ при использовании Range-заголовка."
1015
+ },
1016
+ "401": {
1017
+ "description": "Отсутствует или некорректен Bearer-токен."
1018
+ },
1019
+ "400": {
1020
+ "description": "Некорректный параметр groupByPeriod."
1021
+ },
1022
+ "403": {
1023
+ "description": "Недостаточно прав для просмотра отчета."
1024
+ }
1025
+ },
1026
+ "security": [
1027
+ {
1028
+ "Bearer": [ ]
1029
+ }
1030
+ ]
1031
+ }
1032
+ },
1033
+ "/TasksByAssets": {
1034
+ "get": {
1035
+ "tags": [
1036
+ "TasksByAssets"
1037
+ ],
1038
+ "summary": "Получение отчета по заявкам, сгруппированным по оборудованию",
1039
+ "description": "## Пример запроса:\r\n`GET /TasksByAssets?searchText=ремонт&assetID=10&isClosed=false`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"asset\": { \"id\": 10, \"name\": \"Насосная станция\" },\r\n \"activeTasksCount\": 5,\r\n \"outdatedTasksCount\": 1,\r\n \"undefinedTasksCount\": 0,\r\n \"total\": 6\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные по заданным фильтрам не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав TaskListGroupByAssets.",
1040
+ "parameters": [
1041
+ {
1042
+ "name": "searchText",
1043
+ "in": "query",
1044
+ "description": "Текстовый поиск по вхождению строки от одного символа. Поиск осуществляется в описании и номере заявки, названии и описании объекта, названии вида работ. Доступен sql like-синтаксис.",
1045
+ "schema": {
1046
+ "type": "string"
1047
+ }
1048
+ },
1049
+ {
1050
+ "name": "Range",
1051
+ "in": "header",
1052
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
1053
+ "schema": {
1054
+ "type": "string"
1055
+ }
1056
+ },
1057
+ {
1058
+ "name": "offset",
1059
+ "in": "query",
1060
+ "description": "количество элементов, которое нобходимо пропустить",
1061
+ "schema": {
1062
+ "type": "string"
1063
+ }
1064
+ },
1065
+ {
1066
+ "name": "fetch",
1067
+ "in": "query",
1068
+ "description": "количество элементов, которое необходимо вернуть",
1069
+ "schema": {
1070
+ "type": "string"
1071
+ }
1072
+ },
1073
+ {
1074
+ "name": "searchText",
1075
+ "in": "query",
1076
+ "description": "Текстовый поиск по вхождению строки от одного символа",
1077
+ "schema": {
1078
+ "type": "string"
1079
+ }
1080
+ },
1081
+ {
1082
+ "name": "requestedBy",
1083
+ "in": "query",
1084
+ "description": "Идентификаторы пользователей, которые подали заявку, по которым будет отфильтрован результат",
1085
+ "schema": {
1086
+ "type": "integer",
1087
+ "format": "int32"
1088
+ }
1089
+ },
1090
+ {
1091
+ "name": "assignedTo",
1092
+ "in": "query",
1093
+ "description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
1094
+ "schema": {
1095
+ "type": "integer",
1096
+ "format": "int32"
1097
+ }
1098
+ },
1099
+ {
1100
+ "name": "approvalWith",
1101
+ "in": "query",
1102
+ "description": "Идентификаторы пользователей, от которых ожидается утверждение заявки, по которым будет отфильтрован результат",
1103
+ "schema": {
1104
+ "type": "integer",
1105
+ "format": "int32"
1106
+ }
1107
+ },
1108
+ {
1109
+ "name": "escalatedTo",
1110
+ "in": "query",
1111
+ "description": "Идентификаторы пользователей, на которых была эскалирована заявка, по которым будет отфильтрован результат",
1112
+ "schema": {
1113
+ "type": "integer",
1114
+ "format": "int32"
1115
+ }
1116
+ },
1117
+ {
1118
+ "name": "assetID",
1119
+ "in": "query",
1120
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
1121
+ "schema": {
1122
+ "type": "integer",
1123
+ "format": "int32"
1124
+ }
1125
+ },
1126
+ {
1127
+ "name": "startWithAssetID",
1128
+ "in": "query",
1129
+ "description": "Идентификаторы объектов, по которым и по дочерним объектам которых будет отфильтрован результат",
1130
+ "schema": {
1131
+ "type": "integer",
1132
+ "format": "int32"
1133
+ }
1134
+ },
1135
+ {
1136
+ "name": "taskID",
1137
+ "in": "query",
1138
+ "description": "Идентификаторы заявок, по которым будет отфильтрован результат",
1139
+ "schema": {
1140
+ "type": "integer",
1141
+ "format": "int32"
1142
+ }
1143
+ },
1144
+ {
1145
+ "name": "taskNumber",
1146
+ "in": "query",
1147
+ "description": "Номера заявок, по которым будет отфильтрован результат",
1148
+ "schema": {
1149
+ "type": "string"
1150
+ }
1151
+ },
1152
+ {
1153
+ "name": "taskTypeID",
1154
+ "in": "query",
1155
+ "description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
1156
+ "schema": {
1157
+ "type": "integer",
1158
+ "format": "int32"
1159
+ }
1160
+ },
1161
+ {
1162
+ "name": "workTypeID",
1163
+ "in": "query",
1164
+ "description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
1165
+ "schema": {
1166
+ "type": "integer",
1167
+ "format": "int32"
1168
+ }
1169
+ },
1170
+ {
1171
+ "name": "taskStageID",
1172
+ "in": "query",
1173
+ "description": "Идентификаторы стадий заявок, на которых в текущий находятся заявки, по которым будет отфильтрован результат",
1174
+ "schema": {
1175
+ "type": "integer",
1176
+ "format": "int32"
1177
+ }
1178
+ },
1179
+ {
1180
+ "name": "taskStatusID",
1181
+ "in": "query",
1182
+ "description": "Идентификаторы статусов заявок, по которым будет отфильтрован результат",
1183
+ "schema": {
1184
+ "type": "integer",
1185
+ "format": "int32"
1186
+ }
1187
+ },
1188
+ {
1189
+ "name": "creationFrom",
1190
+ "in": "query",
1191
+ "description": "Начальный период фильтрации по дате создания заявки",
1192
+ "schema": {
1193
+ "type": "string",
1194
+ "format": "date-time"
1195
+ }
1196
+ },
1197
+ {
1198
+ "name": "creationTill",
1199
+ "in": "query",
1200
+ "description": "Конечный период фильтрации по дате создания заявки",
1201
+ "schema": {
1202
+ "type": "string",
1203
+ "format": "date-time"
1204
+ }
1205
+ },
1206
+ {
1207
+ "name": "assignationFrom",
1208
+ "in": "query",
1209
+ "description": "Начальный период фильтрации по дате назначения заявки",
1210
+ "schema": {
1211
+ "type": "string",
1212
+ "format": "date-time"
1213
+ }
1214
+ },
1215
+ {
1216
+ "name": "assignationTill",
1217
+ "in": "query",
1218
+ "description": "Конечный период фильтрации по дате назначения заявки",
1219
+ "schema": {
1220
+ "type": "string",
1221
+ "format": "date-time"
1222
+ }
1223
+ },
1224
+ {
1225
+ "name": "completionFrom",
1226
+ "in": "query",
1227
+ "description": "Начальный период фильтрации по дате выполнения заявки",
1228
+ "schema": {
1229
+ "type": "string",
1230
+ "format": "date-time"
1231
+ }
1232
+ },
1233
+ {
1234
+ "name": "completionTill",
1235
+ "in": "query",
1236
+ "description": "Конечный период фильтрации по дате выполнения заявки",
1237
+ "schema": {
1238
+ "type": "string",
1239
+ "format": "date-time"
1240
+ }
1241
+ },
1242
+ {
1243
+ "name": "closingFrom",
1244
+ "in": "query",
1245
+ "description": "Начальный период фильтрации по дате закрытия заявки",
1246
+ "schema": {
1247
+ "type": "string",
1248
+ "format": "date-time"
1249
+ }
1250
+ },
1251
+ {
1252
+ "name": "closingTill",
1253
+ "in": "query",
1254
+ "description": "Конечный период фильтрации по дате закрытия заявки",
1255
+ "schema": {
1256
+ "type": "string",
1257
+ "format": "date-time"
1258
+ }
1259
+ },
1260
+ {
1261
+ "name": "deadlineFrom",
1262
+ "in": "query",
1263
+ "description": "Начальный период фильтрации по сроку выполнения заявки",
1264
+ "schema": {
1265
+ "type": "string",
1266
+ "format": "date-time"
1267
+ }
1268
+ },
1269
+ {
1270
+ "name": "deadlineTill",
1271
+ "in": "query",
1272
+ "description": "Конечный период фильтрации по сроку выполнения заявки",
1273
+ "schema": {
1274
+ "type": "string",
1275
+ "format": "date-time"
1276
+ }
1277
+ },
1278
+ {
1279
+ "name": "isClosed",
1280
+ "in": "query",
1281
+ "description": "Если true, результат будет содержать только закрытые заявки, если false - только открытые",
1282
+ "schema": {
1283
+ "type": "boolean"
1284
+ }
1285
+ },
1286
+ {
1287
+ "name": "isFavourite",
1288
+ "in": "query",
1289
+ "description": "Если true, результат будет содержать только заявки из списка избранных для текущего пользователя, если false - только те, которые не вошли в список избранных текущего пользователя",
1290
+ "schema": {
1291
+ "type": "boolean"
1292
+ }
1293
+ },
1294
+ {
1295
+ "name": "isCompleted",
1296
+ "in": "query",
1297
+ "description": "Если true, результат будет содержать только выполненые заявки, если false - только не выполненные",
1298
+ "schema": {
1299
+ "type": "boolean"
1300
+ }
1301
+ },
1302
+ {
1303
+ "name": "isAssigned",
1304
+ "in": "query",
1305
+ "description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
1306
+ "schema": {
1307
+ "type": "boolean"
1308
+ }
1309
+ },
1310
+ {
1311
+ "name": "isDeleted",
1312
+ "in": "query",
1313
+ "description": "Если true, результат будет содержать только удаленные заявки, если false - только неудаленные",
1314
+ "schema": {
1315
+ "type": "boolean"
1316
+ }
1317
+ },
1318
+ {
1319
+ "name": "companyID",
1320
+ "in": "query",
1321
+ "description": "Идентификаторы компаний владельца оборудования, по заявкам которых будет отфильтрован результат",
1322
+ "schema": {
1323
+ "type": "integer",
1324
+ "format": "int32"
1325
+ }
1326
+ },
1327
+ {
1328
+ "name": "contractID",
1329
+ "in": "query",
1330
+ "description": "Идентификаторы контракта, в рамках которого выполняется заявка",
1331
+ "schema": {
1332
+ "type": "integer",
1333
+ "format": "int32"
1334
+ }
1335
+ },
1336
+ {
1337
+ "name": "criticalityID",
1338
+ "in": "query",
1339
+ "description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
1340
+ "schema": {
1341
+ "type": "integer",
1342
+ "format": "int32"
1343
+ }
1344
+ },
1345
+ {
1346
+ "name": "X-Application-ID",
1347
+ "in": "header",
1348
+ "description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
1349
+ "schema": {
1350
+ "enum": [
1351
+ 1,
1352
+ 2,
1353
+ 3,
1354
+ 4,
1355
+ 5,
1356
+ 6
1357
+ ],
1358
+ "type": "integer",
1359
+ "format": "int32",
1360
+ "default": 3,
1361
+ "x-enumNames": [
1362
+ "EngineerMobile",
1363
+ "CustomerMobile",
1364
+ "MainWeb",
1365
+ "AdminWeb",
1366
+ "Api",
1367
+ "PlateWeb"
1368
+ ]
1369
+ }
1370
+ }
1371
+ ],
1372
+ "responses": {
1373
+ "200": {
1374
+ "description": "Отчет по заявкам.",
1375
+ "content": {
1376
+ "text/plain": {
1377
+ "schema": {
1378
+ "type": "array",
1379
+ "items": {
1380
+ "$ref": "#/components/schemas/ResultsTaskListGroupByAssetsTasksListGroupByAssetsResult"
1381
+ }
1382
+ }
1383
+ },
1384
+ "application/json": {
1385
+ "schema": {
1386
+ "type": "array",
1387
+ "items": {
1388
+ "$ref": "#/components/schemas/ResultsTaskListGroupByAssetsTasksListGroupByAssetsResult"
1389
+ }
1390
+ }
1391
+ },
1392
+ "text/json": {
1393
+ "schema": {
1394
+ "type": "array",
1395
+ "items": {
1396
+ "$ref": "#/components/schemas/ResultsTaskListGroupByAssetsTasksListGroupByAssetsResult"
1397
+ }
1398
+ }
1399
+ }
1400
+ }
1401
+ },
1402
+ "204": {
1403
+ "description": "Данные не найдены."
1404
+ },
1405
+ "206": {
1406
+ "description": "Частичный ответ при использовании Range-заголовка."
1407
+ },
1408
+ "401": {
1409
+ "description": "Отсутствует или некорректен Bearer-токен."
1410
+ },
1411
+ "403": {
1412
+ "description": "Недостаточно прав для просмотра отчета."
1413
+ }
1414
+ },
1415
+ "security": [
1416
+ {
1417
+ "Bearer": [ ]
1418
+ }
1419
+ ]
1420
+ }
1421
+ },
1422
+ "/TasksByAssignees": {
1423
+ "get": {
1424
+ "tags": [
1425
+ "TasksByAssignees"
1426
+ ],
1427
+ "summary": "Получение отчета по заявкам, сгруппированным по исполнителям",
1428
+ "description": "## Пример запроса:\r\n`GET /TasksByAssignees?searchText=12345&assignedTo=15`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"assignee\": { \"id\": 15, \"lastName\": \"Иванов\", \"firstName\": \"Иван\" },\r\n \"activeTasksCount\": 3,\r\n \"outdatedTasksCount\": 0,\r\n \"undefinedTasksCount\": 0,\r\n \"total\": 3\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные по заданным фильтрам не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав TaskListGroupByAssignees.",
1429
+ "parameters": [
1430
+ {
1431
+ "name": "searchText",
1432
+ "in": "query",
1433
+ "description": "Текстовый поиск по вхождению строки от одного символа. Поиск осуществляется в описании и номере заявки, названии и описании объекта, названии вида работ. Доступен sql like-синтаксис.",
1434
+ "schema": {
1435
+ "type": "string"
1436
+ }
1437
+ },
1438
+ {
1439
+ "name": "Range",
1440
+ "in": "header",
1441
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
1442
+ "schema": {
1443
+ "type": "string"
1444
+ }
1445
+ },
1446
+ {
1447
+ "name": "offset",
1448
+ "in": "query",
1449
+ "description": "количество элементов, которое нобходимо пропустить",
1450
+ "schema": {
1451
+ "type": "string"
1452
+ }
1453
+ },
1454
+ {
1455
+ "name": "fetch",
1456
+ "in": "query",
1457
+ "description": "количество элементов, которое необходимо вернуть",
1458
+ "schema": {
1459
+ "type": "string"
1460
+ }
1461
+ },
1462
+ {
1463
+ "name": "searchText",
1464
+ "in": "query",
1465
+ "description": "Текстовый поиск по вхождению строки от одного символа",
1466
+ "schema": {
1467
+ "type": "string"
1468
+ }
1469
+ },
1470
+ {
1471
+ "name": "requestedBy",
1472
+ "in": "query",
1473
+ "description": "Идентификаторы пользователей, которые подали заявку, по которым будет отфильтрован результат",
1474
+ "schema": {
1475
+ "type": "integer",
1476
+ "format": "int32"
1477
+ }
1478
+ },
1479
+ {
1480
+ "name": "assignedTo",
1481
+ "in": "query",
1482
+ "description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
1483
+ "schema": {
1484
+ "type": "integer",
1485
+ "format": "int32"
1486
+ }
1487
+ },
1488
+ {
1489
+ "name": "approvalWith",
1490
+ "in": "query",
1491
+ "description": "Идентификаторы пользователей, от которых ожидается утверждение заявки, по которым будет отфильтрован результат",
1492
+ "schema": {
1493
+ "type": "integer",
1494
+ "format": "int32"
1495
+ }
1496
+ },
1497
+ {
1498
+ "name": "escalatedTo",
1499
+ "in": "query",
1500
+ "description": "Идентификаторы пользователей, на которых была эскалирована заявка, по которым будет отфильтрован результат",
1501
+ "schema": {
1502
+ "type": "integer",
1503
+ "format": "int32"
1504
+ }
1505
+ },
1506
+ {
1507
+ "name": "assetID",
1508
+ "in": "query",
1509
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
1510
+ "schema": {
1511
+ "type": "integer",
1512
+ "format": "int32"
1513
+ }
1514
+ },
1515
+ {
1516
+ "name": "startWithAssetID",
1517
+ "in": "query",
1518
+ "description": "Идентификаторы объектов, по которым и по дочерним объектам которых будет отфильтрован результат",
1519
+ "schema": {
1520
+ "type": "integer",
1521
+ "format": "int32"
1522
+ }
1523
+ },
1524
+ {
1525
+ "name": "taskID",
1526
+ "in": "query",
1527
+ "description": "Идентификаторы заявок, по которым будет отфильтрован результат",
1528
+ "schema": {
1529
+ "type": "integer",
1530
+ "format": "int32"
1531
+ }
1532
+ },
1533
+ {
1534
+ "name": "taskNumber",
1535
+ "in": "query",
1536
+ "description": "Номера заявок, по которым будет отфильтрован результат",
1537
+ "schema": {
1538
+ "type": "string"
1539
+ }
1540
+ },
1541
+ {
1542
+ "name": "taskTypeID",
1543
+ "in": "query",
1544
+ "description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
1545
+ "schema": {
1546
+ "type": "integer",
1547
+ "format": "int32"
1548
+ }
1549
+ },
1550
+ {
1551
+ "name": "workTypeID",
1552
+ "in": "query",
1553
+ "description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
1554
+ "schema": {
1555
+ "type": "integer",
1556
+ "format": "int32"
1557
+ }
1558
+ },
1559
+ {
1560
+ "name": "taskStageID",
1561
+ "in": "query",
1562
+ "description": "Идентификаторы стадий заявок, на которых в текущий находятся заявки, по которым будет отфильтрован результат",
1563
+ "schema": {
1564
+ "type": "integer",
1565
+ "format": "int32"
1566
+ }
1567
+ },
1568
+ {
1569
+ "name": "taskStatusID",
1570
+ "in": "query",
1571
+ "description": "Идентификаторы статусов заявок, по которым будет отфильтрован результат",
1572
+ "schema": {
1573
+ "type": "integer",
1574
+ "format": "int32"
1575
+ }
1576
+ },
1577
+ {
1578
+ "name": "creationFrom",
1579
+ "in": "query",
1580
+ "description": "Начальный период фильтрации по дате создания заявки",
1581
+ "schema": {
1582
+ "type": "string",
1583
+ "format": "date-time"
1584
+ }
1585
+ },
1586
+ {
1587
+ "name": "creationTill",
1588
+ "in": "query",
1589
+ "description": "Конечный период фильтрации по дате создания заявки",
1590
+ "schema": {
1591
+ "type": "string",
1592
+ "format": "date-time"
1593
+ }
1594
+ },
1595
+ {
1596
+ "name": "assignationFrom",
1597
+ "in": "query",
1598
+ "description": "Начальный период фильтрации по дате назначения заявки",
1599
+ "schema": {
1600
+ "type": "string",
1601
+ "format": "date-time"
1602
+ }
1603
+ },
1604
+ {
1605
+ "name": "assignationTill",
1606
+ "in": "query",
1607
+ "description": "Конечный период фильтрации по дате назначения заявки",
1608
+ "schema": {
1609
+ "type": "string",
1610
+ "format": "date-time"
1611
+ }
1612
+ },
1613
+ {
1614
+ "name": "completionFrom",
1615
+ "in": "query",
1616
+ "description": "Начальный период фильтрации по дате выполнения заявки",
1617
+ "schema": {
1618
+ "type": "string",
1619
+ "format": "date-time"
1620
+ }
1621
+ },
1622
+ {
1623
+ "name": "completionTill",
1624
+ "in": "query",
1625
+ "description": "Конечный период фильтрации по дате выполнения заявки",
1626
+ "schema": {
1627
+ "type": "string",
1628
+ "format": "date-time"
1629
+ }
1630
+ },
1631
+ {
1632
+ "name": "closingFrom",
1633
+ "in": "query",
1634
+ "description": "Начальный период фильтрации по дате закрытия заявки",
1635
+ "schema": {
1636
+ "type": "string",
1637
+ "format": "date-time"
1638
+ }
1639
+ },
1640
+ {
1641
+ "name": "closingTill",
1642
+ "in": "query",
1643
+ "description": "Конечный период фильтрации по дате закрытия заявки",
1644
+ "schema": {
1645
+ "type": "string",
1646
+ "format": "date-time"
1647
+ }
1648
+ },
1649
+ {
1650
+ "name": "deadlineFrom",
1651
+ "in": "query",
1652
+ "description": "Начальный период фильтрации по сроку выполнения заявки",
1653
+ "schema": {
1654
+ "type": "string",
1655
+ "format": "date-time"
1656
+ }
1657
+ },
1658
+ {
1659
+ "name": "deadlineTill",
1660
+ "in": "query",
1661
+ "description": "Конечный период фильтрации по сроку выполнения заявки",
1662
+ "schema": {
1663
+ "type": "string",
1664
+ "format": "date-time"
1665
+ }
1666
+ },
1667
+ {
1668
+ "name": "isClosed",
1669
+ "in": "query",
1670
+ "description": "Если true, результат будет содержать только закрытые заявки, если false - только открытые",
1671
+ "schema": {
1672
+ "type": "boolean"
1673
+ }
1674
+ },
1675
+ {
1676
+ "name": "isFavourite",
1677
+ "in": "query",
1678
+ "description": "Если true, результат будет содержать только заявки из списка избранных для текущего пользователя, если false - только те, которые не вошли в список избранных текущего пользователя",
1679
+ "schema": {
1680
+ "type": "boolean"
1681
+ }
1682
+ },
1683
+ {
1684
+ "name": "isCompleted",
1685
+ "in": "query",
1686
+ "description": "Если true, результат будет содержать только выполненые заявки, если false - только не выполненные",
1687
+ "schema": {
1688
+ "type": "boolean"
1689
+ }
1690
+ },
1691
+ {
1692
+ "name": "isAssigned",
1693
+ "in": "query",
1694
+ "description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
1695
+ "schema": {
1696
+ "type": "boolean"
1697
+ }
1698
+ },
1699
+ {
1700
+ "name": "isDeleted",
1701
+ "in": "query",
1702
+ "description": "Если true, результат будет содержать только удаленные заявки, если false - только неудаленные",
1703
+ "schema": {
1704
+ "type": "boolean"
1705
+ }
1706
+ },
1707
+ {
1708
+ "name": "companyID",
1709
+ "in": "query",
1710
+ "description": "Идентификаторы компаний владельца оборудования, по заявкам которых будет отфильтрован результат",
1711
+ "schema": {
1712
+ "type": "integer",
1713
+ "format": "int32"
1714
+ }
1715
+ },
1716
+ {
1717
+ "name": "contractID",
1718
+ "in": "query",
1719
+ "description": "Идентификаторы контракта, в рамках которого выполняется заявка",
1720
+ "schema": {
1721
+ "type": "integer",
1722
+ "format": "int32"
1723
+ }
1724
+ },
1725
+ {
1726
+ "name": "criticalityID",
1727
+ "in": "query",
1728
+ "description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
1729
+ "schema": {
1730
+ "type": "integer",
1731
+ "format": "int32"
1732
+ }
1733
+ },
1734
+ {
1735
+ "name": "X-Application-ID",
1736
+ "in": "header",
1737
+ "description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
1738
+ "schema": {
1739
+ "enum": [
1740
+ 1,
1741
+ 2,
1742
+ 3,
1743
+ 4,
1744
+ 5,
1745
+ 6
1746
+ ],
1747
+ "type": "integer",
1748
+ "format": "int32",
1749
+ "default": 3,
1750
+ "x-enumNames": [
1751
+ "EngineerMobile",
1752
+ "CustomerMobile",
1753
+ "MainWeb",
1754
+ "AdminWeb",
1755
+ "Api",
1756
+ "PlateWeb"
1757
+ ]
1758
+ }
1759
+ }
1760
+ ],
1761
+ "responses": {
1762
+ "200": {
1763
+ "description": "Отчет по заявкам.",
1764
+ "content": {
1765
+ "text/plain": {
1766
+ "schema": {
1767
+ "type": "array",
1768
+ "items": {
1769
+ "$ref": "#/components/schemas/ResultsTaskListGroupByAssigneesTaskListGroupByAssigneesResult"
1770
+ }
1771
+ }
1772
+ },
1773
+ "application/json": {
1774
+ "schema": {
1775
+ "type": "array",
1776
+ "items": {
1777
+ "$ref": "#/components/schemas/ResultsTaskListGroupByAssigneesTaskListGroupByAssigneesResult"
1778
+ }
1779
+ }
1780
+ },
1781
+ "text/json": {
1782
+ "schema": {
1783
+ "type": "array",
1784
+ "items": {
1785
+ "$ref": "#/components/schemas/ResultsTaskListGroupByAssigneesTaskListGroupByAssigneesResult"
1786
+ }
1787
+ }
1788
+ }
1789
+ }
1790
+ },
1791
+ "204": {
1792
+ "description": "Данные не найдены."
1793
+ },
1794
+ "206": {
1795
+ "description": "Частичный ответ при использовании Range-заголовка."
1796
+ },
1797
+ "401": {
1798
+ "description": "Отсутствует или некорректен Bearer-токен."
1799
+ },
1800
+ "403": {
1801
+ "description": "Недостаточно прав для просмотра отчета."
1802
+ }
1803
+ },
1804
+ "security": [
1805
+ {
1806
+ "Bearer": [ ]
1807
+ }
1808
+ ]
1809
+ }
1810
+ },
1811
+ "/TasksByCompanies": {
1812
+ "get": {
1813
+ "tags": [
1814
+ "TasksByCompanies"
1815
+ ],
1816
+ "summary": "Получение отчета по заявкам, сгруппированным по компаниям",
1817
+ "description": "## Пример запроса:\r\n`GET /TasksByCompanies?searchText=обслуживание&companyID=3`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"company\": { \"id\": 3, \"name\": \"ООО Ремонт\" },\r\n \"activeTasksCount\": 8,\r\n \"outdatedTasksCount\": 2,\r\n \"undefinedTasksCount\": 0,\r\n \"total\": 10\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные по заданным фильтрам не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав TaskListGroupByCompanies.",
1818
+ "parameters": [
1819
+ {
1820
+ "name": "searchText",
1821
+ "in": "query",
1822
+ "description": "Текстовый поиск по вхождению строки от одного символа. Поиск осуществляется в описании и номере заявки, названии и описании объекта, названии вида работ. Доступен sql like-синтаксис.",
1823
+ "schema": {
1824
+ "type": "string"
1825
+ }
1826
+ },
1827
+ {
1828
+ "name": "Range",
1829
+ "in": "header",
1830
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
1831
+ "schema": {
1832
+ "type": "string"
1833
+ }
1834
+ },
1835
+ {
1836
+ "name": "offset",
1837
+ "in": "query",
1838
+ "description": "количество элементов, которое нобходимо пропустить",
1839
+ "schema": {
1840
+ "type": "string"
1841
+ }
1842
+ },
1843
+ {
1844
+ "name": "fetch",
1845
+ "in": "query",
1846
+ "description": "количество элементов, которое необходимо вернуть",
1847
+ "schema": {
1848
+ "type": "string"
1849
+ }
1850
+ },
1851
+ {
1852
+ "name": "searchText",
1853
+ "in": "query",
1854
+ "description": "Текстовый поиск по вхождению строки от одного символа",
1855
+ "schema": {
1856
+ "type": "string"
1857
+ }
1858
+ },
1859
+ {
1860
+ "name": "requestedBy",
1861
+ "in": "query",
1862
+ "description": "Идентификаторы пользователей, которые подали заявку, по которым будет отфильтрован результат",
1863
+ "schema": {
1864
+ "type": "integer",
1865
+ "format": "int32"
1866
+ }
1867
+ },
1868
+ {
1869
+ "name": "assignedTo",
1870
+ "in": "query",
1871
+ "description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
1872
+ "schema": {
1873
+ "type": "integer",
1874
+ "format": "int32"
1875
+ }
1876
+ },
1877
+ {
1878
+ "name": "approvalWith",
1879
+ "in": "query",
1880
+ "description": "Идентификаторы пользователей, от которых ожидается утверждение заявки, по которым будет отфильтрован результат",
1881
+ "schema": {
1882
+ "type": "integer",
1883
+ "format": "int32"
1884
+ }
1885
+ },
1886
+ {
1887
+ "name": "escalatedTo",
1888
+ "in": "query",
1889
+ "description": "Идентификаторы пользователей, на которых была эскалирована заявка, по которым будет отфильтрован результат",
1890
+ "schema": {
1891
+ "type": "integer",
1892
+ "format": "int32"
1893
+ }
1894
+ },
1895
+ {
1896
+ "name": "assetID",
1897
+ "in": "query",
1898
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
1899
+ "schema": {
1900
+ "type": "integer",
1901
+ "format": "int32"
1902
+ }
1903
+ },
1904
+ {
1905
+ "name": "startWithAssetID",
1906
+ "in": "query",
1907
+ "description": "Идентификаторы объектов, по которым и по дочерним объектам которых будет отфильтрован результат",
1908
+ "schema": {
1909
+ "type": "integer",
1910
+ "format": "int32"
1911
+ }
1912
+ },
1913
+ {
1914
+ "name": "taskID",
1915
+ "in": "query",
1916
+ "description": "Идентификаторы заявок, по которым будет отфильтрован результат",
1917
+ "schema": {
1918
+ "type": "integer",
1919
+ "format": "int32"
1920
+ }
1921
+ },
1922
+ {
1923
+ "name": "taskNumber",
1924
+ "in": "query",
1925
+ "description": "Номера заявок, по которым будет отфильтрован результат",
1926
+ "schema": {
1927
+ "type": "string"
1928
+ }
1929
+ },
1930
+ {
1931
+ "name": "taskTypeID",
1932
+ "in": "query",
1933
+ "description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
1934
+ "schema": {
1935
+ "type": "integer",
1936
+ "format": "int32"
1937
+ }
1938
+ },
1939
+ {
1940
+ "name": "workTypeID",
1941
+ "in": "query",
1942
+ "description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
1943
+ "schema": {
1944
+ "type": "integer",
1945
+ "format": "int32"
1946
+ }
1947
+ },
1948
+ {
1949
+ "name": "taskStageID",
1950
+ "in": "query",
1951
+ "description": "Идентификаторы стадий заявок, на которых в текущий находятся заявки, по которым будет отфильтрован результат",
1952
+ "schema": {
1953
+ "type": "integer",
1954
+ "format": "int32"
1955
+ }
1956
+ },
1957
+ {
1958
+ "name": "taskStatusID",
1959
+ "in": "query",
1960
+ "description": "Идентификаторы статусов заявок, по которым будет отфильтрован результат",
1961
+ "schema": {
1962
+ "type": "integer",
1963
+ "format": "int32"
1964
+ }
1965
+ },
1966
+ {
1967
+ "name": "creationFrom",
1968
+ "in": "query",
1969
+ "description": "Начальный период фильтрации по дате создания заявки",
1970
+ "schema": {
1971
+ "type": "string",
1972
+ "format": "date-time"
1973
+ }
1974
+ },
1975
+ {
1976
+ "name": "creationTill",
1977
+ "in": "query",
1978
+ "description": "Конечный период фильтрации по дате создания заявки",
1979
+ "schema": {
1980
+ "type": "string",
1981
+ "format": "date-time"
1982
+ }
1983
+ },
1984
+ {
1985
+ "name": "assignationFrom",
1986
+ "in": "query",
1987
+ "description": "Начальный период фильтрации по дате назначения заявки",
1988
+ "schema": {
1989
+ "type": "string",
1990
+ "format": "date-time"
1991
+ }
1992
+ },
1993
+ {
1994
+ "name": "assignationTill",
1995
+ "in": "query",
1996
+ "description": "Конечный период фильтрации по дате назначения заявки",
1997
+ "schema": {
1998
+ "type": "string",
1999
+ "format": "date-time"
2000
+ }
2001
+ },
2002
+ {
2003
+ "name": "completionFrom",
2004
+ "in": "query",
2005
+ "description": "Начальный период фильтрации по дате выполнения заявки",
2006
+ "schema": {
2007
+ "type": "string",
2008
+ "format": "date-time"
2009
+ }
2010
+ },
2011
+ {
2012
+ "name": "completionTill",
2013
+ "in": "query",
2014
+ "description": "Конечный период фильтрации по дате выполнения заявки",
2015
+ "schema": {
2016
+ "type": "string",
2017
+ "format": "date-time"
2018
+ }
2019
+ },
2020
+ {
2021
+ "name": "closingFrom",
2022
+ "in": "query",
2023
+ "description": "Начальный период фильтрации по дате закрытия заявки",
2024
+ "schema": {
2025
+ "type": "string",
2026
+ "format": "date-time"
2027
+ }
2028
+ },
2029
+ {
2030
+ "name": "closingTill",
2031
+ "in": "query",
2032
+ "description": "Конечный период фильтрации по дате закрытия заявки",
2033
+ "schema": {
2034
+ "type": "string",
2035
+ "format": "date-time"
2036
+ }
2037
+ },
2038
+ {
2039
+ "name": "deadlineFrom",
2040
+ "in": "query",
2041
+ "description": "Начальный период фильтрации по сроку выполнения заявки",
2042
+ "schema": {
2043
+ "type": "string",
2044
+ "format": "date-time"
2045
+ }
2046
+ },
2047
+ {
2048
+ "name": "deadlineTill",
2049
+ "in": "query",
2050
+ "description": "Конечный период фильтрации по сроку выполнения заявки",
2051
+ "schema": {
2052
+ "type": "string",
2053
+ "format": "date-time"
2054
+ }
2055
+ },
2056
+ {
2057
+ "name": "isClosed",
2058
+ "in": "query",
2059
+ "description": "Если true, результат будет содержать только закрытые заявки, если false - только открытые",
2060
+ "schema": {
2061
+ "type": "boolean"
2062
+ }
2063
+ },
2064
+ {
2065
+ "name": "isFavourite",
2066
+ "in": "query",
2067
+ "description": "Если true, результат будет содержать только заявки из списка избранных для текущего пользователя, если false - только те, которые не вошли в список избранных текущего пользователя",
2068
+ "schema": {
2069
+ "type": "boolean"
2070
+ }
2071
+ },
2072
+ {
2073
+ "name": "isCompleted",
2074
+ "in": "query",
2075
+ "description": "Если true, результат будет содержать только выполненые заявки, если false - только не выполненные",
2076
+ "schema": {
2077
+ "type": "boolean"
2078
+ }
2079
+ },
2080
+ {
2081
+ "name": "isAssigned",
2082
+ "in": "query",
2083
+ "description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
2084
+ "schema": {
2085
+ "type": "boolean"
2086
+ }
2087
+ },
2088
+ {
2089
+ "name": "isDeleted",
2090
+ "in": "query",
2091
+ "description": "Если true, результат будет содержать только удаленные заявки, если false - только неудаленные",
2092
+ "schema": {
2093
+ "type": "boolean"
2094
+ }
2095
+ },
2096
+ {
2097
+ "name": "companyID",
2098
+ "in": "query",
2099
+ "description": "Идентификаторы компаний владельца оборудования, по заявкам которых будет отфильтрован результат",
2100
+ "schema": {
2101
+ "type": "integer",
2102
+ "format": "int32"
2103
+ }
2104
+ },
2105
+ {
2106
+ "name": "contractID",
2107
+ "in": "query",
2108
+ "description": "Идентификаторы контракта, в рамках которого выполняется заявка",
2109
+ "schema": {
2110
+ "type": "integer",
2111
+ "format": "int32"
2112
+ }
2113
+ },
2114
+ {
2115
+ "name": "criticalityID",
2116
+ "in": "query",
2117
+ "description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
2118
+ "schema": {
2119
+ "type": "integer",
2120
+ "format": "int32"
2121
+ }
2122
+ },
2123
+ {
2124
+ "name": "X-Application-ID",
2125
+ "in": "header",
2126
+ "description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
2127
+ "schema": {
2128
+ "enum": [
2129
+ 1,
2130
+ 2,
2131
+ 3,
2132
+ 4,
2133
+ 5,
2134
+ 6
2135
+ ],
2136
+ "type": "integer",
2137
+ "format": "int32",
2138
+ "default": 3,
2139
+ "x-enumNames": [
2140
+ "EngineerMobile",
2141
+ "CustomerMobile",
2142
+ "MainWeb",
2143
+ "AdminWeb",
2144
+ "Api",
2145
+ "PlateWeb"
2146
+ ]
2147
+ }
2148
+ }
2149
+ ],
2150
+ "responses": {
2151
+ "200": {
2152
+ "description": "Отчет по заявкам.",
2153
+ "content": {
2154
+ "text/plain": {
2155
+ "schema": {
2156
+ "type": "array",
2157
+ "items": {
2158
+ "$ref": "#/components/schemas/ResultsTaskListGroupByCompaniesTaskListGroupByCompaniesResult"
2159
+ }
2160
+ }
2161
+ },
2162
+ "application/json": {
2163
+ "schema": {
2164
+ "type": "array",
2165
+ "items": {
2166
+ "$ref": "#/components/schemas/ResultsTaskListGroupByCompaniesTaskListGroupByCompaniesResult"
2167
+ }
2168
+ }
2169
+ },
2170
+ "text/json": {
2171
+ "schema": {
2172
+ "type": "array",
2173
+ "items": {
2174
+ "$ref": "#/components/schemas/ResultsTaskListGroupByCompaniesTaskListGroupByCompaniesResult"
2175
+ }
2176
+ }
2177
+ }
2178
+ }
2179
+ },
2180
+ "204": {
2181
+ "description": "Данные не найдены."
2182
+ },
2183
+ "206": {
2184
+ "description": "Частичный ответ при использовании Range-заголовка."
2185
+ },
2186
+ "401": {
2187
+ "description": "Отсутствует или некорректен Bearer-токен."
2188
+ },
2189
+ "403": {
2190
+ "description": "Недостаточно прав для просмотра отчета."
2191
+ }
2192
+ },
2193
+ "security": [
2194
+ {
2195
+ "Bearer": [ ]
2196
+ }
2197
+ ]
2198
+ }
2199
+ },
2200
+ "/TasksByStages": {
2201
+ "get": {
2202
+ "tags": [
2203
+ "TasksByStages"
2204
+ ],
2205
+ "summary": "Получение отчета по заявкам, сгруппированным по стадиям",
2206
+ "description": "## Пример запроса:\r\n`GET /TasksByStages?taskStageID=2&isCompleted=false`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"taskStage\": { \"id\": 2, \"name\": \"В работе\", \"color\": \"#FFA500\" },\r\n \"activeTasksCount\": 12,\r\n \"outdatedTasksCount\": 1,\r\n \"undefinedTasksCount\": 0,\r\n \"total\": 13\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные по заданным фильтрам не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав TaskListGroupByStages.",
2207
+ "parameters": [
2208
+ {
2209
+ "name": "searchText",
2210
+ "in": "query",
2211
+ "description": "Текстовый поиск по вхождению строки от одного символа. Поиск осуществляется в описании и номере заявки, названии и описании объекта, названии вида работ. Доступен sql like-синтаксис.",
2212
+ "schema": {
2213
+ "type": "string"
2214
+ }
2215
+ },
2216
+ {
2217
+ "name": "Range",
2218
+ "in": "header",
2219
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
2220
+ "schema": {
2221
+ "type": "string"
2222
+ }
2223
+ },
2224
+ {
2225
+ "name": "offset",
2226
+ "in": "query",
2227
+ "description": "количество элементов, которое нобходимо пропустить",
2228
+ "schema": {
2229
+ "type": "string"
2230
+ }
2231
+ },
2232
+ {
2233
+ "name": "fetch",
2234
+ "in": "query",
2235
+ "description": "количество элементов, которое необходимо вернуть",
2236
+ "schema": {
2237
+ "type": "string"
2238
+ }
2239
+ },
2240
+ {
2241
+ "name": "searchText",
2242
+ "in": "query",
2243
+ "description": "Текстовый поиск по вхождению строки от одного символа",
2244
+ "schema": {
2245
+ "type": "string"
2246
+ }
2247
+ },
2248
+ {
2249
+ "name": "requestedBy",
2250
+ "in": "query",
2251
+ "description": "Идентификаторы пользователей, которые подали заявку, по которым будет отфильтрован результат",
2252
+ "schema": {
2253
+ "type": "integer",
2254
+ "format": "int32"
2255
+ }
2256
+ },
2257
+ {
2258
+ "name": "assignedTo",
2259
+ "in": "query",
2260
+ "description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
2261
+ "schema": {
2262
+ "type": "integer",
2263
+ "format": "int32"
2264
+ }
2265
+ },
2266
+ {
2267
+ "name": "approvalWith",
2268
+ "in": "query",
2269
+ "description": "Идентификаторы пользователей, от которых ожидается утверждение заявки, по которым будет отфильтрован результат",
2270
+ "schema": {
2271
+ "type": "integer",
2272
+ "format": "int32"
2273
+ }
2274
+ },
2275
+ {
2276
+ "name": "escalatedTo",
2277
+ "in": "query",
2278
+ "description": "Идентификаторы пользователей, на которых была эскалирована заявка, по которым будет отфильтрован результат",
2279
+ "schema": {
2280
+ "type": "integer",
2281
+ "format": "int32"
2282
+ }
2283
+ },
2284
+ {
2285
+ "name": "assetID",
2286
+ "in": "query",
2287
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
2288
+ "schema": {
2289
+ "type": "integer",
2290
+ "format": "int32"
2291
+ }
2292
+ },
2293
+ {
2294
+ "name": "startWithAssetID",
2295
+ "in": "query",
2296
+ "description": "Идентификаторы объектов, по которым и по дочерним объектам которых будет отфильтрован результат",
2297
+ "schema": {
2298
+ "type": "integer",
2299
+ "format": "int32"
2300
+ }
2301
+ },
2302
+ {
2303
+ "name": "taskID",
2304
+ "in": "query",
2305
+ "description": "Идентификаторы заявок, по которым будет отфильтрован результат",
2306
+ "schema": {
2307
+ "type": "integer",
2308
+ "format": "int32"
2309
+ }
2310
+ },
2311
+ {
2312
+ "name": "taskNumber",
2313
+ "in": "query",
2314
+ "description": "Номера заявок, по которым будет отфильтрован результат",
2315
+ "schema": {
2316
+ "type": "string"
2317
+ }
2318
+ },
2319
+ {
2320
+ "name": "taskTypeID",
2321
+ "in": "query",
2322
+ "description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
2323
+ "schema": {
2324
+ "type": "integer",
2325
+ "format": "int32"
2326
+ }
2327
+ },
2328
+ {
2329
+ "name": "workTypeID",
2330
+ "in": "query",
2331
+ "description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
2332
+ "schema": {
2333
+ "type": "integer",
2334
+ "format": "int32"
2335
+ }
2336
+ },
2337
+ {
2338
+ "name": "taskStageID",
2339
+ "in": "query",
2340
+ "description": "Идентификаторы стадий заявок, на которых в текущий находятся заявки, по которым будет отфильтрован результат",
2341
+ "schema": {
2342
+ "type": "integer",
2343
+ "format": "int32"
2344
+ }
2345
+ },
2346
+ {
2347
+ "name": "taskStatusID",
2348
+ "in": "query",
2349
+ "description": "Идентификаторы статусов заявок, по которым будет отфильтрован результат",
2350
+ "schema": {
2351
+ "type": "integer",
2352
+ "format": "int32"
2353
+ }
2354
+ },
2355
+ {
2356
+ "name": "creationFrom",
2357
+ "in": "query",
2358
+ "description": "Начальный период фильтрации по дате создания заявки",
2359
+ "schema": {
2360
+ "type": "string",
2361
+ "format": "date-time"
2362
+ }
2363
+ },
2364
+ {
2365
+ "name": "creationTill",
2366
+ "in": "query",
2367
+ "description": "Конечный период фильтрации по дате создания заявки",
2368
+ "schema": {
2369
+ "type": "string",
2370
+ "format": "date-time"
2371
+ }
2372
+ },
2373
+ {
2374
+ "name": "assignationFrom",
2375
+ "in": "query",
2376
+ "description": "Начальный период фильтрации по дате назначения заявки",
2377
+ "schema": {
2378
+ "type": "string",
2379
+ "format": "date-time"
2380
+ }
2381
+ },
2382
+ {
2383
+ "name": "assignationTill",
2384
+ "in": "query",
2385
+ "description": "Конечный период фильтрации по дате назначения заявки",
2386
+ "schema": {
2387
+ "type": "string",
2388
+ "format": "date-time"
2389
+ }
2390
+ },
2391
+ {
2392
+ "name": "completionFrom",
2393
+ "in": "query",
2394
+ "description": "Начальный период фильтрации по дате выполнения заявки",
2395
+ "schema": {
2396
+ "type": "string",
2397
+ "format": "date-time"
2398
+ }
2399
+ },
2400
+ {
2401
+ "name": "completionTill",
2402
+ "in": "query",
2403
+ "description": "Конечный период фильтрации по дате выполнения заявки",
2404
+ "schema": {
2405
+ "type": "string",
2406
+ "format": "date-time"
2407
+ }
2408
+ },
2409
+ {
2410
+ "name": "closingFrom",
2411
+ "in": "query",
2412
+ "description": "Начальный период фильтрации по дате закрытия заявки",
2413
+ "schema": {
2414
+ "type": "string",
2415
+ "format": "date-time"
2416
+ }
2417
+ },
2418
+ {
2419
+ "name": "closingTill",
2420
+ "in": "query",
2421
+ "description": "Конечный период фильтрации по дате закрытия заявки",
2422
+ "schema": {
2423
+ "type": "string",
2424
+ "format": "date-time"
2425
+ }
2426
+ },
2427
+ {
2428
+ "name": "deadlineFrom",
2429
+ "in": "query",
2430
+ "description": "Начальный период фильтрации по сроку выполнения заявки",
2431
+ "schema": {
2432
+ "type": "string",
2433
+ "format": "date-time"
2434
+ }
2435
+ },
2436
+ {
2437
+ "name": "deadlineTill",
2438
+ "in": "query",
2439
+ "description": "Конечный период фильтрации по сроку выполнения заявки",
2440
+ "schema": {
2441
+ "type": "string",
2442
+ "format": "date-time"
2443
+ }
2444
+ },
2445
+ {
2446
+ "name": "isClosed",
2447
+ "in": "query",
2448
+ "description": "Если true, результат будет содержать только закрытые заявки, если false - только открытые",
2449
+ "schema": {
2450
+ "type": "boolean"
2451
+ }
2452
+ },
2453
+ {
2454
+ "name": "isFavourite",
2455
+ "in": "query",
2456
+ "description": "Если true, результат будет содержать только заявки из списка избранных для текущего пользователя, если false - только те, которые не вошли в список избранных текущего пользователя",
2457
+ "schema": {
2458
+ "type": "boolean"
2459
+ }
2460
+ },
2461
+ {
2462
+ "name": "isCompleted",
2463
+ "in": "query",
2464
+ "description": "Если true, результат будет содержать только выполненые заявки, если false - только не выполненные",
2465
+ "schema": {
2466
+ "type": "boolean"
2467
+ }
2468
+ },
2469
+ {
2470
+ "name": "isAssigned",
2471
+ "in": "query",
2472
+ "description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
2473
+ "schema": {
2474
+ "type": "boolean"
2475
+ }
2476
+ },
2477
+ {
2478
+ "name": "isDeleted",
2479
+ "in": "query",
2480
+ "description": "Если true, результат будет содержать только удаленные заявки, если false - только неудаленные",
2481
+ "schema": {
2482
+ "type": "boolean"
2483
+ }
2484
+ },
2485
+ {
2486
+ "name": "companyID",
2487
+ "in": "query",
2488
+ "description": "Идентификаторы компаний владельца оборудования, по заявкам которых будет отфильтрован результат",
2489
+ "schema": {
2490
+ "type": "integer",
2491
+ "format": "int32"
2492
+ }
2493
+ },
2494
+ {
2495
+ "name": "contractID",
2496
+ "in": "query",
2497
+ "description": "Идентификаторы контракта, в рамках которого выполняется заявка",
2498
+ "schema": {
2499
+ "type": "integer",
2500
+ "format": "int32"
2501
+ }
2502
+ },
2503
+ {
2504
+ "name": "criticalityID",
2505
+ "in": "query",
2506
+ "description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
2507
+ "schema": {
2508
+ "type": "integer",
2509
+ "format": "int32"
2510
+ }
2511
+ },
2512
+ {
2513
+ "name": "X-Application-ID",
2514
+ "in": "header",
2515
+ "description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
2516
+ "schema": {
2517
+ "enum": [
2518
+ 1,
2519
+ 2,
2520
+ 3,
2521
+ 4,
2522
+ 5,
2523
+ 6
2524
+ ],
2525
+ "type": "integer",
2526
+ "format": "int32",
2527
+ "default": 3,
2528
+ "x-enumNames": [
2529
+ "EngineerMobile",
2530
+ "CustomerMobile",
2531
+ "MainWeb",
2532
+ "AdminWeb",
2533
+ "Api",
2534
+ "PlateWeb"
2535
+ ]
2536
+ }
2537
+ }
2538
+ ],
2539
+ "responses": {
2540
+ "200": {
2541
+ "description": "Отчет по заявкам.",
2542
+ "content": {
2543
+ "text/plain": {
2544
+ "schema": {
2545
+ "type": "array",
2546
+ "items": {
2547
+ "$ref": "#/components/schemas/ResultsTaskListGroupByStagesTaskListGroupByStagesResult"
2548
+ }
2549
+ }
2550
+ },
2551
+ "application/json": {
2552
+ "schema": {
2553
+ "type": "array",
2554
+ "items": {
2555
+ "$ref": "#/components/schemas/ResultsTaskListGroupByStagesTaskListGroupByStagesResult"
2556
+ }
2557
+ }
2558
+ },
2559
+ "text/json": {
2560
+ "schema": {
2561
+ "type": "array",
2562
+ "items": {
2563
+ "$ref": "#/components/schemas/ResultsTaskListGroupByStagesTaskListGroupByStagesResult"
2564
+ }
2565
+ }
2566
+ }
2567
+ }
2568
+ },
2569
+ "204": {
2570
+ "description": "Данные не найдены."
2571
+ },
2572
+ "206": {
2573
+ "description": "Частичный ответ при использовании Range-заголовка."
2574
+ },
2575
+ "401": {
2576
+ "description": "Отсутствует или некорректен Bearer-токен."
2577
+ },
2578
+ "403": {
2579
+ "description": "Недостаточно прав для просмотра отчета."
2580
+ }
2581
+ },
2582
+ "security": [
2583
+ {
2584
+ "Bearer": [ ]
2585
+ }
2586
+ ]
2587
+ }
2588
+ },
2589
+ "/TasksByWorkTypes": {
2590
+ "get": {
2591
+ "tags": [
2592
+ "TasksByWorkTypes"
2593
+ ],
2594
+ "summary": "Получение отчета по заявкам, сгруппированным по видам работ",
2595
+ "description": "## Пример запроса:\r\n`GET /TasksByWorkTypes?searchText=ТО&workTypeID=5`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"workType\": { \"id\": 5, \"name\": \"Техническое обслуживание\" },\r\n \"activeTasksCount\": 7,\r\n \"outdatedTasksCount\": 0,\r\n \"undefinedTasksCount\": 0,\r\n \"total\": 7\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные по заданным фильтрам не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав TaskListGroupByWorkTypes.",
2596
+ "parameters": [
2597
+ {
2598
+ "name": "searchText",
2599
+ "in": "query",
2600
+ "description": "Текстовый поиск по вхождению строки от одного символа. Поиск осуществляется в описании и номере заявки, названии и описании объекта, названии вида работ. Доступен sql like-синтаксис.",
2601
+ "schema": {
2602
+ "type": "string"
2603
+ }
2604
+ },
2605
+ {
2606
+ "name": "Range",
2607
+ "in": "header",
2608
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
2609
+ "schema": {
2610
+ "type": "string"
2611
+ }
2612
+ },
2613
+ {
2614
+ "name": "offset",
2615
+ "in": "query",
2616
+ "description": "количество элементов, которое нобходимо пропустить",
2617
+ "schema": {
2618
+ "type": "string"
2619
+ }
2620
+ },
2621
+ {
2622
+ "name": "fetch",
2623
+ "in": "query",
2624
+ "description": "количество элементов, которое необходимо вернуть",
2625
+ "schema": {
2626
+ "type": "string"
2627
+ }
2628
+ },
2629
+ {
2630
+ "name": "searchText",
2631
+ "in": "query",
2632
+ "description": "Текстовый поиск по вхождению строки от одного символа",
2633
+ "schema": {
2634
+ "type": "string"
2635
+ }
2636
+ },
2637
+ {
2638
+ "name": "requestedBy",
2639
+ "in": "query",
2640
+ "description": "Идентификаторы пользователей, которые подали заявку, по которым будет отфильтрован результат",
2641
+ "schema": {
2642
+ "type": "integer",
2643
+ "format": "int32"
2644
+ }
2645
+ },
2646
+ {
2647
+ "name": "assignedTo",
2648
+ "in": "query",
2649
+ "description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
2650
+ "schema": {
2651
+ "type": "integer",
2652
+ "format": "int32"
2653
+ }
2654
+ },
2655
+ {
2656
+ "name": "approvalWith",
2657
+ "in": "query",
2658
+ "description": "Идентификаторы пользователей, от которых ожидается утверждение заявки, по которым будет отфильтрован результат",
2659
+ "schema": {
2660
+ "type": "integer",
2661
+ "format": "int32"
2662
+ }
2663
+ },
2664
+ {
2665
+ "name": "escalatedTo",
2666
+ "in": "query",
2667
+ "description": "Идентификаторы пользователей, на которых была эскалирована заявка, по которым будет отфильтрован результат",
2668
+ "schema": {
2669
+ "type": "integer",
2670
+ "format": "int32"
2671
+ }
2672
+ },
2673
+ {
2674
+ "name": "assetID",
2675
+ "in": "query",
2676
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
2677
+ "schema": {
2678
+ "type": "integer",
2679
+ "format": "int32"
2680
+ }
2681
+ },
2682
+ {
2683
+ "name": "startWithAssetID",
2684
+ "in": "query",
2685
+ "description": "Идентификаторы объектов, по которым и по дочерним объектам которых будет отфильтрован результат",
2686
+ "schema": {
2687
+ "type": "integer",
2688
+ "format": "int32"
2689
+ }
2690
+ },
2691
+ {
2692
+ "name": "taskID",
2693
+ "in": "query",
2694
+ "description": "Идентификаторы заявок, по которым будет отфильтрован результат",
2695
+ "schema": {
2696
+ "type": "integer",
2697
+ "format": "int32"
2698
+ }
2699
+ },
2700
+ {
2701
+ "name": "taskNumber",
2702
+ "in": "query",
2703
+ "description": "Номера заявок, по которым будет отфильтрован результат",
2704
+ "schema": {
2705
+ "type": "string"
2706
+ }
2707
+ },
2708
+ {
2709
+ "name": "taskTypeID",
2710
+ "in": "query",
2711
+ "description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
2712
+ "schema": {
2713
+ "type": "integer",
2714
+ "format": "int32"
2715
+ }
2716
+ },
2717
+ {
2718
+ "name": "workTypeID",
2719
+ "in": "query",
2720
+ "description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
2721
+ "schema": {
2722
+ "type": "integer",
2723
+ "format": "int32"
2724
+ }
2725
+ },
2726
+ {
2727
+ "name": "taskStageID",
2728
+ "in": "query",
2729
+ "description": "Идентификаторы стадий заявок, на которых в текущий находятся заявки, по которым будет отфильтрован результат",
2730
+ "schema": {
2731
+ "type": "integer",
2732
+ "format": "int32"
2733
+ }
2734
+ },
2735
+ {
2736
+ "name": "taskStatusID",
2737
+ "in": "query",
2738
+ "description": "Идентификаторы статусов заявок, по которым будет отфильтрован результат",
2739
+ "schema": {
2740
+ "type": "integer",
2741
+ "format": "int32"
2742
+ }
2743
+ },
2744
+ {
2745
+ "name": "creationFrom",
2746
+ "in": "query",
2747
+ "description": "Начальный период фильтрации по дате создания заявки",
2748
+ "schema": {
2749
+ "type": "string",
2750
+ "format": "date-time"
2751
+ }
2752
+ },
2753
+ {
2754
+ "name": "creationTill",
2755
+ "in": "query",
2756
+ "description": "Конечный период фильтрации по дате создания заявки",
2757
+ "schema": {
2758
+ "type": "string",
2759
+ "format": "date-time"
2760
+ }
2761
+ },
2762
+ {
2763
+ "name": "assignationFrom",
2764
+ "in": "query",
2765
+ "description": "Начальный период фильтрации по дате назначения заявки",
2766
+ "schema": {
2767
+ "type": "string",
2768
+ "format": "date-time"
2769
+ }
2770
+ },
2771
+ {
2772
+ "name": "assignationTill",
2773
+ "in": "query",
2774
+ "description": "Конечный период фильтрации по дате назначения заявки",
2775
+ "schema": {
2776
+ "type": "string",
2777
+ "format": "date-time"
2778
+ }
2779
+ },
2780
+ {
2781
+ "name": "completionFrom",
2782
+ "in": "query",
2783
+ "description": "Начальный период фильтрации по дате выполнения заявки",
2784
+ "schema": {
2785
+ "type": "string",
2786
+ "format": "date-time"
2787
+ }
2788
+ },
2789
+ {
2790
+ "name": "completionTill",
2791
+ "in": "query",
2792
+ "description": "Конечный период фильтрации по дате выполнения заявки",
2793
+ "schema": {
2794
+ "type": "string",
2795
+ "format": "date-time"
2796
+ }
2797
+ },
2798
+ {
2799
+ "name": "closingFrom",
2800
+ "in": "query",
2801
+ "description": "Начальный период фильтрации по дате закрытия заявки",
2802
+ "schema": {
2803
+ "type": "string",
2804
+ "format": "date-time"
2805
+ }
2806
+ },
2807
+ {
2808
+ "name": "closingTill",
2809
+ "in": "query",
2810
+ "description": "Конечный период фильтрации по дате закрытия заявки",
2811
+ "schema": {
2812
+ "type": "string",
2813
+ "format": "date-time"
2814
+ }
2815
+ },
2816
+ {
2817
+ "name": "deadlineFrom",
2818
+ "in": "query",
2819
+ "description": "Начальный период фильтрации по сроку выполнения заявки",
2820
+ "schema": {
2821
+ "type": "string",
2822
+ "format": "date-time"
2823
+ }
2824
+ },
2825
+ {
2826
+ "name": "deadlineTill",
2827
+ "in": "query",
2828
+ "description": "Конечный период фильтрации по сроку выполнения заявки",
2829
+ "schema": {
2830
+ "type": "string",
2831
+ "format": "date-time"
2832
+ }
2833
+ },
2834
+ {
2835
+ "name": "isClosed",
2836
+ "in": "query",
2837
+ "description": "Если true, результат будет содержать только закрытые заявки, если false - только открытые",
2838
+ "schema": {
2839
+ "type": "boolean"
2840
+ }
2841
+ },
2842
+ {
2843
+ "name": "isFavourite",
2844
+ "in": "query",
2845
+ "description": "Если true, результат будет содержать только заявки из списка избранных для текущего пользователя, если false - только те, которые не вошли в список избранных текущего пользователя",
2846
+ "schema": {
2847
+ "type": "boolean"
2848
+ }
2849
+ },
2850
+ {
2851
+ "name": "isCompleted",
2852
+ "in": "query",
2853
+ "description": "Если true, результат будет содержать только выполненые заявки, если false - только не выполненные",
2854
+ "schema": {
2855
+ "type": "boolean"
2856
+ }
2857
+ },
2858
+ {
2859
+ "name": "isAssigned",
2860
+ "in": "query",
2861
+ "description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
2862
+ "schema": {
2863
+ "type": "boolean"
2864
+ }
2865
+ },
2866
+ {
2867
+ "name": "isDeleted",
2868
+ "in": "query",
2869
+ "description": "Если true, результат будет содержать только удаленные заявки, если false - только неудаленные",
2870
+ "schema": {
2871
+ "type": "boolean"
2872
+ }
2873
+ },
2874
+ {
2875
+ "name": "companyID",
2876
+ "in": "query",
2877
+ "description": "Идентификаторы компаний владельца оборудования, по заявкам которых будет отфильтрован результат",
2878
+ "schema": {
2879
+ "type": "integer",
2880
+ "format": "int32"
2881
+ }
2882
+ },
2883
+ {
2884
+ "name": "contractID",
2885
+ "in": "query",
2886
+ "description": "Идентификаторы контракта, в рамках которого выполняется заявка",
2887
+ "schema": {
2888
+ "type": "integer",
2889
+ "format": "int32"
2890
+ }
2891
+ },
2892
+ {
2893
+ "name": "criticalityID",
2894
+ "in": "query",
2895
+ "description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
2896
+ "schema": {
2897
+ "type": "integer",
2898
+ "format": "int32"
2899
+ }
2900
+ },
2901
+ {
2902
+ "name": "X-Application-ID",
2903
+ "in": "header",
2904
+ "description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
2905
+ "schema": {
2906
+ "enum": [
2907
+ 1,
2908
+ 2,
2909
+ 3,
2910
+ 4,
2911
+ 5,
2912
+ 6
2913
+ ],
2914
+ "type": "integer",
2915
+ "format": "int32",
2916
+ "default": 3,
2917
+ "x-enumNames": [
2918
+ "EngineerMobile",
2919
+ "CustomerMobile",
2920
+ "MainWeb",
2921
+ "AdminWeb",
2922
+ "Api",
2923
+ "PlateWeb"
2924
+ ]
2925
+ }
2926
+ }
2927
+ ],
2928
+ "responses": {
2929
+ "200": {
2930
+ "description": "Отчет по заявкам.",
2931
+ "content": {
2932
+ "text/plain": {
2933
+ "schema": {
2934
+ "type": "array",
2935
+ "items": {
2936
+ "$ref": "#/components/schemas/ResultsTaskListGroupByWorkTypesTaskListGroupByWorkTypesResult"
2937
+ }
2938
+ }
2939
+ },
2940
+ "application/json": {
2941
+ "schema": {
2942
+ "type": "array",
2943
+ "items": {
2944
+ "$ref": "#/components/schemas/ResultsTaskListGroupByWorkTypesTaskListGroupByWorkTypesResult"
2945
+ }
2946
+ }
2947
+ },
2948
+ "text/json": {
2949
+ "schema": {
2950
+ "type": "array",
2951
+ "items": {
2952
+ "$ref": "#/components/schemas/ResultsTaskListGroupByWorkTypesTaskListGroupByWorkTypesResult"
2953
+ }
2954
+ }
2955
+ }
2956
+ }
2957
+ },
2958
+ "204": {
2959
+ "description": "Данные не найдены."
2960
+ },
2961
+ "206": {
2962
+ "description": "Частичный ответ при использовании Range-заголовка."
2963
+ },
2964
+ "401": {
2965
+ "description": "Отсутствует или некорректен Bearer-токен."
2966
+ },
2967
+ "403": {
2968
+ "description": "Недостаточно прав для просмотра отчета."
2969
+ }
2970
+ },
2971
+ "security": [
2972
+ {
2973
+ "Bearer": [ ]
2974
+ }
2975
+ ]
2976
+ }
2977
+ },
2978
+ "/WorkingTime": {
2979
+ "get": {
2980
+ "tags": [
2981
+ "WorkingTime"
2982
+ ],
2983
+ "summary": "Получение отчета по отработанному времени по заявкам",
2984
+ "description": "## Пример запроса:\r\n`GET /WorkingTime?groupByPeriod=Day&assignedTo=15&creationFrom=2026-08-01`\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"period\": { \"from\": \"2026-08-01T00:00:00Z\", \"till\": \"2026-08-01T23:59:59Z\" },\r\n \"workingTime\": { \"totalMinutes\": 960, \"averageMinutes\": 80 }\r\n }\r\n]\r\n```\r\n## Негативные сценарии:\r\n- 204 NoContent: данные по заданным фильтрам не найдены.\r\n- 206 PartialContent: частичный ответ при использовании Range-заголовка.\r\n- 400 BadRequest: не указан или некорректен параметр groupByPeriod.\r\n- 401 Unauthorized: отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden: недостаточно прав TaskListWorkingTime.",
2985
+ "parameters": [
2986
+ {
2987
+ "name": "groupByPeriod",
2988
+ "in": "query",
2989
+ "description": "Период группировки: Day, Week или Month.",
2990
+ "schema": {
2991
+ "$ref": "#/components/schemas/ApiEnumsDatePart"
2992
+ }
2993
+ },
2994
+ {
2995
+ "name": "Range",
2996
+ "in": "header",
2997
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
2998
+ "schema": {
2999
+ "type": "string"
3000
+ }
3001
+ },
3002
+ {
3003
+ "name": "offset",
3004
+ "in": "query",
3005
+ "description": "количество элементов, которое нобходимо пропустить",
3006
+ "schema": {
3007
+ "type": "string"
3008
+ }
3009
+ },
3010
+ {
3011
+ "name": "fetch",
3012
+ "in": "query",
3013
+ "description": "количество элементов, которое необходимо вернуть",
3014
+ "schema": {
3015
+ "type": "string"
3016
+ }
3017
+ },
3018
+ {
3019
+ "name": "groupByPeriod",
3020
+ "in": "query",
3021
+ "description": "Период группировки (Day, Week, Month)",
3022
+ "required": true,
3023
+ "schema": {
3024
+ "enum": [
3025
+ "Year",
3026
+ "Quarter",
3027
+ "Month",
3028
+ "Day",
3029
+ "Week",
3030
+ "Second",
3031
+ "Minute",
3032
+ "Hour"
3033
+ ],
3034
+ "type": "string"
3035
+ }
3036
+ },
3037
+ {
3038
+ "name": "requestedBy",
3039
+ "in": "query",
3040
+ "description": "Идентификаторы пользователей, которые подали заявку, по которым будет отфильтрован результат",
3041
+ "schema": {
3042
+ "type": "integer",
3043
+ "format": "int32"
3044
+ }
3045
+ },
3046
+ {
3047
+ "name": "assignedTo",
3048
+ "in": "query",
3049
+ "description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
3050
+ "schema": {
3051
+ "type": "integer",
3052
+ "format": "int32"
3053
+ }
3054
+ },
3055
+ {
3056
+ "name": "approvalWith",
3057
+ "in": "query",
3058
+ "description": "Идентификаторы пользователей, от которых ожидается утверждение заявки, по которым будет отфильтрован результат",
3059
+ "schema": {
3060
+ "type": "integer",
3061
+ "format": "int32"
3062
+ }
3063
+ },
3064
+ {
3065
+ "name": "escalatedTo",
3066
+ "in": "query",
3067
+ "description": "Идентификаторы пользователей, на которых была эскалирована заявка, по которым будет отфильтрован результат",
3068
+ "schema": {
3069
+ "type": "integer",
3070
+ "format": "int32"
3071
+ }
3072
+ },
3073
+ {
3074
+ "name": "assetID",
3075
+ "in": "query",
3076
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
3077
+ "schema": {
3078
+ "type": "integer",
3079
+ "format": "int32"
3080
+ }
3081
+ },
3082
+ {
3083
+ "name": "startWithAssetID",
3084
+ "in": "query",
3085
+ "description": "Идентификаторы объектов, по которым и по дочерним объектам которых будет отфильтрован результат",
3086
+ "schema": {
3087
+ "type": "integer",
3088
+ "format": "int32"
3089
+ }
3090
+ },
3091
+ {
3092
+ "name": "taskID",
3093
+ "in": "query",
3094
+ "description": "Идентификаторы заявок, по которым будет отфильтрован результат",
3095
+ "schema": {
3096
+ "type": "integer",
3097
+ "format": "int32"
3098
+ }
3099
+ },
3100
+ {
3101
+ "name": "taskNumber",
3102
+ "in": "query",
3103
+ "description": "Номера заявок, по которым будет отфильтрован результат",
3104
+ "schema": {
3105
+ "type": "string"
3106
+ }
3107
+ },
3108
+ {
3109
+ "name": "taskTypeID",
3110
+ "in": "query",
3111
+ "description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
3112
+ "schema": {
3113
+ "type": "integer",
3114
+ "format": "int32"
3115
+ }
3116
+ },
3117
+ {
3118
+ "name": "workTypeID",
3119
+ "in": "query",
3120
+ "description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
3121
+ "schema": {
3122
+ "type": "integer",
3123
+ "format": "int32"
3124
+ }
3125
+ },
3126
+ {
3127
+ "name": "taskStageID",
3128
+ "in": "query",
3129
+ "description": "Идентификаторы стадий заявок, на которых в текущий находятся заявки, по которым будет отфильтрован результат",
3130
+ "schema": {
3131
+ "type": "integer",
3132
+ "format": "int32"
3133
+ }
3134
+ },
3135
+ {
3136
+ "name": "taskStatusID",
3137
+ "in": "query",
3138
+ "description": "Идентификаторы статусов заявок, по которым будет отфильтрован результат",
3139
+ "schema": {
3140
+ "type": "integer",
3141
+ "format": "int32"
3142
+ }
3143
+ },
3144
+ {
3145
+ "name": "creationFrom",
3146
+ "in": "query",
3147
+ "description": "Начальный период фильтрации по дате создания заявки",
3148
+ "schema": {
3149
+ "type": "string",
3150
+ "format": "date-time"
3151
+ }
3152
+ },
3153
+ {
3154
+ "name": "creationTill",
3155
+ "in": "query",
3156
+ "description": "Конечный период фильтрации по дате создания заявки",
3157
+ "schema": {
3158
+ "type": "string",
3159
+ "format": "date-time"
3160
+ }
3161
+ },
3162
+ {
3163
+ "name": "assignationFrom",
3164
+ "in": "query",
3165
+ "description": "Начальный период фильтрации по дате назначения заявки",
3166
+ "schema": {
3167
+ "type": "string",
3168
+ "format": "date-time"
3169
+ }
3170
+ },
3171
+ {
3172
+ "name": "assignationTill",
3173
+ "in": "query",
3174
+ "description": "Конечный период фильтрации по дате назначения заявки",
3175
+ "schema": {
3176
+ "type": "string",
3177
+ "format": "date-time"
3178
+ }
3179
+ },
3180
+ {
3181
+ "name": "completionFrom",
3182
+ "in": "query",
3183
+ "description": "Начальный период фильтрации по дате выполнения заявки",
3184
+ "schema": {
3185
+ "type": "string",
3186
+ "format": "date-time"
3187
+ }
3188
+ },
3189
+ {
3190
+ "name": "completionTill",
3191
+ "in": "query",
3192
+ "description": "Конечный период фильтрации по дате выполнения заявки",
3193
+ "schema": {
3194
+ "type": "string",
3195
+ "format": "date-time"
3196
+ }
3197
+ },
3198
+ {
3199
+ "name": "closingFrom",
3200
+ "in": "query",
3201
+ "description": "Начальный период фильтрации по дате закрытия заявки",
3202
+ "schema": {
3203
+ "type": "string",
3204
+ "format": "date-time"
3205
+ }
3206
+ },
3207
+ {
3208
+ "name": "closingTill",
3209
+ "in": "query",
3210
+ "description": "Конечный период фильтрации по дате закрытия заявки",
3211
+ "schema": {
3212
+ "type": "string",
3213
+ "format": "date-time"
3214
+ }
3215
+ },
3216
+ {
3217
+ "name": "deadlineFrom",
3218
+ "in": "query",
3219
+ "description": "Начальный период фильтрации по сроку выполнения заявки",
3220
+ "schema": {
3221
+ "type": "string",
3222
+ "format": "date-time"
3223
+ }
3224
+ },
3225
+ {
3226
+ "name": "deadlineTill",
3227
+ "in": "query",
3228
+ "description": "Конечный период фильтрации по сроку выполнения заявки",
3229
+ "schema": {
3230
+ "type": "string",
3231
+ "format": "date-time"
3232
+ }
3233
+ },
3234
+ {
3235
+ "name": "isClosed",
3236
+ "in": "query",
3237
+ "description": "Если true, результат будет содержать только закрытые заявки, если false - только открытые",
3238
+ "schema": {
3239
+ "type": "boolean"
3240
+ }
3241
+ },
3242
+ {
3243
+ "name": "isFavourite",
3244
+ "in": "query",
3245
+ "description": "Если true, результат будет содержать только заявки из списка избранных для текущего пользователя, если false - только те, которые не вошли в список избранных текущего пользователя",
3246
+ "schema": {
3247
+ "type": "boolean"
3248
+ }
3249
+ },
3250
+ {
3251
+ "name": "isCompleted",
3252
+ "in": "query",
3253
+ "description": "Если true, результат будет содержать только выполненые заявки, если false - только не выполненные",
3254
+ "schema": {
3255
+ "type": "boolean"
3256
+ }
3257
+ },
3258
+ {
3259
+ "name": "isAssigned",
3260
+ "in": "query",
3261
+ "description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
3262
+ "schema": {
3263
+ "type": "boolean"
3264
+ }
3265
+ },
3266
+ {
3267
+ "name": "isDeleted",
3268
+ "in": "query",
3269
+ "description": "Если true, результат будет содержать только удаленные заявки, если false - только неудаленные",
3270
+ "schema": {
3271
+ "type": "boolean"
3272
+ }
3273
+ },
3274
+ {
3275
+ "name": "companyID",
3276
+ "in": "query",
3277
+ "description": "Идентификаторы компаний владельца оборудования, по заявкам которых будет отфильтрован результат",
3278
+ "schema": {
3279
+ "type": "integer",
3280
+ "format": "int32"
3281
+ }
3282
+ },
3283
+ {
3284
+ "name": "contractID",
3285
+ "in": "query",
3286
+ "description": "Идентификаторы контракта, в рамках которого выполняется заявка",
3287
+ "schema": {
3288
+ "type": "integer",
3289
+ "format": "int32"
3290
+ }
3291
+ },
3292
+ {
3293
+ "name": "criticalityID",
3294
+ "in": "query",
3295
+ "description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
3296
+ "schema": {
3297
+ "type": "integer",
3298
+ "format": "int32"
3299
+ }
3300
+ },
3301
+ {
3302
+ "name": "X-Application-ID",
3303
+ "in": "header",
3304
+ "description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
3305
+ "schema": {
3306
+ "enum": [
3307
+ 1,
3308
+ 2,
3309
+ 3,
3310
+ 4,
3311
+ 5,
3312
+ 6
3313
+ ],
3314
+ "type": "integer",
3315
+ "format": "int32",
3316
+ "default": 3,
3317
+ "x-enumNames": [
3318
+ "EngineerMobile",
3319
+ "CustomerMobile",
3320
+ "MainWeb",
3321
+ "AdminWeb",
3322
+ "Api",
3323
+ "PlateWeb"
3324
+ ]
3325
+ }
3326
+ }
3327
+ ],
3328
+ "responses": {
3329
+ "200": {
3330
+ "description": "Отчет по отработанному времени.",
3331
+ "content": {
3332
+ "text/plain": {
3333
+ "schema": {
3334
+ "type": "array",
3335
+ "items": {
3336
+ "$ref": "#/components/schemas/ResultsWorkingTimeWorkingTimeResult"
3337
+ }
3338
+ }
3339
+ },
3340
+ "application/json": {
3341
+ "schema": {
3342
+ "type": "array",
3343
+ "items": {
3344
+ "$ref": "#/components/schemas/ResultsWorkingTimeWorkingTimeResult"
3345
+ }
3346
+ }
3347
+ },
3348
+ "text/json": {
3349
+ "schema": {
3350
+ "type": "array",
3351
+ "items": {
3352
+ "$ref": "#/components/schemas/ResultsWorkingTimeWorkingTimeResult"
3353
+ }
3354
+ }
3355
+ }
3356
+ }
3357
+ },
3358
+ "204": {
3359
+ "description": "Данные не найдены."
3360
+ },
3361
+ "206": {
3362
+ "description": "Частичный ответ при использовании Range-заголовка."
3363
+ },
3364
+ "401": {
3365
+ "description": "Отсутствует или некорректен Bearer-токен."
3366
+ },
3367
+ "400": {
3368
+ "description": "Некорректный параметр groupByPeriod."
3369
+ },
3370
+ "403": {
3371
+ "description": "Недостаточно прав для просмотра отчета."
3372
+ }
3373
+ },
3374
+ "security": [
3375
+ {
3376
+ "Bearer": [ ]
3377
+ }
3378
+ ]
3379
+ }
3380
+ }
3381
+ },
3382
+ "components": {
3383
+ "schemas": {
3384
+ "ApiEnumsDatePart": {
3385
+ "enum": [
3386
+ "Year",
3387
+ "Quarter",
3388
+ "Month",
3389
+ "Day",
3390
+ "Week",
3391
+ "Second",
3392
+ "Minute",
3393
+ "Hour"
3394
+ ],
3395
+ "type": "string"
3396
+ },
3397
+ "AspNetCoreResultsAssetResult": {
3398
+ "type": "object",
3399
+ "properties": {
3400
+ "id": {
3401
+ "type": "integer",
3402
+ "format": "int32"
3403
+ },
3404
+ "name": {
3405
+ "type": "string",
3406
+ "nullable": true
3407
+ },
3408
+ "host": {
3409
+ "$ref": "#/components/schemas/IdNameDeletedResultOfInt"
3410
+ },
3411
+ "deleted": {
3412
+ "type": "string",
3413
+ "format": "date-time",
3414
+ "nullable": true
3415
+ },
3416
+ "parentID": {
3417
+ "type": "integer",
3418
+ "format": "int32",
3419
+ "nullable": true
3420
+ }
3421
+ },
3422
+ "additionalProperties": false
3423
+ },
3424
+ "AspNetCoreResultsUserResult": {
3425
+ "type": "object",
3426
+ "properties": {
3427
+ "id": {
3428
+ "type": "integer",
3429
+ "format": "int32",
3430
+ "nullable": true
3431
+ },
3432
+ "firstName": {
3433
+ "type": "string",
3434
+ "nullable": true
3435
+ },
3436
+ "lastName": {
3437
+ "type": "string",
3438
+ "nullable": true
3439
+ },
3440
+ "middleName": {
3441
+ "type": "string",
3442
+ "nullable": true
3443
+ },
3444
+ "avatarUrl": {
3445
+ "type": "string",
3446
+ "nullable": true
3447
+ },
3448
+ "deleted": {
3449
+ "type": "string",
3450
+ "format": "date-time",
3451
+ "nullable": true
3452
+ }
3453
+ },
3454
+ "additionalProperties": false
3455
+ },
3456
+ "CommonResultsPeriodResult": {
3457
+ "type": "object",
3458
+ "properties": {
3459
+ "from": {
3460
+ "type": "string",
3461
+ "format": "date-time",
3462
+ "nullable": true
3463
+ },
3464
+ "till": {
3465
+ "type": "string",
3466
+ "format": "date-time",
3467
+ "nullable": true
3468
+ }
3469
+ },
3470
+ "additionalProperties": false
3471
+ },
3472
+ "IdNameDeletedResultOfInt": {
3473
+ "type": "object",
3474
+ "properties": {
3475
+ "id": {
3476
+ "type": "integer",
3477
+ "format": "int32"
3478
+ },
3479
+ "name": {
3480
+ "type": "string",
3481
+ "nullable": true
3482
+ },
3483
+ "deleted": {
3484
+ "type": "string",
3485
+ "format": "date-time",
3486
+ "nullable": true
3487
+ }
3488
+ },
3489
+ "additionalProperties": false
3490
+ },
3491
+ "IdNameResultOfByte": {
3492
+ "type": "object",
3493
+ "properties": {
3494
+ "id": {
3495
+ "type": "integer",
3496
+ "format": "int32"
3497
+ },
3498
+ "name": {
3499
+ "type": "string",
3500
+ "nullable": true
3501
+ }
3502
+ },
3503
+ "additionalProperties": false
3504
+ },
3505
+ "IdNameResultOfInt": {
3506
+ "type": "object",
3507
+ "properties": {
3508
+ "id": {
3509
+ "type": "integer",
3510
+ "format": "int32"
3511
+ },
3512
+ "name": {
3513
+ "type": "string",
3514
+ "nullable": true
3515
+ }
3516
+ },
3517
+ "additionalProperties": false
3518
+ },
3519
+ "IdNameResultOfShort": {
3520
+ "type": "object",
3521
+ "properties": {
3522
+ "id": {
3523
+ "type": "integer",
3524
+ "format": "int32"
3525
+ },
3526
+ "name": {
3527
+ "type": "string",
3528
+ "nullable": true
3529
+ }
3530
+ },
3531
+ "additionalProperties": false
3532
+ },
3533
+ "ResultsAssetMaintenancePlannedMaintenanceResult": {
3534
+ "type": "object",
3535
+ "properties": {
3536
+ "taskTemplateID": {
3537
+ "type": "string",
3538
+ "description": "Идентификатор шаблона заявки",
3539
+ "nullable": true
3540
+ },
3541
+ "appointment": {
3542
+ "type": "string",
3543
+ "description": "Метка времени (UTC) события",
3544
+ "format": "date-time"
3545
+ },
3546
+ "normalWorkingHours": {
3547
+ "type": "integer",
3548
+ "description": "Трудозатраты в нормочасах",
3549
+ "format": "int32"
3550
+ },
3551
+ "normalWorkingMinutes": {
3552
+ "type": "integer",
3553
+ "description": "Трудозатраты в нормоминутах",
3554
+ "format": "int32"
3555
+ },
3556
+ "workType": {
3557
+ "$ref": "#/components/schemas/IdNameResultOfShort"
3558
+ },
3559
+ "taskType": {
3560
+ "$ref": "#/components/schemas/IdNameResultOfByte"
3561
+ },
3562
+ "frequencyType": {
3563
+ "$ref": "#/components/schemas/IdNameResultOfByte"
3564
+ },
3565
+ "assetClass": {
3566
+ "$ref": "#/components/schemas/IdNameResultOfByte"
3567
+ },
3568
+ "assetType": {
3569
+ "$ref": "#/components/schemas/IdNameResultOfByte"
3570
+ },
3571
+ "asset": {
3572
+ "$ref": "#/components/schemas/AspNetCoreResultsAssetResult"
3573
+ }
3574
+ },
3575
+ "additionalProperties": false,
3576
+ "description": "Запланированное обслуживание"
3577
+ },
3578
+ "ResultsBaseBaseListTimeResult": {
3579
+ "type": "object",
3580
+ "properties": {
3581
+ "totalMinutes": {
3582
+ "type": "integer",
3583
+ "description": "общее количество минут",
3584
+ "format": "int32"
3585
+ },
3586
+ "averageMinutes": {
3587
+ "type": "number",
3588
+ "description": "Среднее количество минут",
3589
+ "format": "double"
3590
+ }
3591
+ },
3592
+ "additionalProperties": false,
3593
+ "description": "Модель по кол-ву минут"
3594
+ },
3595
+ "ResultsCompletionTimeCompletionTimeResult": {
3596
+ "type": "object",
3597
+ "properties": {
3598
+ "period": {
3599
+ "$ref": "#/components/schemas/CommonResultsPeriodResult"
3600
+ },
3601
+ "completionTime": {
3602
+ "$ref": "#/components/schemas/ResultsBaseBaseListTimeResult"
3603
+ }
3604
+ },
3605
+ "additionalProperties": false,
3606
+ "description": "Модель для отчетов по времени закрытию заявки"
3607
+ },
3608
+ "ResultsPowerBICustomReportsCustomReportList": {
3609
+ "type": "object",
3610
+ "properties": {
3611
+ "name": {
3612
+ "type": "string",
3613
+ "description": "Название отчета",
3614
+ "nullable": true
3615
+ },
3616
+ "reportID": {
3617
+ "type": "string",
3618
+ "description": "Идентификатор отчета",
3619
+ "nullable": true
3620
+ },
3621
+ "reportType": {
3622
+ "$ref": "#/components/schemas/IdNameResultOfByte"
3623
+ }
3624
+ },
3625
+ "additionalProperties": false,
3626
+ "description": "Результат получения списка кастомных отчетов powerbi"
3627
+ },
3628
+ "ResultsReactionTimeReactionTimeResult": {
3629
+ "type": "object",
3630
+ "properties": {
3631
+ "period": {
3632
+ "$ref": "#/components/schemas/CommonResultsPeriodResult"
3633
+ },
3634
+ "reactionTime": {
3635
+ "$ref": "#/components/schemas/ResultsBaseBaseListTimeResult"
3636
+ }
3637
+ },
3638
+ "additionalProperties": false,
3639
+ "description": "Модель для отчета по времени реакции на заявку"
3640
+ },
3641
+ "ResultsTaskListGroupByAssetsTasksListGroupByAssetsResult": {
3642
+ "type": "object",
3643
+ "properties": {
3644
+ "activeTasksCount": {
3645
+ "type": "integer",
3646
+ "description": "Количество активных заявок",
3647
+ "format": "int32"
3648
+ },
3649
+ "outdatedTasksCount": {
3650
+ "type": "integer",
3651
+ "description": "Количество просроченных заявок",
3652
+ "format": "int32"
3653
+ },
3654
+ "undefinedTasksCount": {
3655
+ "type": "integer",
3656
+ "description": "Количество неопределенных заявок",
3657
+ "format": "int32"
3658
+ },
3659
+ "total": {
3660
+ "type": "integer",
3661
+ "description": "Общее количество заявок",
3662
+ "format": "int32",
3663
+ "readOnly": true
3664
+ },
3665
+ "asset": {
3666
+ "$ref": "#/components/schemas/IdNameResultOfInt"
3667
+ }
3668
+ },
3669
+ "additionalProperties": false,
3670
+ "description": "Модель списка отчета по заявкам, сгруппированного по оборудованию"
3671
+ },
3672
+ "ResultsTaskListGroupByAssigneesTaskListGroupByAssigneesResult": {
3673
+ "type": "object",
3674
+ "properties": {
3675
+ "activeTasksCount": {
3676
+ "type": "integer",
3677
+ "description": "Количество активных заявок",
3678
+ "format": "int32"
3679
+ },
3680
+ "outdatedTasksCount": {
3681
+ "type": "integer",
3682
+ "description": "Количество просроченных заявок",
3683
+ "format": "int32"
3684
+ },
3685
+ "undefinedTasksCount": {
3686
+ "type": "integer",
3687
+ "description": "Количество неопределенных заявок",
3688
+ "format": "int32"
3689
+ },
3690
+ "total": {
3691
+ "type": "integer",
3692
+ "description": "Общее количество заявок",
3693
+ "format": "int32",
3694
+ "readOnly": true
3695
+ },
3696
+ "assignee": {
3697
+ "$ref": "#/components/schemas/AspNetCoreResultsUserResult"
3698
+ }
3699
+ },
3700
+ "additionalProperties": false,
3701
+ "description": "Модель списка отчета по заявкам, сгруппированного по исполнителям"
3702
+ },
3703
+ "ResultsTaskListGroupByCompaniesTaskListGroupByCompaniesResult": {
3704
+ "type": "object",
3705
+ "properties": {
3706
+ "activeTasksCount": {
3707
+ "type": "integer",
3708
+ "description": "Количество активных заявок",
3709
+ "format": "int32"
3710
+ },
3711
+ "outdatedTasksCount": {
3712
+ "type": "integer",
3713
+ "description": "Количество просроченных заявок",
3714
+ "format": "int32"
3715
+ },
3716
+ "undefinedTasksCount": {
3717
+ "type": "integer",
3718
+ "description": "Количество неопределенных заявок",
3719
+ "format": "int32"
3720
+ },
3721
+ "total": {
3722
+ "type": "integer",
3723
+ "description": "Общее количество заявок",
3724
+ "format": "int32",
3725
+ "readOnly": true
3726
+ },
3727
+ "company": {
3728
+ "$ref": "#/components/schemas/IdNameResultOfInt"
3729
+ }
3730
+ },
3731
+ "additionalProperties": false,
3732
+ "description": "Модель списка отчета по заявкам, сгруппированным по компаниям"
3733
+ },
3734
+ "ResultsTaskListGroupByStagesTaskListGroupByStagesResult": {
3735
+ "type": "object",
3736
+ "properties": {
3737
+ "activeTasksCount": {
3738
+ "type": "integer",
3739
+ "description": "Количество активных заявок",
3740
+ "format": "int32"
3741
+ },
3742
+ "outdatedTasksCount": {
3743
+ "type": "integer",
3744
+ "description": "Количество просроченных заявок",
3745
+ "format": "int32"
3746
+ },
3747
+ "undefinedTasksCount": {
3748
+ "type": "integer",
3749
+ "description": "Количество неопределенных заявок",
3750
+ "format": "int32"
3751
+ },
3752
+ "total": {
3753
+ "type": "integer",
3754
+ "description": "Общее количество заявок",
3755
+ "format": "int32",
3756
+ "readOnly": true
3757
+ },
3758
+ "taskStage": {
3759
+ "$ref": "#/components/schemas/ResultsTaskListGroupByStagesTaskStageResult"
3760
+ }
3761
+ },
3762
+ "additionalProperties": false,
3763
+ "description": "Модель списка отчета по заявкам , сгруппированным по стадиям"
3764
+ },
3765
+ "ResultsTaskListGroupByStagesTaskStageResult": {
3766
+ "type": "object",
3767
+ "properties": {
3768
+ "id": {
3769
+ "type": "integer",
3770
+ "format": "int32"
3771
+ },
3772
+ "name": {
3773
+ "type": "string",
3774
+ "nullable": true
3775
+ },
3776
+ "color": {
3777
+ "type": "string",
3778
+ "description": "Цвет",
3779
+ "nullable": true
3780
+ }
3781
+ },
3782
+ "additionalProperties": false,
3783
+ "description": "Модель данных стадиям заявки"
3784
+ },
3785
+ "ResultsTaskListGroupByWorkTypesTaskListGroupByWorkTypesResult": {
3786
+ "type": "object",
3787
+ "properties": {
3788
+ "activeTasksCount": {
3789
+ "type": "integer",
3790
+ "description": "Количество активных заявок",
3791
+ "format": "int32"
3792
+ },
3793
+ "outdatedTasksCount": {
3794
+ "type": "integer",
3795
+ "description": "Количество просроченных заявок",
3796
+ "format": "int32"
3797
+ },
3798
+ "undefinedTasksCount": {
3799
+ "type": "integer",
3800
+ "description": "Количество неопределенных заявок",
3801
+ "format": "int32"
3802
+ },
3803
+ "total": {
3804
+ "type": "integer",
3805
+ "description": "Общее количество заявок",
3806
+ "format": "int32",
3807
+ "readOnly": true
3808
+ },
3809
+ "workType": {
3810
+ "$ref": "#/components/schemas/IdNameResultOfInt"
3811
+ }
3812
+ },
3813
+ "additionalProperties": false,
3814
+ "description": "Модель списка отчета по заявкам, сгруппированного по видам работ"
3815
+ },
3816
+ "ResultsWorkingTimeWorkingTimeResult": {
3817
+ "type": "object",
3818
+ "properties": {
3819
+ "period": {
3820
+ "$ref": "#/components/schemas/CommonResultsPeriodResult"
3821
+ },
3822
+ "workingTime": {
3823
+ "$ref": "#/components/schemas/ResultsBaseBaseListTimeResult"
3824
+ }
3825
+ },
3826
+ "additionalProperties": false,
3827
+ "description": "Модель для отчетов по суммарному и среднему рабочему времени по заявкам"
3828
+ }
3829
+ },
3830
+ "securitySchemes": {
3831
+ "Bearer": {
3832
+ "type": "http",
3833
+ "description": "Введите токен для авторизации",
3834
+ "scheme": "Bearer",
3835
+ "bearerFormat": "JWT"
3836
+ }
3837
+ }
3838
+ },
3839
+ "tags": [
3840
+ {
3841
+ "name": "AssetMaintenance",
3842
+ "description": "Выгрузка по обслуживанию объъектов"
3843
+ },
3844
+ {
3845
+ "name": "CompletionTime",
3846
+ "description": "Контроллер управления отчетом по суммарному и среднему времени отработки заявок, сгруппированным по периоду"
3847
+ },
3848
+ {
3849
+ "name": "PowerBICustomReports",
3850
+ "description": "Контроллер управления кастомными отчетами PowerBI"
3851
+ },
3852
+ {
3853
+ "name": "ReactionTime",
3854
+ "description": "Контроллер управления отчетом по суммарному и среднему времени реакции по заявкам, сгруппированным по периоду"
3855
+ },
3856
+ {
3857
+ "name": "TasksByAssets",
3858
+ "description": "Контроллер управления отчетом по заявкам, сгруппированным по оборудованию"
3859
+ },
3860
+ {
3861
+ "name": "TasksByAssignees",
3862
+ "description": "Контроллер управления отчетом по заявкам, сгруппированным по исполнителям"
3863
+ },
3864
+ {
3865
+ "name": "TasksByCompanies",
3866
+ "description": "Контроллер управления отчетом по заявкам, сгруппированным по компаниям"
3867
+ },
3868
+ {
3869
+ "name": "TasksByStages",
3870
+ "description": "Контроллер управления отчетом по заявкам сгруппированным по стадиям"
3871
+ },
3872
+ {
3873
+ "name": "TasksByWorkTypes",
3874
+ "description": "Заявки по видам работ"
3875
+ },
3876
+ {
3877
+ "name": "WorkingTime",
3878
+ "description": "Контроллер управления отчетом по суммарному и среднему отработанному времени по заявокам, сгруппированным по периоду"
3879
+ },
3880
+ {
3881
+ "name": "AssetMaintenance",
3882
+ "description": "Выгрузка по обслуживанию объъектов"
3883
+ },
3884
+ {
3885
+ "name": "CompletionTime",
3886
+ "description": "Контроллер управления отчетом по суммарному и среднему времени отработки заявок, сгруппированным по периоду"
3887
+ },
3888
+ {
3889
+ "name": "PowerBICustomReports",
3890
+ "description": "Контроллер управления кастомными отчетами PowerBI"
3891
+ },
3892
+ {
3893
+ "name": "ReactionTime",
3894
+ "description": "Контроллер управления отчетом по суммарному и среднему времени реакции по заявкам, сгруппированным по периоду"
3895
+ },
3896
+ {
3897
+ "name": "TasksByAssets",
3898
+ "description": "Контроллер управления отчетом по заявкам, сгруппированным по оборудованию"
3899
+ },
3900
+ {
3901
+ "name": "TasksByAssignees",
3902
+ "description": "Контроллер управления отчетом по заявкам, сгруппированным по исполнителям"
3903
+ },
3904
+ {
3905
+ "name": "TasksByCompanies",
3906
+ "description": "Контроллер управления отчетом по заявкам, сгруппированным по компаниям"
3907
+ },
3908
+ {
3909
+ "name": "TasksByStages",
3910
+ "description": "Контроллер управления отчетом по заявкам сгруппированным по стадиям"
3911
+ },
3912
+ {
3913
+ "name": "TasksByWorkTypes",
3914
+ "description": "Заявки по видам работ"
3915
+ },
3916
+ {
3917
+ "name": "WorkingTime",
3918
+ "description": "Контроллер управления отчетом по суммарному и среднему отработанному времени по заявокам, сгруппированным по периоду"
3919
+ }
3920
+ ]
3921
+ }