@hubex/mcp 0.5.0 → 0.6.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.
@@ -23,31 +23,6 @@
23
23
  "summary": "Возвращает список типов повторений расписаний.",
24
24
  "description": "## Пример запроса:\r\n```text\r\nGET /FrequencyTypes\r\nAuthorization: Bearer <token>\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"1\": {\r\n \"id\": 1,\r\n \"code\": \"DAILY\",\r\n \"name\": \"Ежедневно\"\r\n },\r\n \"2\": {\r\n \"id\": 2,\r\n \"code\": \"WEEKLY\",\r\n \"name\": \"Еженедельно\"\r\n }\r\n}\r\n```\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — типы повторений не найдены.",
25
25
  "parameters": [
26
- {
27
- "name": "scheduleID",
28
- "in": "path",
29
- "required": true,
30
- "schema": {
31
- "type": "integer",
32
- "format": "int32"
33
- }
34
- },
35
- {
36
- "name": "dateFrom",
37
- "in": "query",
38
- "schema": {
39
- "type": "string",
40
- "format": "date-time"
41
- }
42
- },
43
- {
44
- "name": "dateTill",
45
- "in": "query",
46
- "schema": {
47
- "type": "string",
48
- "format": "date-time"
49
- }
50
- },
51
26
  {
52
27
  "name": "X-Application-ID",
53
28
  "in": "header",
@@ -128,8 +103,123 @@
128
103
  "ScheduledTasks"
129
104
  ],
130
105
  "summary": "Возвращает список шаблонов плановых заявок.",
131
- "description": "Поддерживает фильтрацию по query-параметрам и постраничную выборку через заголовок `Range`.\r\n \r\n## Пример запроса:\r\n```text\r\nGET /ScheduledTasks?assetID=501&scheduleID=1&dateRangeFrom=2026-08-01T00:00:00Z&dateRangeTill=2026-08-31T23:59:59Z&isAssigned=false\r\nAuthorization: Bearer <token>\r\nRange: Offset=0; Fetch=50\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"1\": {\r\n \"taskTemplateID\": \"550e8400-e29b-41d4-a716-446655440000\",\r\n \"name\": \"Плановое ТО насоса\",\r\n \"description\": \"Ежемесячное техническое обслуживание\",\r\n \"notes\": \"Проверить давление\",\r\n \"sortOrder\": 0\r\n }\r\n}\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит только часть диапазона.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — плановые заявки по указанным фильтрам не найдены.\r\n- 400 — некорректные параметры фильтрации.",
106
+ "description": "Поддерживает фильтрацию по query-параметрам и постраничную выборку через заголовок `Range`.\r\n \r\n## Пример запроса:\r\n```text\r\nGET /ScheduledTasks?assetID=501&scheduleID=1&dateRangeFrom=2026-08-01T00:00:00Z&dateRangeTill=2026-08-31T23:59:59Z&isAssigned=false\r\nAuthorization: Bearer <token>\r\nRange: items=0-49\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"1\": {\r\n \"taskTemplateID\": \"550e8400-e29b-41d4-a716-446655440000\",\r\n \"name\": \"Плановое ТО насоса\",\r\n \"description\": \"Ежемесячное техническое обслуживание\",\r\n \"notes\": \"Проверить давление\",\r\n \"sortOrder\": 0\r\n }\r\n}\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит только часть диапазона.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — плановые заявки по указанным фильтрам не найдены.\r\n- 400 — некорректные параметры фильтрации.",
132
107
  "parameters": [
108
+ {
109
+ "name": "Range",
110
+ "in": "header",
111
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
112
+ "schema": {
113
+ "type": "string"
114
+ }
115
+ },
116
+ {
117
+ "name": "offset",
118
+ "in": "query",
119
+ "description": "количество элементов, которое нобходимо пропустить",
120
+ "schema": {
121
+ "type": "string"
122
+ }
123
+ },
124
+ {
125
+ "name": "fetch",
126
+ "in": "query",
127
+ "description": "количество элементов, которое необходимо вернуть",
128
+ "schema": {
129
+ "type": "string"
130
+ }
131
+ },
132
+ {
133
+ "name": "assetID",
134
+ "in": "query",
135
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
136
+ "schema": {
137
+ "type": "integer",
138
+ "format": "int32"
139
+ }
140
+ },
141
+ {
142
+ "name": "taskTypeID",
143
+ "in": "query",
144
+ "description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
145
+ "schema": {
146
+ "type": "integer",
147
+ "format": "int32"
148
+ }
149
+ },
150
+ {
151
+ "name": "workTypeID",
152
+ "in": "query",
153
+ "description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
154
+ "schema": {
155
+ "type": "integer",
156
+ "format": "int32"
157
+ }
158
+ },
159
+ {
160
+ "name": "criticalityID",
161
+ "in": "query",
162
+ "description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
163
+ "schema": {
164
+ "type": "integer",
165
+ "format": "int32"
166
+ }
167
+ },
168
+ {
169
+ "name": "userID",
170
+ "in": "query",
171
+ "description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
172
+ "schema": {
173
+ "type": "integer",
174
+ "format": "int32"
175
+ }
176
+ },
177
+ {
178
+ "name": "scheduleID",
179
+ "in": "query",
180
+ "description": "Идентификаторы расписания, по которым будет отфильтрован результат",
181
+ "schema": {
182
+ "type": "integer",
183
+ "format": "int32"
184
+ }
185
+ },
186
+ {
187
+ "name": "appointmentID",
188
+ "in": "query",
189
+ "description": "Идентификаторы точек срабатывания расписания, по которым будет отфильтрован результат",
190
+ "schema": {
191
+ "type": "integer",
192
+ "format": "int32"
193
+ }
194
+ },
195
+ {
196
+ "name": "dateRangeFrom",
197
+ "in": "query",
198
+ "description": "Начальный период фильтрации по сроку заявки",
199
+ "schema": {
200
+ "type": "string",
201
+ "format": "date-time",
202
+ "nullable": true
203
+ }
204
+ },
205
+ {
206
+ "name": "dateRangeTill",
207
+ "in": "query",
208
+ "description": "Конечный период фильтрации по сроку заявки",
209
+ "schema": {
210
+ "type": "string",
211
+ "format": "date-time",
212
+ "nullable": true
213
+ }
214
+ },
215
+ {
216
+ "name": "isAssigned",
217
+ "in": "query",
218
+ "description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
219
+ "schema": {
220
+ "type": "boolean"
221
+ }
222
+ },
133
223
  {
134
224
  "name": "X-Application-ID",
135
225
  "in": "header",
@@ -293,6 +383,95 @@
293
383
  "summary": "Возвращает заголовок с количеством шаблонов плановых заявок.",
294
384
  "description": "## Пример запроса:\r\n```text\r\nHEAD /ScheduledTasks?assetID=501&dateRangeFrom=2026-08-01T00:00:00Z&dateRangeTill=2026-08-31T23:59:59Z\r\nAuthorization: Bearer <token>\r\n```\r\n \r\n## Пример успешного ответа (200):\r\nТело ответа отсутствует. В заголовке `Content-Range` возвращается общее количество записей в формате `items 0-0/{totalRowsCount}`.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 400 — некорректные параметры фильтрации.",
295
385
  "parameters": [
386
+ {
387
+ "name": "assetID",
388
+ "in": "query",
389
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
390
+ "schema": {
391
+ "type": "integer",
392
+ "format": "int32"
393
+ }
394
+ },
395
+ {
396
+ "name": "taskTypeID",
397
+ "in": "query",
398
+ "description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
399
+ "schema": {
400
+ "type": "integer",
401
+ "format": "int32"
402
+ }
403
+ },
404
+ {
405
+ "name": "workTypeID",
406
+ "in": "query",
407
+ "description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
408
+ "schema": {
409
+ "type": "integer",
410
+ "format": "int32"
411
+ }
412
+ },
413
+ {
414
+ "name": "criticalityID",
415
+ "in": "query",
416
+ "description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
417
+ "schema": {
418
+ "type": "integer",
419
+ "format": "int32"
420
+ }
421
+ },
422
+ {
423
+ "name": "userID",
424
+ "in": "query",
425
+ "description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
426
+ "schema": {
427
+ "type": "integer",
428
+ "format": "int32"
429
+ }
430
+ },
431
+ {
432
+ "name": "scheduleID",
433
+ "in": "query",
434
+ "description": "Идентификаторы расписания, по которым будет отфильтрован результат",
435
+ "schema": {
436
+ "type": "integer",
437
+ "format": "int32"
438
+ }
439
+ },
440
+ {
441
+ "name": "appointmentID",
442
+ "in": "query",
443
+ "description": "Идентификаторы точек срабатывания расписания, по которым будет отфильтрован результат",
444
+ "schema": {
445
+ "type": "integer",
446
+ "format": "int32"
447
+ }
448
+ },
449
+ {
450
+ "name": "dateRangeFrom",
451
+ "in": "query",
452
+ "description": "Начальный период фильтрации по сроку выполнения заявки",
453
+ "schema": {
454
+ "type": "string",
455
+ "format": "date-time"
456
+ }
457
+ },
458
+ {
459
+ "name": "dateRangeTill",
460
+ "in": "query",
461
+ "description": "Конечный период фильтрации по сроку выполнения заявки",
462
+ "schema": {
463
+ "type": "string",
464
+ "format": "date-time"
465
+ }
466
+ },
467
+ {
468
+ "name": "isAssigned",
469
+ "in": "query",
470
+ "description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
471
+ "schema": {
472
+ "type": "boolean"
473
+ }
474
+ },
296
475
  {
297
476
  "name": "X-Application-ID",
298
477
  "in": "header",
@@ -400,6 +579,97 @@
400
579
  "summary": "Возвращает количество плановых заявок по дням с разбивкой по исполнителям.",
401
580
  "description": "## Пример запроса:\r\n```text\r\nGET /ScheduledTasks/count?assetID=501&dateRangeFrom=2026-08-01T00:00:00Z&dateRangeTill=2026-08-31T23:59:59Z\r\nAuthorization: Bearer <token>\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"2026-08-20T00:00:00Z\": [\r\n {\r\n \"userID\": 42,\r\n \"countWithAssign\": 3,\r\n \"countWithoutAssign\": 1\r\n },\r\n {\r\n \"userID\": 0,\r\n \"countWithAssign\": 0,\r\n \"countWithoutAssign\": 2\r\n }\r\n ]\r\n}\r\n```\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — данные по указанным фильтрам не найдены.\r\n- 400 — некорректные параметры фильтрации.",
402
581
  "parameters": [
582
+ {
583
+ "name": "assetID",
584
+ "in": "query",
585
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
586
+ "schema": {
587
+ "type": "integer",
588
+ "format": "int32"
589
+ }
590
+ },
591
+ {
592
+ "name": "taskTypeID",
593
+ "in": "query",
594
+ "description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
595
+ "schema": {
596
+ "type": "integer",
597
+ "format": "int32"
598
+ }
599
+ },
600
+ {
601
+ "name": "workTypeID",
602
+ "in": "query",
603
+ "description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
604
+ "schema": {
605
+ "type": "integer",
606
+ "format": "int32"
607
+ }
608
+ },
609
+ {
610
+ "name": "criticalityID",
611
+ "in": "query",
612
+ "description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
613
+ "schema": {
614
+ "type": "integer",
615
+ "format": "int32"
616
+ }
617
+ },
618
+ {
619
+ "name": "userID",
620
+ "in": "query",
621
+ "description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
622
+ "schema": {
623
+ "type": "integer",
624
+ "format": "int32"
625
+ }
626
+ },
627
+ {
628
+ "name": "scheduleID",
629
+ "in": "query",
630
+ "description": "Идентификаторы расписания, по которым будет отфильтрован результат",
631
+ "schema": {
632
+ "type": "integer",
633
+ "format": "int32"
634
+ }
635
+ },
636
+ {
637
+ "name": "appointmentID",
638
+ "in": "query",
639
+ "description": "Идентификаторы точек срабатывания расписания, по которым будет отфильтрован результат",
640
+ "schema": {
641
+ "type": "integer",
642
+ "format": "int32"
643
+ }
644
+ },
645
+ {
646
+ "name": "dateRangeFrom",
647
+ "in": "query",
648
+ "description": "Начальный период фильтрации по сроку заявки",
649
+ "schema": {
650
+ "type": "string",
651
+ "format": "date-time",
652
+ "nullable": true
653
+ }
654
+ },
655
+ {
656
+ "name": "dateRangeTill",
657
+ "in": "query",
658
+ "description": "Конечный период фильтрации по сроку заявки",
659
+ "schema": {
660
+ "type": "string",
661
+ "format": "date-time",
662
+ "nullable": true
663
+ }
664
+ },
665
+ {
666
+ "name": "isAssigned",
667
+ "in": "query",
668
+ "description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
669
+ "schema": {
670
+ "type": "boolean"
671
+ }
672
+ },
403
673
  {
404
674
  "name": "X-Application-ID",
405
675
  "in": "header",
@@ -545,6 +815,97 @@
545
815
  "summary": "Возвращает агрегированное количество плановых заявок по дням (версия 2).",
546
816
  "description": "## Пример запроса:\r\n```text\r\nGET /ScheduledTasks/v2/count?assetID=501&dateRangeFrom=2026-08-01T00:00:00Z&dateRangeTill=2026-08-31T23:59:59Z\r\nAuthorization: Bearer <token>\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"2026-08-20T00:00:00Z\": [\r\n {\r\n \"countTasksForDay\": 5,\r\n \"countTasksForUsers\": [\r\n {\r\n \"userID\": 42,\r\n \"countWithAssign\": 3,\r\n \"countWithoutAssign\": 0\r\n },\r\n {\r\n \"userID\": 0,\r\n \"countWithAssign\": 0,\r\n \"countWithoutAssign\": 2\r\n }\r\n ]\r\n }\r\n ]\r\n}\r\n```\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — данные по указанным фильтрам не найдены.\r\n- 400 — некорректные параметры фильтрации.",
547
817
  "parameters": [
818
+ {
819
+ "name": "assetID",
820
+ "in": "query",
821
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
822
+ "schema": {
823
+ "type": "integer",
824
+ "format": "int32"
825
+ }
826
+ },
827
+ {
828
+ "name": "taskTypeID",
829
+ "in": "query",
830
+ "description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
831
+ "schema": {
832
+ "type": "integer",
833
+ "format": "int32"
834
+ }
835
+ },
836
+ {
837
+ "name": "workTypeID",
838
+ "in": "query",
839
+ "description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
840
+ "schema": {
841
+ "type": "integer",
842
+ "format": "int32"
843
+ }
844
+ },
845
+ {
846
+ "name": "criticalityID",
847
+ "in": "query",
848
+ "description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
849
+ "schema": {
850
+ "type": "integer",
851
+ "format": "int32"
852
+ }
853
+ },
854
+ {
855
+ "name": "userID",
856
+ "in": "query",
857
+ "description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
858
+ "schema": {
859
+ "type": "integer",
860
+ "format": "int32"
861
+ }
862
+ },
863
+ {
864
+ "name": "scheduleID",
865
+ "in": "query",
866
+ "description": "Идентификаторы расписания, по которым будет отфильтрован результат",
867
+ "schema": {
868
+ "type": "integer",
869
+ "format": "int32"
870
+ }
871
+ },
872
+ {
873
+ "name": "appointmentID",
874
+ "in": "query",
875
+ "description": "Идентификаторы точек срабатывания расписания, по которым будет отфильтрован результат",
876
+ "schema": {
877
+ "type": "integer",
878
+ "format": "int32"
879
+ }
880
+ },
881
+ {
882
+ "name": "dateRangeFrom",
883
+ "in": "query",
884
+ "description": "Начальный период фильтрации по сроку заявки",
885
+ "schema": {
886
+ "type": "string",
887
+ "format": "date-time",
888
+ "nullable": true
889
+ }
890
+ },
891
+ {
892
+ "name": "dateRangeTill",
893
+ "in": "query",
894
+ "description": "Конечный период фильтрации по сроку заявки",
895
+ "schema": {
896
+ "type": "string",
897
+ "format": "date-time",
898
+ "nullable": true
899
+ }
900
+ },
901
+ {
902
+ "name": "isAssigned",
903
+ "in": "query",
904
+ "description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
905
+ "schema": {
906
+ "type": "boolean"
907
+ }
908
+ },
548
909
  {
549
910
  "name": "X-Application-ID",
550
911
  "in": "header",
@@ -690,6 +1051,97 @@
690
1051
  "summary": "Возвращает заголовок с количеством срабатываний шаблонов заявок.",
691
1052
  "description": "## Пример запроса:\r\n```text\r\nHEAD /ScheduledTasks/appointments?assetID=501&dateRangeFrom=2026-08-01T00:00:00Z&dateRangeTill=2026-08-31T23:59:59Z\r\nAuthorization: Bearer <token>\r\n```\r\n \r\n## Пример успешного ответа (200):\r\nТело ответа отсутствует. В заголовке `Content-Range` возвращается общее количество записей в формате `items 0-0/{totalRowsCount}`.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — срабатывания по указанным фильтрам не найдены.\r\n- 400 — некорректные параметры фильтрации.",
692
1053
  "parameters": [
1054
+ {
1055
+ "name": "assetID",
1056
+ "in": "query",
1057
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
1058
+ "schema": {
1059
+ "type": "integer",
1060
+ "format": "int32"
1061
+ }
1062
+ },
1063
+ {
1064
+ "name": "taskTypeID",
1065
+ "in": "query",
1066
+ "description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
1067
+ "schema": {
1068
+ "type": "integer",
1069
+ "format": "int32"
1070
+ }
1071
+ },
1072
+ {
1073
+ "name": "workTypeID",
1074
+ "in": "query",
1075
+ "description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
1076
+ "schema": {
1077
+ "type": "integer",
1078
+ "format": "int32"
1079
+ }
1080
+ },
1081
+ {
1082
+ "name": "criticalityID",
1083
+ "in": "query",
1084
+ "description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
1085
+ "schema": {
1086
+ "type": "integer",
1087
+ "format": "int32"
1088
+ }
1089
+ },
1090
+ {
1091
+ "name": "userID",
1092
+ "in": "query",
1093
+ "description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
1094
+ "schema": {
1095
+ "type": "integer",
1096
+ "format": "int32"
1097
+ }
1098
+ },
1099
+ {
1100
+ "name": "scheduleID",
1101
+ "in": "query",
1102
+ "description": "Идентификаторы расписания, по которым будет отфильтрован результат",
1103
+ "schema": {
1104
+ "type": "integer",
1105
+ "format": "int32"
1106
+ }
1107
+ },
1108
+ {
1109
+ "name": "appointmentID",
1110
+ "in": "query",
1111
+ "description": "Идентификаторы точек срабатывания расписания, по которым будет отфильтрован результат",
1112
+ "schema": {
1113
+ "type": "integer",
1114
+ "format": "int32"
1115
+ }
1116
+ },
1117
+ {
1118
+ "name": "dateRangeFrom",
1119
+ "in": "query",
1120
+ "description": "Начальный период фильтрации по сроку заявки",
1121
+ "schema": {
1122
+ "type": "string",
1123
+ "format": "date-time",
1124
+ "nullable": true
1125
+ }
1126
+ },
1127
+ {
1128
+ "name": "dateRangeTill",
1129
+ "in": "query",
1130
+ "description": "Конечный период фильтрации по сроку заявки",
1131
+ "schema": {
1132
+ "type": "string",
1133
+ "format": "date-time",
1134
+ "nullable": true
1135
+ }
1136
+ },
1137
+ {
1138
+ "name": "isAssigned",
1139
+ "in": "query",
1140
+ "description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
1141
+ "schema": {
1142
+ "type": "boolean"
1143
+ }
1144
+ },
693
1145
  {
694
1146
  "name": "X-Application-ID",
695
1147
  "in": "header",
@@ -787,17 +1239,132 @@
787
1239
  },
788
1240
  "security": [
789
1241
  {
790
- "Bearer": [ ]
791
- }
792
- ]
793
- },
794
- "get": {
795
- "tags": [
796
- "ScheduledTasks"
797
- ],
798
- "summary": "Возвращает список срабатываний шаблонов плановых заявок.",
799
- "description": "Поддерживает фильтрацию по query-параметрам и постраничную выборку через заголовок `Range`.\r\n \r\n## Пример запроса:\r\n```text\r\nGET /ScheduledTasks/appointments?assetID=501&scheduleID=1&dateRangeFrom=2026-08-01T00:00:00Z&dateRangeTill=2026-08-31T23:59:59Z\r\nAuthorization: Bearer <token>\r\nRange: Offset=0; Fetch=50\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"scheduleID\": 1,\r\n \"appointmentID\": 100,\r\n \"appointment\": \"2026-08-20T10:00:00Z\",\r\n \"appointmentWith\": \"2026-08-20T08:00:00Z\",\r\n \"appointmentBy\": \"2026-08-20T18:00:00Z\",\r\n \"assetAssigns\": [\r\n {\r\n \"assetID\": 501,\r\n \"assetName\": \"Насос №1\",\r\n \"sortOrder\": 0,\r\n \"userID\": 42\r\n }\r\n ]\r\n }\r\n]\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит только часть диапазона.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — срабатывания по указанным фильтрам не найдены.\r\n- 400 — некорректные параметры фильтрации.",
800
- "parameters": [
1242
+ "Bearer": [ ]
1243
+ }
1244
+ ]
1245
+ },
1246
+ "get": {
1247
+ "tags": [
1248
+ "ScheduledTasks"
1249
+ ],
1250
+ "summary": "Возвращает список срабатываний шаблонов плановых заявок.",
1251
+ "description": "Поддерживает фильтрацию по query-параметрам и постраничную выборку через заголовок `Range`.\r\n \r\n## Пример запроса:\r\n```text\r\nGET /ScheduledTasks/appointments?assetID=501&scheduleID=1&dateRangeFrom=2026-08-01T00:00:00Z&dateRangeTill=2026-08-31T23:59:59Z\r\nAuthorization: Bearer <token>\r\nRange: items=0-49\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"scheduleID\": 1,\r\n \"appointmentID\": 100,\r\n \"appointment\": \"2026-08-20T10:00:00Z\",\r\n \"appointmentWith\": \"2026-08-20T08:00:00Z\",\r\n \"appointmentBy\": \"2026-08-20T18:00:00Z\",\r\n \"assetAssigns\": [\r\n {\r\n \"assetID\": 501,\r\n \"assetName\": \"Насос №1\",\r\n \"sortOrder\": 0,\r\n \"userID\": 42\r\n }\r\n ]\r\n }\r\n]\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит только часть диапазона.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — срабатывания по указанным фильтрам не найдены.\r\n- 400 — некорректные параметры фильтрации.",
1252
+ "parameters": [
1253
+ {
1254
+ "name": "Range",
1255
+ "in": "header",
1256
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
1257
+ "schema": {
1258
+ "type": "string"
1259
+ }
1260
+ },
1261
+ {
1262
+ "name": "offset",
1263
+ "in": "query",
1264
+ "description": "количество элементов, которое нобходимо пропустить",
1265
+ "schema": {
1266
+ "type": "string"
1267
+ }
1268
+ },
1269
+ {
1270
+ "name": "fetch",
1271
+ "in": "query",
1272
+ "description": "количество элементов, которое необходимо вернуть",
1273
+ "schema": {
1274
+ "type": "string"
1275
+ }
1276
+ },
1277
+ {
1278
+ "name": "assetID",
1279
+ "in": "query",
1280
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
1281
+ "schema": {
1282
+ "type": "integer",
1283
+ "format": "int32"
1284
+ }
1285
+ },
1286
+ {
1287
+ "name": "taskTypeID",
1288
+ "in": "query",
1289
+ "description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
1290
+ "schema": {
1291
+ "type": "integer",
1292
+ "format": "int32"
1293
+ }
1294
+ },
1295
+ {
1296
+ "name": "workTypeID",
1297
+ "in": "query",
1298
+ "description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
1299
+ "schema": {
1300
+ "type": "integer",
1301
+ "format": "int32"
1302
+ }
1303
+ },
1304
+ {
1305
+ "name": "criticalityID",
1306
+ "in": "query",
1307
+ "description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
1308
+ "schema": {
1309
+ "type": "integer",
1310
+ "format": "int32"
1311
+ }
1312
+ },
1313
+ {
1314
+ "name": "userID",
1315
+ "in": "query",
1316
+ "description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
1317
+ "schema": {
1318
+ "type": "integer",
1319
+ "format": "int32"
1320
+ }
1321
+ },
1322
+ {
1323
+ "name": "scheduleID",
1324
+ "in": "query",
1325
+ "description": "Идентификаторы расписания, по которым будет отфильтрован результат",
1326
+ "schema": {
1327
+ "type": "integer",
1328
+ "format": "int32"
1329
+ }
1330
+ },
1331
+ {
1332
+ "name": "appointmentID",
1333
+ "in": "query",
1334
+ "description": "Идентификаторы точек срабатывания расписания, по которым будет отфильтрован результат",
1335
+ "schema": {
1336
+ "type": "integer",
1337
+ "format": "int32"
1338
+ }
1339
+ },
1340
+ {
1341
+ "name": "dateRangeFrom",
1342
+ "in": "query",
1343
+ "description": "Начальный период фильтрации по сроку заявки",
1344
+ "schema": {
1345
+ "type": "string",
1346
+ "format": "date-time",
1347
+ "nullable": true
1348
+ }
1349
+ },
1350
+ {
1351
+ "name": "dateRangeTill",
1352
+ "in": "query",
1353
+ "description": "Конечный период фильтрации по сроку заявки",
1354
+ "schema": {
1355
+ "type": "string",
1356
+ "format": "date-time",
1357
+ "nullable": true
1358
+ }
1359
+ },
1360
+ {
1361
+ "name": "isAssigned",
1362
+ "in": "query",
1363
+ "description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
1364
+ "schema": {
1365
+ "type": "boolean"
1366
+ }
1367
+ },
801
1368
  {
802
1369
  "name": "X-Application-ID",
803
1370
  "in": "header",
@@ -961,8 +1528,123 @@
961
1528
  "ScheduledTasks"
962
1529
  ],
963
1530
  "summary": "Возвращает список срабатываний шаблонов плановых заявок (версия 2).",
964
- "description": "Поддерживает фильтрацию по query-параметрам и постраничную выборку через заголовок `Range`.\r\nВ отличие от v1, возвращает несколько исполнителей на объект, а также данные о компании и локации.\r\n \r\n## Пример запроса:\r\n```text\r\nGET /ScheduledTasks/v2/appointments?assetID=501&scheduleID=1&dateRangeFrom=2026-08-01T00:00:00Z&dateRangeTill=2026-08-31T23:59:59Z\r\nAuthorization: Bearer <token>\r\nRange: Offset=0; Fetch=50\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"scheduleID\": 1,\r\n \"appointmentID\": 100,\r\n \"appointment\": \"2026-08-20T10:00:00Z\",\r\n \"appointmentWith\": \"2026-08-20T08:00:00Z\",\r\n \"appointmentBy\": \"2026-08-20T18:00:00Z\",\r\n \"assetAssigns\": [\r\n {\r\n \"assetID\": 501,\r\n \"assetName\": \"Насос №1\",\r\n \"sortOrder\": 0,\r\n \"users\": [42, 43],\r\n \"company\": {\r\n \"id\": 5,\r\n \"name\": \"ООО Ремонт\",\r\n \"deleted\": null\r\n },\r\n \"location\": {\r\n \"id\": 10,\r\n \"address\": \"ул. Примерная, 1\",\r\n \"coordinate\": \"55.7558:37.6173\",\r\n \"description\": \"Цех №1\",\r\n \"deleted\": null\r\n }\r\n }\r\n ]\r\n }\r\n]\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит только часть диапазона.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — срабатывания по указанным фильтрам не найдены.\r\n- 400 — некорректные параметры фильтрации.",
1531
+ "description": "Поддерживает фильтрацию по query-параметрам и постраничную выборку через заголовок `Range`.\r\nВ отличие от v1, возвращает несколько исполнителей на объект, а также данные о компании и локации.\r\n \r\n## Пример запроса:\r\n```text\r\nGET /ScheduledTasks/v2/appointments?assetID=501&scheduleID=1&dateRangeFrom=2026-08-01T00:00:00Z&dateRangeTill=2026-08-31T23:59:59Z\r\nAuthorization: Bearer <token>\r\nRange: items=0-49\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"scheduleID\": 1,\r\n \"appointmentID\": 100,\r\n \"appointment\": \"2026-08-20T10:00:00Z\",\r\n \"appointmentWith\": \"2026-08-20T08:00:00Z\",\r\n \"appointmentBy\": \"2026-08-20T18:00:00Z\",\r\n \"assetAssigns\": [\r\n {\r\n \"assetID\": 501,\r\n \"assetName\": \"Насос №1\",\r\n \"sortOrder\": 0,\r\n \"users\": [42, 43],\r\n \"company\": {\r\n \"id\": 5,\r\n \"name\": \"ООО Ремонт\",\r\n \"deleted\": null\r\n },\r\n \"location\": {\r\n \"id\": 10,\r\n \"address\": \"ул. Примерная, 1\",\r\n \"coordinate\": \"55.7558:37.6173\",\r\n \"description\": \"Цех №1\",\r\n \"deleted\": null\r\n }\r\n }\r\n ]\r\n }\r\n]\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит только часть диапазона.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — срабатывания по указанным фильтрам не найдены.\r\n- 400 — некорректные параметры фильтрации.",
965
1532
  "parameters": [
1533
+ {
1534
+ "name": "Range",
1535
+ "in": "header",
1536
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
1537
+ "schema": {
1538
+ "type": "string"
1539
+ }
1540
+ },
1541
+ {
1542
+ "name": "offset",
1543
+ "in": "query",
1544
+ "description": "количество элементов, которое нобходимо пропустить",
1545
+ "schema": {
1546
+ "type": "string"
1547
+ }
1548
+ },
1549
+ {
1550
+ "name": "fetch",
1551
+ "in": "query",
1552
+ "description": "количество элементов, которое необходимо вернуть",
1553
+ "schema": {
1554
+ "type": "string"
1555
+ }
1556
+ },
1557
+ {
1558
+ "name": "assetID",
1559
+ "in": "query",
1560
+ "description": "Идентификаторы объектов, по которым будет отфильтрован результат",
1561
+ "schema": {
1562
+ "type": "integer",
1563
+ "format": "int32"
1564
+ }
1565
+ },
1566
+ {
1567
+ "name": "taskTypeID",
1568
+ "in": "query",
1569
+ "description": "Идентификаторы типов заявок, по которым будет отфильтрован результат",
1570
+ "schema": {
1571
+ "type": "integer",
1572
+ "format": "int32"
1573
+ }
1574
+ },
1575
+ {
1576
+ "name": "workTypeID",
1577
+ "in": "query",
1578
+ "description": "Идентификаторы видов работ, по которым будет отфильтрован результат",
1579
+ "schema": {
1580
+ "type": "integer",
1581
+ "format": "int32"
1582
+ }
1583
+ },
1584
+ {
1585
+ "name": "criticalityID",
1586
+ "in": "query",
1587
+ "description": "Идентификаторы критичности заявок, по которым будет отфильтрован результат",
1588
+ "schema": {
1589
+ "type": "integer",
1590
+ "format": "int32"
1591
+ }
1592
+ },
1593
+ {
1594
+ "name": "userID",
1595
+ "in": "query",
1596
+ "description": "Идентификаторы пользователей, на которых в текущий момент назначена заявка, по которым будет отфильтрован результат",
1597
+ "schema": {
1598
+ "type": "integer",
1599
+ "format": "int32"
1600
+ }
1601
+ },
1602
+ {
1603
+ "name": "scheduleID",
1604
+ "in": "query",
1605
+ "description": "Идентификаторы расписания, по которым будет отфильтрован результат",
1606
+ "schema": {
1607
+ "type": "integer",
1608
+ "format": "int32"
1609
+ }
1610
+ },
1611
+ {
1612
+ "name": "appointmentID",
1613
+ "in": "query",
1614
+ "description": "Идентификаторы точек срабатывания расписания, по которым будет отфильтрован результат",
1615
+ "schema": {
1616
+ "type": "integer",
1617
+ "format": "int32"
1618
+ }
1619
+ },
1620
+ {
1621
+ "name": "dateRangeFrom",
1622
+ "in": "query",
1623
+ "description": "Начальный период фильтрации по сроку заявки",
1624
+ "schema": {
1625
+ "type": "string",
1626
+ "format": "date-time",
1627
+ "nullable": true
1628
+ }
1629
+ },
1630
+ {
1631
+ "name": "dateRangeTill",
1632
+ "in": "query",
1633
+ "description": "Конечный период фильтрации по сроку заявки",
1634
+ "schema": {
1635
+ "type": "string",
1636
+ "format": "date-time",
1637
+ "nullable": true
1638
+ }
1639
+ },
1640
+ {
1641
+ "name": "isAssigned",
1642
+ "in": "query",
1643
+ "description": "Если true, результат будет содержать только назначенные на кого-либо заявки, если false - только не назначенные",
1644
+ "schema": {
1645
+ "type": "boolean"
1646
+ }
1647
+ },
966
1648
  {
967
1649
  "name": "X-Application-ID",
968
1650
  "in": "header",
@@ -1126,8 +1808,86 @@
1126
1808
  "Schedules"
1127
1809
  ],
1128
1810
  "summary": "Возвращает список назначенных исполнителей для событий расписаний.",
1129
- "description": "Поддерживает фильтрацию по query-параметрам и постраничную выборку через заголовок `Range`.\r\n \r\n## Пример запроса:\r\n```text\r\nGET /Schedules/appointments/assign?assetID=501&userID=42&validFrom=2026-08-01T00:00:00Z&validTill=2026-08-31T23:59:59Z\r\nAuthorization: Bearer <token>\r\nRange: Offset=0; Fetch=50\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"1\": {\r\n \"appointments\": [\r\n {\r\n \"appointmentID\": 100,\r\n \"appointment\": \"2026-08-20T10:00:00Z\",\r\n \"assetAssigns\": [\r\n {\r\n \"assetID\": 501,\r\n \"userID\": 42\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n}\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит только часть диапазона.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — назначения по указанным фильтрам не найдены.\r\n- 400 — некорректные параметры фильтрации.",
1811
+ "description": "Поддерживает фильтрацию по query-параметрам и постраничную выборку через заголовок `Range`.\r\n \r\n## Пример запроса:\r\n```text\r\nGET /Schedules/appointments/assign?assetID=501&userID=42&validFrom=2026-08-01T00:00:00Z&validTill=2026-08-31T23:59:59Z\r\nAuthorization: Bearer <token>\r\nRange: items=0-49\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"1\": {\r\n \"appointments\": [\r\n {\r\n \"appointmentID\": 100,\r\n \"appointment\": \"2026-08-20T10:00:00Z\",\r\n \"assetAssigns\": [\r\n {\r\n \"assetID\": 501,\r\n \"userID\": 42\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n}\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит только часть диапазона.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — назначения по указанным фильтрам не найдены.\r\n- 400 — некорректные параметры фильтрации.",
1130
1812
  "parameters": [
1813
+ {
1814
+ "name": "Range",
1815
+ "in": "header",
1816
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
1817
+ "schema": {
1818
+ "type": "string"
1819
+ }
1820
+ },
1821
+ {
1822
+ "name": "offset",
1823
+ "in": "query",
1824
+ "description": "количество элементов, которое нобходимо пропустить",
1825
+ "schema": {
1826
+ "type": "string"
1827
+ }
1828
+ },
1829
+ {
1830
+ "name": "fetch",
1831
+ "in": "query",
1832
+ "description": "количество элементов, которое необходимо вернуть",
1833
+ "schema": {
1834
+ "type": "string"
1835
+ }
1836
+ },
1837
+ {
1838
+ "name": "assetID",
1839
+ "in": "query",
1840
+ "description": "Объект заявки",
1841
+ "schema": {
1842
+ "type": "integer",
1843
+ "format": "int32"
1844
+ }
1845
+ },
1846
+ {
1847
+ "name": "userID",
1848
+ "in": "query",
1849
+ "description": "Исполнитель",
1850
+ "schema": {
1851
+ "type": "integer",
1852
+ "format": "int32"
1853
+ }
1854
+ },
1855
+ {
1856
+ "name": "scheduleID",
1857
+ "in": "query",
1858
+ "description": "Расписание",
1859
+ "schema": {
1860
+ "type": "integer",
1861
+ "format": "int32"
1862
+ }
1863
+ },
1864
+ {
1865
+ "name": "appointmentID",
1866
+ "in": "query",
1867
+ "description": "Событие расписания",
1868
+ "schema": {
1869
+ "type": "integer",
1870
+ "format": "int32"
1871
+ }
1872
+ },
1873
+ {
1874
+ "name": "validTill",
1875
+ "in": "query",
1876
+ "description": "Отобразить плановые заявки ПО",
1877
+ "schema": {
1878
+ "type": "string",
1879
+ "format": "date-time"
1880
+ }
1881
+ },
1882
+ {
1883
+ "name": "validFrom",
1884
+ "in": "query",
1885
+ "description": "Отобразить плановые заявки С",
1886
+ "schema": {
1887
+ "type": "string",
1888
+ "format": "date-time"
1889
+ }
1890
+ },
1131
1891
  {
1132
1892
  "name": "X-Application-ID",
1133
1893
  "in": "header",
@@ -1529,7 +2289,7 @@
1529
2289
  "Schedules"
1530
2290
  ],
1531
2291
  "summary": "Возвращает список назначенных исполнителей для событий конкретного расписания.",
1532
- "description": "Поддерживает фильтрацию по query-параметрам и постраничную выборку через заголовок `Range`.\r\n \r\n## Пример запроса:\r\n```text\r\nGET /Schedules/1/appointments/assign?assetID=501&userID=42&validFrom=2026-08-01T00:00:00Z&validTill=2026-08-31T23:59:59Z\r\nAuthorization: Bearer <token>\r\nRange: Offset=0; Fetch=50\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"1\": {\r\n \"appointments\": [\r\n {\r\n \"appointmentID\": 100,\r\n \"appointment\": \"2026-08-20T10:00:00Z\",\r\n \"assetAssigns\": [\r\n {\r\n \"assetID\": 501,\r\n \"userID\": 42\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n}\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит только часть диапазона.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — назначения по указанным фильтрам не найдены.\r\n- 400 — некорректные параметры фильтрации.",
2292
+ "description": "Поддерживает фильтрацию по query-параметрам и постраничную выборку через заголовок `Range`.\r\n \r\n## Пример запроса:\r\n```text\r\nGET /Schedules/1/appointments/assign?assetID=501&userID=42&validFrom=2026-08-01T00:00:00Z&validTill=2026-08-31T23:59:59Z\r\nAuthorization: Bearer <token>\r\nRange: items=0-49\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"1\": {\r\n \"appointments\": [\r\n {\r\n \"appointmentID\": 100,\r\n \"appointment\": \"2026-08-20T10:00:00Z\",\r\n \"assetAssigns\": [\r\n {\r\n \"assetID\": 501,\r\n \"userID\": 42\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n}\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит только часть диапазона.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — назначения по указанным фильтрам не найдены.\r\n- 400 — некорректные параметры фильтрации.",
1533
2293
  "parameters": [
1534
2294
  {
1535
2295
  "name": "scheduleID",
@@ -1541,6 +2301,84 @@
1541
2301
  "format": "int32"
1542
2302
  }
1543
2303
  },
2304
+ {
2305
+ "name": "Range",
2306
+ "in": "header",
2307
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
2308
+ "schema": {
2309
+ "type": "string"
2310
+ }
2311
+ },
2312
+ {
2313
+ "name": "offset",
2314
+ "in": "query",
2315
+ "description": "количество элементов, которое нобходимо пропустить",
2316
+ "schema": {
2317
+ "type": "string"
2318
+ }
2319
+ },
2320
+ {
2321
+ "name": "fetch",
2322
+ "in": "query",
2323
+ "description": "количество элементов, которое необходимо вернуть",
2324
+ "schema": {
2325
+ "type": "string"
2326
+ }
2327
+ },
2328
+ {
2329
+ "name": "assetID",
2330
+ "in": "query",
2331
+ "description": "Объект заявки",
2332
+ "schema": {
2333
+ "type": "integer",
2334
+ "format": "int32"
2335
+ }
2336
+ },
2337
+ {
2338
+ "name": "userID",
2339
+ "in": "query",
2340
+ "description": "Исполнитель",
2341
+ "schema": {
2342
+ "type": "integer",
2343
+ "format": "int32"
2344
+ }
2345
+ },
2346
+ {
2347
+ "name": "scheduleID",
2348
+ "in": "query",
2349
+ "description": "Расписание",
2350
+ "schema": {
2351
+ "type": "integer",
2352
+ "format": "int32"
2353
+ }
2354
+ },
2355
+ {
2356
+ "name": "appointmentID",
2357
+ "in": "query",
2358
+ "description": "Событие расписания",
2359
+ "schema": {
2360
+ "type": "integer",
2361
+ "format": "int32"
2362
+ }
2363
+ },
2364
+ {
2365
+ "name": "validTill",
2366
+ "in": "query",
2367
+ "description": "Отобразить плановые заявки ПО",
2368
+ "schema": {
2369
+ "type": "string",
2370
+ "format": "date-time"
2371
+ }
2372
+ },
2373
+ {
2374
+ "name": "validFrom",
2375
+ "in": "query",
2376
+ "description": "Отобразить плановые заявки С",
2377
+ "schema": {
2378
+ "type": "string",
2379
+ "format": "date-time"
2380
+ }
2381
+ },
1544
2382
  {
1545
2383
  "name": "X-Application-ID",
1546
2384
  "in": "header",
@@ -1942,7 +2780,7 @@
1942
2780
  "Schedules"
1943
2781
  ],
1944
2782
  "summary": "Возвращает список событий (точек срабатывания) для расписания.",
1945
- "description": "Поддерживает постраничную выборку через заголовок `Range`.\r\n \r\n## Пример запроса:\r\n```text\r\nGET /Schedules/1/appointments?dateFrom=2026-08-01T00:00:00Z&dateTill=2026-08-31T23:59:59Z\r\nAuthorization: Bearer <token>\r\nRange: Offset=0; Fetch=50\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"id\": 100,\r\n \"appointment\": \"2026-08-20T10:00:00Z\"\r\n },\r\n {\r\n \"id\": 101,\r\n \"appointment\": \"2026-08-21T10:00:00Z\"\r\n }\r\n]\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит только часть диапазона.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — события расписания по указанным параметрам не найдены.",
2783
+ "description": "Поддерживает постраничную выборку через заголовок `Range`.\r\n \r\n## Пример запроса:\r\n```text\r\nGET /Schedules/1/appointments?dateFrom=2026-08-01T00:00:00Z&dateTill=2026-08-31T23:59:59Z\r\nAuthorization: Bearer <token>\r\nRange: items=0-49\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n[\r\n {\r\n \"id\": 100,\r\n \"appointment\": \"2026-08-20T10:00:00Z\"\r\n },\r\n {\r\n \"id\": 101,\r\n \"appointment\": \"2026-08-21T10:00:00Z\"\r\n }\r\n]\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит только часть диапазона.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — события расписания по указанным параметрам не найдены.",
1946
2784
  "parameters": [
1947
2785
  {
1948
2786
  "name": "scheduleID",
@@ -1972,6 +2810,30 @@
1972
2810
  "format": "date-time"
1973
2811
  }
1974
2812
  },
2813
+ {
2814
+ "name": "Range",
2815
+ "in": "header",
2816
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
2817
+ "schema": {
2818
+ "type": "string"
2819
+ }
2820
+ },
2821
+ {
2822
+ "name": "offset",
2823
+ "in": "query",
2824
+ "description": "количество элементов, которое нобходимо пропустить",
2825
+ "schema": {
2826
+ "type": "string"
2827
+ }
2828
+ },
2829
+ {
2830
+ "name": "fetch",
2831
+ "in": "query",
2832
+ "description": "количество элементов, которое необходимо вернуть",
2833
+ "schema": {
2834
+ "type": "string"
2835
+ }
2836
+ },
1975
2837
  {
1976
2838
  "name": "X-Application-ID",
1977
2839
  "in": "header",
@@ -2201,8 +3063,32 @@
2201
3063
  "Schedules"
2202
3064
  ],
2203
3065
  "summary": "Возвращает список расписаний текущего тенанта.",
2204
- "description": "Поддерживает постраничную выборку через заголовок `Range`.\r\n \r\n## Пример запроса:\r\n```text\r\nGET /Schedules\r\nAuthorization: Bearer <token>\r\nRange: Offset=0; Fetch=50\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"1\": {\r\n \"frequencyType\": {\r\n \"id\": 1,\r\n \"name\": \"Ежедневно\"\r\n }\r\n },\r\n \"2\": {\r\n \"frequencyType\": {\r\n \"id\": 2,\r\n \"name\": \"Еженедельно\"\r\n }\r\n }\r\n}\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит только часть диапазона.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — расписания не найдены.",
3066
+ "description": "Поддерживает постраничную выборку через заголовок `Range`.\r\n \r\n## Пример запроса:\r\n```text\r\nGET /Schedules\r\nAuthorization: Bearer <token>\r\nRange: items=0-49\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"1\": {\r\n \"frequencyType\": {\r\n \"id\": 1,\r\n \"name\": \"Ежедневно\"\r\n }\r\n },\r\n \"2\": {\r\n \"frequencyType\": {\r\n \"id\": 2,\r\n \"name\": \"Еженедельно\"\r\n }\r\n }\r\n}\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит только часть диапазона.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — расписания не найдены.",
2205
3067
  "parameters": [
3068
+ {
3069
+ "name": "Range",
3070
+ "in": "header",
3071
+ "description": "Формат: items=FROM-TILL , где FROM - начальный элемент (включая), TILL - конечный элемент (включая)",
3072
+ "schema": {
3073
+ "type": "string"
3074
+ }
3075
+ },
3076
+ {
3077
+ "name": "offset",
3078
+ "in": "query",
3079
+ "description": "количество элементов, которое нобходимо пропустить",
3080
+ "schema": {
3081
+ "type": "string"
3082
+ }
3083
+ },
3084
+ {
3085
+ "name": "fetch",
3086
+ "in": "query",
3087
+ "description": "количество элементов, которое необходимо вернуть",
3088
+ "schema": {
3089
+ "type": "string"
3090
+ }
3091
+ },
2206
3092
  {
2207
3093
  "name": "X-Application-ID",
2208
3094
  "in": "header",
@@ -2410,7 +3296,7 @@
2410
3296
  "description": "## Пример запроса:\r\n```text\r\nGET /Schedules/1\r\nAuthorization: Bearer <token>\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"id\": 1,\r\n \"frequencyType\": {\r\n \"id\": 1,\r\n \"name\": \"Ежедневно\"\r\n },\r\n \"options\": {\r\n \"interval\": 1,\r\n \"timeOfDay\": \"10:00:00\"\r\n }\r\n}\r\n```\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 204 — расписание с указанным идентификатором не найдено.",
2411
3297
  "parameters": [
2412
3298
  {
2413
- "name": "ID",
3299
+ "name": "id",
2414
3300
  "in": "path",
2415
3301
  "description": "Идентификатор расписания.",
2416
3302
  "required": true,
@@ -2491,7 +3377,7 @@
2491
3377
  "description": "## Пример запроса:\r\n```text\r\nDELETE /Schedules/1\r\nAuthorization: Bearer <token>\r\n```\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа отсутствует.\r\n \r\n## Негативные сценарии:\r\n- 401/403 — отсутствие или недостаточность прав доступа.\r\n- 400 — некорректные данные запроса.",
2492
3378
  "parameters": [
2493
3379
  {
2494
- "name": "ID",
3380
+ "name": "id",
2495
3381
  "in": "path",
2496
3382
  "description": "Идентификатор расписания.",
2497
3383
  "required": true,
@@ -3178,7 +4064,7 @@
3178
4064
  },
3179
4065
  {
3180
4066
  "name": "Schedules",
3181
- "description": "Контроллер по управлению исполнителями для событий расписаний"
4067
+ "description": "Контроллер по управлению расписанием"
3182
4068
  },
3183
4069
  {
3184
4070
  "name": "FrequencyTypes",
@@ -3190,7 +4076,7 @@
3190
4076
  },
3191
4077
  {
3192
4078
  "name": "Schedules",
3193
- "description": "Контроллер по управлению исполнителями для событий расписаний"
4079
+ "description": "Контроллер по управлению расписанием"
3194
4080
  }
3195
4081
  ]
3196
4082
  }