@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.
- package/.env.example +54 -0
- package/CONNECTING.md +260 -0
- package/README.md +266 -0
- package/dist/auth.js +226 -0
- package/dist/config.js +120 -0
- package/dist/generated/manifest.js +3643 -0
- package/dist/guides/field-notes.json +27 -0
- package/dist/guides/loader.js +32 -0
- package/dist/guides/service-map.js +6 -0
- package/dist/http.js +93 -0
- package/dist/index/store.js +134 -0
- package/dist/index/types.js +1 -0
- package/dist/index.js +20 -0
- package/dist/paths.js +20 -0
- package/dist/pii/fields.js +100 -0
- package/dist/pii/mask.js +50 -0
- package/dist/pii/strategies.js +88 -0
- package/dist/schema/build-index.js +67 -0
- package/dist/schema/deref.js +87 -0
- package/dist/schema/describe.js +65 -0
- package/dist/server.js +62 -0
- package/dist/token-prompt.js +41 -0
- package/dist/tools/curated.js +151 -0
- package/dist/tools/discovery.js +187 -0
- package/dist/tools/guides.js +126 -0
- package/dist/tools/registry.js +37 -0
- package/dist/tools/request.js +170 -0
- package/dist/tools/types.js +1 -0
- package/docs/guides/assets.md +334 -0
- package/docs/guides/attributes.md +125 -0
- package/docs/guides/checklisttemplates.md +154 -0
- package/docs/guides/companies.md +57 -0
- package/docs/guides/dictionaries.md +64 -0
- package/docs/guides/lifecycle.md +263 -0
- package/docs/guides/materials.md +135 -0
- package/docs/guides/notifications.md +184 -0
- package/docs/guides/roles.md +125 -0
- package/docs/guides/sla.md +130 -0
- package/docs/guides/start.md +67 -0
- package/docs/guides/taskchecklists.md +149 -0
- package/docs/guides/taskcreate.md +260 -0
- package/docs/guides/taskedit.md +277 -0
- package/docs/guides/tasktypes.md +156 -0
- package/docs/guides/users.md +71 -0
- package/generated/index.dev.json +18776 -0
- package/generated/index.prod.json +18858 -0
- package/package.json +48 -0
- package/swagger/dev/ADM.json +27777 -0
- package/swagger/dev/AUTH.json +1739 -0
- package/swagger/dev/AUTHN.json +1250 -0
- package/swagger/dev/AUTHZ.json +1404 -0
- package/swagger/dev/CM.json +309 -0
- package/swagger/dev/COMMON.json +6543 -0
- package/swagger/dev/ES.json +28029 -0
- package/swagger/dev/EXPORT.json +4575 -0
- package/swagger/dev/IMPORT.json +1479 -0
- package/swagger/dev/LIC.json +224 -0
- package/swagger/dev/MSG.json +7883 -0
- package/swagger/dev/NEWS.json +348 -0
- package/swagger/dev/PA.json +5981 -0
- package/swagger/dev/PMP.json +3196 -0
- package/swagger/dev/PROXY.json +416 -0
- package/swagger/dev/REPORT.json +3921 -0
- package/swagger/dev/SC.json +3771 -0
- package/swagger/dev/SLA.json +2837 -0
- package/swagger/dev/TSTG.json +4981 -0
- package/swagger/dev/UI.json +4720 -0
- package/swagger/dev/WH.json +16796 -0
- package/swagger/dev/WORK.json +36024 -0
- package/swagger/dev/WSP.json +1612 -0
- package/swagger/prod/ADM.json +27777 -0
- package/swagger/prod/AUTH.json +1308 -0
- package/swagger/prod/AUTHN.json +2710 -0
- package/swagger/prod/AUTHZ.json +896 -0
- package/swagger/prod/CM.json +162 -0
- package/swagger/prod/COMMON.json +4910 -0
- package/swagger/prod/ES.json +28029 -0
- package/swagger/prod/EXPORT.json +3091 -0
- package/swagger/prod/LIC.json +123 -0
- package/swagger/prod/MSG.json +6239 -0
- package/swagger/prod/NEWS.json +295 -0
- package/swagger/prod/PA.json +5123 -0
- package/swagger/prod/PMP.json +2978 -0
- package/swagger/prod/PROXY.json +250 -0
- package/swagger/prod/REPORT.json +3729 -0
- package/swagger/prod/SC.json +3771 -0
- package/swagger/prod/SLA.json +2201 -0
- package/swagger/prod/TSTG.json +4220 -0
- package/swagger/prod/UI.json +3879 -0
- package/swagger/prod/WH.json +16730 -0
- package/swagger/prod/WORK.json +35994 -0
- package/swagger/prod/WSP.json +1468 -0
|
@@ -0,0 +1,1612 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openapi": "3.0.1",
|
|
3
|
+
"info": {
|
|
4
|
+
"title": "API for work schedule managing for HubEx",
|
|
5
|
+
"description": "Service offers various methods for managing schedule rules and their corresponding attributes.",
|
|
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": "/WSP"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"paths": {
|
|
18
|
+
"/ScheduleRules": {
|
|
19
|
+
"get": {
|
|
20
|
+
"tags": [
|
|
21
|
+
"ScheduleRules"
|
|
22
|
+
],
|
|
23
|
+
"summary": "Возвращает список доступных графиков рабочего времени.",
|
|
24
|
+
"description": "## Пример запроса:\r\n```text\r\nGET /ScheduleRules\r\nAuthorization: Bearer <access-token>\r\nRange: Offset=0; Fetch=50\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"10\": {\r\n \"name\": \"Стандартный график\",\r\n \"description\": \"График работы с 9:00 до 18:00\",\r\n \"scheduleTypeID\": 1,\r\n \"dataFrom\": \"2024-01-01T00:00:00Z\"\r\n }\r\n}\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит частичный диапазон.\r\n \r\n## Негативные сценарии:\r\n- 204 No Content — графики не найдены.\r\n- 401 Unauthorized — отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden — недостаточно прав.",
|
|
25
|
+
"parameters": [
|
|
26
|
+
{
|
|
27
|
+
"name": "X-Application-ID",
|
|
28
|
+
"in": "header",
|
|
29
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
30
|
+
"schema": {
|
|
31
|
+
"enum": [
|
|
32
|
+
1,
|
|
33
|
+
2,
|
|
34
|
+
3,
|
|
35
|
+
4,
|
|
36
|
+
5,
|
|
37
|
+
6
|
|
38
|
+
],
|
|
39
|
+
"type": "integer",
|
|
40
|
+
"format": "int32",
|
|
41
|
+
"default": 3,
|
|
42
|
+
"x-enumNames": [
|
|
43
|
+
"EngineerMobile",
|
|
44
|
+
"CustomerMobile",
|
|
45
|
+
"MainWeb",
|
|
46
|
+
"AdminWeb",
|
|
47
|
+
"Api",
|
|
48
|
+
"PlateWeb"
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"responses": {
|
|
54
|
+
"200": {
|
|
55
|
+
"description": "Список графиков успешно получен.",
|
|
56
|
+
"content": {
|
|
57
|
+
"text/plain": {
|
|
58
|
+
"schema": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"additionalProperties": {
|
|
61
|
+
"$ref": "#/components/schemas/ListResult"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"application/json": {
|
|
66
|
+
"schema": {
|
|
67
|
+
"type": "object",
|
|
68
|
+
"additionalProperties": {
|
|
69
|
+
"$ref": "#/components/schemas/ListResult"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"text/json": {
|
|
74
|
+
"schema": {
|
|
75
|
+
"type": "object",
|
|
76
|
+
"additionalProperties": {
|
|
77
|
+
"$ref": "#/components/schemas/ListResult"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"206": {
|
|
84
|
+
"description": "Возвращена часть списка в пределах диапазона.",
|
|
85
|
+
"content": {
|
|
86
|
+
"text/plain": {
|
|
87
|
+
"schema": {
|
|
88
|
+
"type": "object",
|
|
89
|
+
"additionalProperties": {
|
|
90
|
+
"$ref": "#/components/schemas/ListResult"
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"application/json": {
|
|
95
|
+
"schema": {
|
|
96
|
+
"type": "object",
|
|
97
|
+
"additionalProperties": {
|
|
98
|
+
"$ref": "#/components/schemas/ListResult"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"text/json": {
|
|
103
|
+
"schema": {
|
|
104
|
+
"type": "object",
|
|
105
|
+
"additionalProperties": {
|
|
106
|
+
"$ref": "#/components/schemas/ListResult"
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"204": {
|
|
113
|
+
"description": "Графики не найдены."
|
|
114
|
+
},
|
|
115
|
+
"401": {
|
|
116
|
+
"description": "Токен отсутствует или некорректен."
|
|
117
|
+
},
|
|
118
|
+
"403": {
|
|
119
|
+
"description": "Недостаточно прав."
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"security": [
|
|
123
|
+
{
|
|
124
|
+
"Bearer": [ ]
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
"post": {
|
|
129
|
+
"tags": [
|
|
130
|
+
"ScheduleRules"
|
|
131
|
+
],
|
|
132
|
+
"summary": "Создаёт график рабочего времени.",
|
|
133
|
+
"description": "## Пример запроса:\r\n```json\r\nPOST /ScheduleRules\r\nAuthorization: Bearer <access-token>\r\n \r\n{\r\n \"name\": \"Стандартный график\",\r\n \"description\": \"График работы с 9:00 до 18:00\",\r\n \"isDefault\": false,\r\n \"scheduleTypeID\": 1,\r\n \"from\": \"2024-06-01T00:00:00Z\",\r\n \"till\": \"2024-12-31T23:59:59Z\",\r\n \"considerPublicHolidays\": true,\r\n \"shortageHoursBeforeHoliday\": 1,\r\n \"rules\": [\r\n {\r\n \"cron\": \"0 9 * * 1-5\",\r\n \"occurrenceDuration\": \"08:00:00\"\r\n }\r\n ],\r\n \"overridings\": []\r\n}\r\n```\r\n \r\n## Пример успешного ответа (201):\r\n```json\r\n10\r\n```\r\n \r\n## Негативные сценарии:\r\n- 409 Conflict — некорректные данные модели.\r\n- 401 Unauthorized — отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden — недостаточно прав.",
|
|
134
|
+
"parameters": [
|
|
135
|
+
{
|
|
136
|
+
"name": "X-Application-ID",
|
|
137
|
+
"in": "header",
|
|
138
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
139
|
+
"schema": {
|
|
140
|
+
"enum": [
|
|
141
|
+
1,
|
|
142
|
+
2,
|
|
143
|
+
3,
|
|
144
|
+
4,
|
|
145
|
+
5,
|
|
146
|
+
6
|
|
147
|
+
],
|
|
148
|
+
"type": "integer",
|
|
149
|
+
"format": "int32",
|
|
150
|
+
"default": 3,
|
|
151
|
+
"x-enumNames": [
|
|
152
|
+
"EngineerMobile",
|
|
153
|
+
"CustomerMobile",
|
|
154
|
+
"MainWeb",
|
|
155
|
+
"AdminWeb",
|
|
156
|
+
"Api",
|
|
157
|
+
"PlateWeb"
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
],
|
|
162
|
+
"requestBody": {
|
|
163
|
+
"description": "Данные для создания графика.",
|
|
164
|
+
"content": {
|
|
165
|
+
"application/json-patch+json": {
|
|
166
|
+
"schema": {
|
|
167
|
+
"$ref": "#/components/schemas/ScheduleCreateDto"
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
"application/json": {
|
|
171
|
+
"schema": {
|
|
172
|
+
"$ref": "#/components/schemas/ScheduleCreateDto"
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"text/json": {
|
|
176
|
+
"schema": {
|
|
177
|
+
"$ref": "#/components/schemas/ScheduleCreateDto"
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"application/*+json": {
|
|
181
|
+
"schema": {
|
|
182
|
+
"$ref": "#/components/schemas/ScheduleCreateDto"
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
"responses": {
|
|
188
|
+
"201": {
|
|
189
|
+
"description": "График успешно создан.",
|
|
190
|
+
"content": {
|
|
191
|
+
"text/plain": {
|
|
192
|
+
"schema": {
|
|
193
|
+
"type": "integer",
|
|
194
|
+
"format": "int32"
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
"application/json": {
|
|
198
|
+
"schema": {
|
|
199
|
+
"type": "integer",
|
|
200
|
+
"format": "int32"
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
"text/json": {
|
|
204
|
+
"schema": {
|
|
205
|
+
"type": "integer",
|
|
206
|
+
"format": "int32"
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
"409": {
|
|
212
|
+
"description": "Некорректные данные."
|
|
213
|
+
},
|
|
214
|
+
"401": {
|
|
215
|
+
"description": "Токен отсутствует или некорректен."
|
|
216
|
+
},
|
|
217
|
+
"403": {
|
|
218
|
+
"description": "Недостаточно прав."
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
"security": [
|
|
222
|
+
{
|
|
223
|
+
"Bearer": [ ]
|
|
224
|
+
}
|
|
225
|
+
]
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
"/ScheduleRules/preview": {
|
|
229
|
+
"post": {
|
|
230
|
+
"tags": [
|
|
231
|
+
"ScheduleRules"
|
|
232
|
+
],
|
|
233
|
+
"summary": "Возвращает предпросмотр графика рабочего времени.",
|
|
234
|
+
"description": "## Пример запроса:\r\n```json\r\nPOST /ScheduleRules/preview\r\nAuthorization: Bearer <access-token>\r\n \r\n{\r\n \"from\": \"2024-06-01T00:00:00Z\",\r\n \"till\": \"2024-06-30T23:59:59Z\",\r\n \"considerPublicHolidays\": true,\r\n \"shortageHoursBeforeHoliday\": 1,\r\n \"rules\": [\r\n {\r\n \"cron\": \"0 9 * * 1-5\",\r\n \"occurrenceDuration\": \"08:00:00\"\r\n }\r\n ],\r\n \"overridings\": []\r\n}\r\n```\r\n \r\n## Пример успешного ответа (201):\r\n```json\r\n[\r\n {\r\n \"scheduleRuleID\": 0,\r\n \"timeFrom\": \"2024-06-03T09:00:00Z\",\r\n \"timeTill\": \"2024-06-03T17:00:00Z\",\r\n \"isPublicHoliday\": false,\r\n \"isNightShift\": false,\r\n \"dateWork\": \"2024-06-03T00:00:00Z\"\r\n }\r\n]\r\n```\r\n \r\n## Негативные сценарии:\r\n- 401 Unauthorized — отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden — недостаточно прав.",
|
|
235
|
+
"parameters": [
|
|
236
|
+
{
|
|
237
|
+
"name": "X-Application-ID",
|
|
238
|
+
"in": "header",
|
|
239
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
240
|
+
"schema": {
|
|
241
|
+
"enum": [
|
|
242
|
+
1,
|
|
243
|
+
2,
|
|
244
|
+
3,
|
|
245
|
+
4,
|
|
246
|
+
5,
|
|
247
|
+
6
|
|
248
|
+
],
|
|
249
|
+
"type": "integer",
|
|
250
|
+
"format": "int32",
|
|
251
|
+
"default": 3,
|
|
252
|
+
"x-enumNames": [
|
|
253
|
+
"EngineerMobile",
|
|
254
|
+
"CustomerMobile",
|
|
255
|
+
"MainWeb",
|
|
256
|
+
"AdminWeb",
|
|
257
|
+
"Api",
|
|
258
|
+
"PlateWeb"
|
|
259
|
+
]
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
],
|
|
263
|
+
"requestBody": {
|
|
264
|
+
"description": "Данные для генерации предпросмотра.",
|
|
265
|
+
"content": {
|
|
266
|
+
"application/json-patch+json": {
|
|
267
|
+
"schema": {
|
|
268
|
+
"$ref": "#/components/schemas/ScheduleExtendDto"
|
|
269
|
+
}
|
|
270
|
+
},
|
|
271
|
+
"application/json": {
|
|
272
|
+
"schema": {
|
|
273
|
+
"$ref": "#/components/schemas/ScheduleExtendDto"
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
"text/json": {
|
|
277
|
+
"schema": {
|
|
278
|
+
"$ref": "#/components/schemas/ScheduleExtendDto"
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
"application/*+json": {
|
|
282
|
+
"schema": {
|
|
283
|
+
"$ref": "#/components/schemas/ScheduleExtendDto"
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
"responses": {
|
|
289
|
+
"201": {
|
|
290
|
+
"description": "Предпросмотр успешно сгенерирован.",
|
|
291
|
+
"content": {
|
|
292
|
+
"text/plain": {
|
|
293
|
+
"schema": {
|
|
294
|
+
"type": "array",
|
|
295
|
+
"items": {
|
|
296
|
+
"$ref": "#/components/schemas/WorkScheduleDailyItemResult"
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
"application/json": {
|
|
301
|
+
"schema": {
|
|
302
|
+
"type": "array",
|
|
303
|
+
"items": {
|
|
304
|
+
"$ref": "#/components/schemas/WorkScheduleDailyItemResult"
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
},
|
|
308
|
+
"text/json": {
|
|
309
|
+
"schema": {
|
|
310
|
+
"type": "array",
|
|
311
|
+
"items": {
|
|
312
|
+
"$ref": "#/components/schemas/WorkScheduleDailyItemResult"
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
"401": {
|
|
319
|
+
"description": "Токен отсутствует или некорректен."
|
|
320
|
+
},
|
|
321
|
+
"403": {
|
|
322
|
+
"description": "Недостаточно прав."
|
|
323
|
+
}
|
|
324
|
+
},
|
|
325
|
+
"security": [
|
|
326
|
+
{
|
|
327
|
+
"Bearer": [ ]
|
|
328
|
+
}
|
|
329
|
+
]
|
|
330
|
+
}
|
|
331
|
+
},
|
|
332
|
+
"/ScheduleRules/{id}": {
|
|
333
|
+
"get": {
|
|
334
|
+
"tags": [
|
|
335
|
+
"ScheduleRules"
|
|
336
|
+
],
|
|
337
|
+
"summary": "Возвращает график рабочего времени по идентификатору.",
|
|
338
|
+
"description": "## Пример запроса:\r\n```text\r\nGET /ScheduleRules/10\r\nAuthorization: Bearer <access-token>\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"name\": \"Стандартный график\",\r\n \"description\": \"График работы с 9:00 до 18:00\",\r\n \"scheduleTypeID\": 1,\r\n \"periods\": [\r\n {\r\n \"from\": \"2024-01-01T00:00:00Z\",\r\n \"till\": \"2024-12-31T23:59:59Z\",\r\n \"holidayCalendarID\": 1,\r\n \"shortageHoursBeforeHoliday\": 1,\r\n \"model\": {\r\n \"rules\": [\r\n {\r\n \"cron\": \"0 9 * * 1-5\",\r\n \"occurrenceDuration\": \"08:00:00\"\r\n }\r\n ],\r\n \"overridings\": []\r\n }\r\n }\r\n ]\r\n}\r\n```\r\n \r\n## Негативные сценарии:\r\n- 401 Unauthorized — отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden — недостаточно прав.",
|
|
339
|
+
"parameters": [
|
|
340
|
+
{
|
|
341
|
+
"name": "id",
|
|
342
|
+
"in": "path",
|
|
343
|
+
"description": "Идентификатор правила графика.",
|
|
344
|
+
"required": true,
|
|
345
|
+
"schema": {
|
|
346
|
+
"type": "integer",
|
|
347
|
+
"format": "int32"
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"name": "X-Application-ID",
|
|
352
|
+
"in": "header",
|
|
353
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
354
|
+
"schema": {
|
|
355
|
+
"enum": [
|
|
356
|
+
1,
|
|
357
|
+
2,
|
|
358
|
+
3,
|
|
359
|
+
4,
|
|
360
|
+
5,
|
|
361
|
+
6
|
|
362
|
+
],
|
|
363
|
+
"type": "integer",
|
|
364
|
+
"format": "int32",
|
|
365
|
+
"default": 3,
|
|
366
|
+
"x-enumNames": [
|
|
367
|
+
"EngineerMobile",
|
|
368
|
+
"CustomerMobile",
|
|
369
|
+
"MainWeb",
|
|
370
|
+
"AdminWeb",
|
|
371
|
+
"Api",
|
|
372
|
+
"PlateWeb"
|
|
373
|
+
]
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
],
|
|
377
|
+
"responses": {
|
|
378
|
+
"200": {
|
|
379
|
+
"description": "График успешно получен.",
|
|
380
|
+
"content": {
|
|
381
|
+
"text/plain": {
|
|
382
|
+
"schema": {
|
|
383
|
+
"$ref": "#/components/schemas/ScheduleRuleDto"
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
"application/json": {
|
|
387
|
+
"schema": {
|
|
388
|
+
"$ref": "#/components/schemas/ScheduleRuleDto"
|
|
389
|
+
}
|
|
390
|
+
},
|
|
391
|
+
"text/json": {
|
|
392
|
+
"schema": {
|
|
393
|
+
"$ref": "#/components/schemas/ScheduleRuleDto"
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
},
|
|
398
|
+
"401": {
|
|
399
|
+
"description": "Токен отсутствует или некорректен."
|
|
400
|
+
},
|
|
401
|
+
"403": {
|
|
402
|
+
"description": "Недостаточно прав."
|
|
403
|
+
}
|
|
404
|
+
},
|
|
405
|
+
"security": [
|
|
406
|
+
{
|
|
407
|
+
"Bearer": [ ]
|
|
408
|
+
}
|
|
409
|
+
]
|
|
410
|
+
},
|
|
411
|
+
"put": {
|
|
412
|
+
"tags": [
|
|
413
|
+
"ScheduleRules"
|
|
414
|
+
],
|
|
415
|
+
"summary": "Обновляет график рабочего времени.",
|
|
416
|
+
"description": "Если `rules` не указаны, используются правила последнего периода существующего графика.\r\n \r\n## Пример запроса:\r\n```json\r\nPUT /ScheduleRules/10\r\nAuthorization: Bearer <access-token>\r\n \r\n{\r\n \"name\": \"Обновлённый график\",\r\n \"description\": \"Новое описание\",\r\n \"scheduleTypeID\": 1,\r\n \"from\": \"2024-01-01T00:00:00Z\",\r\n \"till\": \"2024-12-31T23:59:59Z\",\r\n \"considerPublicHolidays\": true,\r\n \"shortageHoursBeforeHoliday\": 1,\r\n \"rules\": [],\r\n \"overridings\": []\r\n}\r\n```\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа пустое.\r\n \r\n## Негативные сценарии:\r\n- 409 Conflict — некорректные данные модели.\r\n- 401 Unauthorized — отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden — недостаточно прав.",
|
|
417
|
+
"parameters": [
|
|
418
|
+
{
|
|
419
|
+
"name": "id",
|
|
420
|
+
"in": "path",
|
|
421
|
+
"description": "Идентификатор правила графика.",
|
|
422
|
+
"required": true,
|
|
423
|
+
"schema": {
|
|
424
|
+
"type": "integer",
|
|
425
|
+
"format": "int32"
|
|
426
|
+
}
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
"name": "X-Application-ID",
|
|
430
|
+
"in": "header",
|
|
431
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
432
|
+
"schema": {
|
|
433
|
+
"enum": [
|
|
434
|
+
1,
|
|
435
|
+
2,
|
|
436
|
+
3,
|
|
437
|
+
4,
|
|
438
|
+
5,
|
|
439
|
+
6
|
|
440
|
+
],
|
|
441
|
+
"type": "integer",
|
|
442
|
+
"format": "int32",
|
|
443
|
+
"default": 3,
|
|
444
|
+
"x-enumNames": [
|
|
445
|
+
"EngineerMobile",
|
|
446
|
+
"CustomerMobile",
|
|
447
|
+
"MainWeb",
|
|
448
|
+
"AdminWeb",
|
|
449
|
+
"Api",
|
|
450
|
+
"PlateWeb"
|
|
451
|
+
]
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
],
|
|
455
|
+
"requestBody": {
|
|
456
|
+
"description": "Данные для обновления графика.",
|
|
457
|
+
"content": {
|
|
458
|
+
"application/json-patch+json": {
|
|
459
|
+
"schema": {
|
|
460
|
+
"$ref": "#/components/schemas/ScheduleUpdateDto"
|
|
461
|
+
}
|
|
462
|
+
},
|
|
463
|
+
"application/json": {
|
|
464
|
+
"schema": {
|
|
465
|
+
"$ref": "#/components/schemas/ScheduleUpdateDto"
|
|
466
|
+
}
|
|
467
|
+
},
|
|
468
|
+
"text/json": {
|
|
469
|
+
"schema": {
|
|
470
|
+
"$ref": "#/components/schemas/ScheduleUpdateDto"
|
|
471
|
+
}
|
|
472
|
+
},
|
|
473
|
+
"application/*+json": {
|
|
474
|
+
"schema": {
|
|
475
|
+
"$ref": "#/components/schemas/ScheduleUpdateDto"
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
"responses": {
|
|
481
|
+
"202": {
|
|
482
|
+
"description": "График успешно обновлён."
|
|
483
|
+
},
|
|
484
|
+
"409": {
|
|
485
|
+
"description": "Некорректные данные."
|
|
486
|
+
},
|
|
487
|
+
"401": {
|
|
488
|
+
"description": "Токен отсутствует или некорректен."
|
|
489
|
+
},
|
|
490
|
+
"403": {
|
|
491
|
+
"description": "Недостаточно прав."
|
|
492
|
+
}
|
|
493
|
+
},
|
|
494
|
+
"security": [
|
|
495
|
+
{
|
|
496
|
+
"Bearer": [ ]
|
|
497
|
+
}
|
|
498
|
+
]
|
|
499
|
+
},
|
|
500
|
+
"delete": {
|
|
501
|
+
"tags": [
|
|
502
|
+
"ScheduleRules"
|
|
503
|
+
],
|
|
504
|
+
"summary": "Удаляет график рабочего времени.",
|
|
505
|
+
"description": "## Пример запроса:\r\n```text\r\nDELETE /ScheduleRules/10\r\nAuthorization: Bearer <access-token>\r\n```\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа пустое.\r\n \r\n## Негативные сценарии:\r\n- 401 Unauthorized — отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden — недостаточно прав.",
|
|
506
|
+
"parameters": [
|
|
507
|
+
{
|
|
508
|
+
"name": "id",
|
|
509
|
+
"in": "path",
|
|
510
|
+
"description": "Идентификатор правила графика.",
|
|
511
|
+
"required": true,
|
|
512
|
+
"schema": {
|
|
513
|
+
"type": "integer",
|
|
514
|
+
"format": "int32"
|
|
515
|
+
}
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
"name": "X-Application-ID",
|
|
519
|
+
"in": "header",
|
|
520
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
521
|
+
"schema": {
|
|
522
|
+
"enum": [
|
|
523
|
+
1,
|
|
524
|
+
2,
|
|
525
|
+
3,
|
|
526
|
+
4,
|
|
527
|
+
5,
|
|
528
|
+
6
|
|
529
|
+
],
|
|
530
|
+
"type": "integer",
|
|
531
|
+
"format": "int32",
|
|
532
|
+
"default": 3,
|
|
533
|
+
"x-enumNames": [
|
|
534
|
+
"EngineerMobile",
|
|
535
|
+
"CustomerMobile",
|
|
536
|
+
"MainWeb",
|
|
537
|
+
"AdminWeb",
|
|
538
|
+
"Api",
|
|
539
|
+
"PlateWeb"
|
|
540
|
+
]
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
],
|
|
544
|
+
"responses": {
|
|
545
|
+
"202": {
|
|
546
|
+
"description": "График успешно удалён."
|
|
547
|
+
},
|
|
548
|
+
"401": {
|
|
549
|
+
"description": "Токен отсутствует или некорректен."
|
|
550
|
+
},
|
|
551
|
+
"403": {
|
|
552
|
+
"description": "Недостаточно прав."
|
|
553
|
+
}
|
|
554
|
+
},
|
|
555
|
+
"security": [
|
|
556
|
+
{
|
|
557
|
+
"Bearer": [ ]
|
|
558
|
+
}
|
|
559
|
+
]
|
|
560
|
+
}
|
|
561
|
+
},
|
|
562
|
+
"/ScheduleRules/extend/{id}": {
|
|
563
|
+
"put": {
|
|
564
|
+
"tags": [
|
|
565
|
+
"ScheduleRules"
|
|
566
|
+
],
|
|
567
|
+
"summary": "Расширяет график рабочего времени.",
|
|
568
|
+
"description": "Если `rules` не указаны, используются правила последнего периода существующего графика.\r\n \r\n## Пример запроса:\r\n```json\r\nPUT /ScheduleRules/extend/10\r\nAuthorization: Bearer <access-token>\r\n \r\n{\r\n \"from\": \"2025-01-01T00:00:00Z\",\r\n \"till\": \"2025-12-31T23:59:59Z\",\r\n \"considerPublicHolidays\": true,\r\n \"shortageHoursBeforeHoliday\": 1,\r\n \"rules\": [],\r\n \"overridings\": []\r\n}\r\n```\r\n \r\n## Пример успешного ответа (202):\r\nТело ответа пустое.\r\n \r\n## Негативные сценарии:\r\n- 409 Conflict — некорректные данные модели.\r\n- 401 Unauthorized — отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden — недостаточно прав.",
|
|
569
|
+
"parameters": [
|
|
570
|
+
{
|
|
571
|
+
"name": "id",
|
|
572
|
+
"in": "path",
|
|
573
|
+
"description": "Идентификатор правила графика.",
|
|
574
|
+
"required": true,
|
|
575
|
+
"schema": {
|
|
576
|
+
"type": "integer",
|
|
577
|
+
"format": "int32"
|
|
578
|
+
}
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"name": "X-Application-ID",
|
|
582
|
+
"in": "header",
|
|
583
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
584
|
+
"schema": {
|
|
585
|
+
"enum": [
|
|
586
|
+
1,
|
|
587
|
+
2,
|
|
588
|
+
3,
|
|
589
|
+
4,
|
|
590
|
+
5,
|
|
591
|
+
6
|
|
592
|
+
],
|
|
593
|
+
"type": "integer",
|
|
594
|
+
"format": "int32",
|
|
595
|
+
"default": 3,
|
|
596
|
+
"x-enumNames": [
|
|
597
|
+
"EngineerMobile",
|
|
598
|
+
"CustomerMobile",
|
|
599
|
+
"MainWeb",
|
|
600
|
+
"AdminWeb",
|
|
601
|
+
"Api",
|
|
602
|
+
"PlateWeb"
|
|
603
|
+
]
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
],
|
|
607
|
+
"requestBody": {
|
|
608
|
+
"description": "Данные для расширения графика.",
|
|
609
|
+
"content": {
|
|
610
|
+
"application/json-patch+json": {
|
|
611
|
+
"schema": {
|
|
612
|
+
"$ref": "#/components/schemas/ScheduleExtendDto"
|
|
613
|
+
}
|
|
614
|
+
},
|
|
615
|
+
"application/json": {
|
|
616
|
+
"schema": {
|
|
617
|
+
"$ref": "#/components/schemas/ScheduleExtendDto"
|
|
618
|
+
}
|
|
619
|
+
},
|
|
620
|
+
"text/json": {
|
|
621
|
+
"schema": {
|
|
622
|
+
"$ref": "#/components/schemas/ScheduleExtendDto"
|
|
623
|
+
}
|
|
624
|
+
},
|
|
625
|
+
"application/*+json": {
|
|
626
|
+
"schema": {
|
|
627
|
+
"$ref": "#/components/schemas/ScheduleExtendDto"
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
},
|
|
632
|
+
"responses": {
|
|
633
|
+
"202": {
|
|
634
|
+
"description": "График успешно расширен."
|
|
635
|
+
},
|
|
636
|
+
"409": {
|
|
637
|
+
"description": "Некорректные данные."
|
|
638
|
+
},
|
|
639
|
+
"401": {
|
|
640
|
+
"description": "Токен отсутствует или некорректен."
|
|
641
|
+
},
|
|
642
|
+
"403": {
|
|
643
|
+
"description": "Недостаточно прав."
|
|
644
|
+
}
|
|
645
|
+
},
|
|
646
|
+
"security": [
|
|
647
|
+
{
|
|
648
|
+
"Bearer": [ ]
|
|
649
|
+
}
|
|
650
|
+
]
|
|
651
|
+
}
|
|
652
|
+
},
|
|
653
|
+
"/ScheduleRules/holiday": {
|
|
654
|
+
"get": {
|
|
655
|
+
"tags": [
|
|
656
|
+
"ScheduleRules"
|
|
657
|
+
],
|
|
658
|
+
"summary": "Возвращает график праздничных дней за указанный год.",
|
|
659
|
+
"description": "## Пример запроса:\r\n```text\r\nGET /ScheduleRules/holiday?year=2024\r\nAuthorization: Bearer <access-token>\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"RU\": [\r\n \"2024-01-01T00:00:00Z\",\r\n \"2024-01-07T00:00:00Z\"\r\n ]\r\n}\r\n```\r\n \r\n## Негативные сценарии:\r\n- 401 Unauthorized — отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden — недостаточно прав.",
|
|
660
|
+
"parameters": [
|
|
661
|
+
{
|
|
662
|
+
"name": "year",
|
|
663
|
+
"in": "query",
|
|
664
|
+
"description": "Год, за который требуется получить график праздничных дней.",
|
|
665
|
+
"schema": {
|
|
666
|
+
"type": "string"
|
|
667
|
+
}
|
|
668
|
+
},
|
|
669
|
+
{
|
|
670
|
+
"name": "X-Application-ID",
|
|
671
|
+
"in": "header",
|
|
672
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
673
|
+
"schema": {
|
|
674
|
+
"enum": [
|
|
675
|
+
1,
|
|
676
|
+
2,
|
|
677
|
+
3,
|
|
678
|
+
4,
|
|
679
|
+
5,
|
|
680
|
+
6
|
|
681
|
+
],
|
|
682
|
+
"type": "integer",
|
|
683
|
+
"format": "int32",
|
|
684
|
+
"default": 3,
|
|
685
|
+
"x-enumNames": [
|
|
686
|
+
"EngineerMobile",
|
|
687
|
+
"CustomerMobile",
|
|
688
|
+
"MainWeb",
|
|
689
|
+
"AdminWeb",
|
|
690
|
+
"Api",
|
|
691
|
+
"PlateWeb"
|
|
692
|
+
]
|
|
693
|
+
}
|
|
694
|
+
}
|
|
695
|
+
],
|
|
696
|
+
"responses": {
|
|
697
|
+
"200": {
|
|
698
|
+
"description": "График праздников успешно получен.",
|
|
699
|
+
"content": {
|
|
700
|
+
"text/plain": {
|
|
701
|
+
"schema": {
|
|
702
|
+
"type": "object",
|
|
703
|
+
"additionalProperties": {
|
|
704
|
+
"type": "array",
|
|
705
|
+
"items": {
|
|
706
|
+
"type": "string",
|
|
707
|
+
"format": "date-time"
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
},
|
|
712
|
+
"application/json": {
|
|
713
|
+
"schema": {
|
|
714
|
+
"type": "object",
|
|
715
|
+
"additionalProperties": {
|
|
716
|
+
"type": "array",
|
|
717
|
+
"items": {
|
|
718
|
+
"type": "string",
|
|
719
|
+
"format": "date-time"
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
},
|
|
724
|
+
"text/json": {
|
|
725
|
+
"schema": {
|
|
726
|
+
"type": "object",
|
|
727
|
+
"additionalProperties": {
|
|
728
|
+
"type": "array",
|
|
729
|
+
"items": {
|
|
730
|
+
"type": "string",
|
|
731
|
+
"format": "date-time"
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
},
|
|
738
|
+
"401": {
|
|
739
|
+
"description": "Токен отсутствует или некорректен."
|
|
740
|
+
},
|
|
741
|
+
"403": {
|
|
742
|
+
"description": "Недостаточно прав."
|
|
743
|
+
}
|
|
744
|
+
},
|
|
745
|
+
"security": [
|
|
746
|
+
{
|
|
747
|
+
"Bearer": [ ]
|
|
748
|
+
}
|
|
749
|
+
]
|
|
750
|
+
}
|
|
751
|
+
},
|
|
752
|
+
"/WorkSchedules": {
|
|
753
|
+
"get": {
|
|
754
|
+
"tags": [
|
|
755
|
+
"WorkSchedules"
|
|
756
|
+
],
|
|
757
|
+
"summary": "Возвращает график рабочего времени на заданный период.",
|
|
758
|
+
"description": "## Пример запроса:\r\n```text\r\nGET /WorkSchedules?validFrom=2024-06-01&validTill=2024-06-30&scheduleRuleID=10\r\nAuthorization: Bearer <access-token>\r\nRange: Offset=0; Fetch=50\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"10\": [\r\n {\r\n \"scheduleRuleID\": 10,\r\n \"timeFrom\": \"2024-06-15T09:00:00Z\",\r\n \"timeTill\": \"2024-06-15T18:00:00Z\",\r\n \"isPublicHoliday\": false,\r\n \"isNightShift\": false,\r\n \"dateWork\": \"2024-06-15T00:00:00Z\"\r\n }\r\n ]\r\n}\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит частичный диапазон.\r\n \r\n## Пример негативного ответа (400):\r\n```json\r\n{\r\n \"traceIdentifier\": \"0HN1234567890\",\r\n \"code\": \"ScheduleRuleNull\",\r\n \"message\": \"Schedule rule is required\"\r\n}\r\n```\r\n \r\n## Негативные сценарии:\r\n- 204 No Content — график не найден.\r\n- 400 Bad Request — некорректные query-параметры.\r\n- 401 Unauthorized — отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden — недостаточно прав.",
|
|
759
|
+
"parameters": [
|
|
760
|
+
{
|
|
761
|
+
"name": "X-Application-ID",
|
|
762
|
+
"in": "header",
|
|
763
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
764
|
+
"schema": {
|
|
765
|
+
"enum": [
|
|
766
|
+
1,
|
|
767
|
+
2,
|
|
768
|
+
3,
|
|
769
|
+
4,
|
|
770
|
+
5,
|
|
771
|
+
6
|
|
772
|
+
],
|
|
773
|
+
"type": "integer",
|
|
774
|
+
"format": "int32",
|
|
775
|
+
"default": 3,
|
|
776
|
+
"x-enumNames": [
|
|
777
|
+
"EngineerMobile",
|
|
778
|
+
"CustomerMobile",
|
|
779
|
+
"MainWeb",
|
|
780
|
+
"AdminWeb",
|
|
781
|
+
"Api",
|
|
782
|
+
"PlateWeb"
|
|
783
|
+
]
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
],
|
|
787
|
+
"responses": {
|
|
788
|
+
"200": {
|
|
789
|
+
"description": "График успешно получен.",
|
|
790
|
+
"content": {
|
|
791
|
+
"text/plain": {
|
|
792
|
+
"schema": {
|
|
793
|
+
"type": "object",
|
|
794
|
+
"additionalProperties": {
|
|
795
|
+
"type": "array",
|
|
796
|
+
"items": {
|
|
797
|
+
"$ref": "#/components/schemas/WorkScheduleDailyItemResult"
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
},
|
|
802
|
+
"application/json": {
|
|
803
|
+
"schema": {
|
|
804
|
+
"type": "object",
|
|
805
|
+
"additionalProperties": {
|
|
806
|
+
"type": "array",
|
|
807
|
+
"items": {
|
|
808
|
+
"$ref": "#/components/schemas/WorkScheduleDailyItemResult"
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
},
|
|
813
|
+
"text/json": {
|
|
814
|
+
"schema": {
|
|
815
|
+
"type": "object",
|
|
816
|
+
"additionalProperties": {
|
|
817
|
+
"type": "array",
|
|
818
|
+
"items": {
|
|
819
|
+
"$ref": "#/components/schemas/WorkScheduleDailyItemResult"
|
|
820
|
+
}
|
|
821
|
+
}
|
|
822
|
+
}
|
|
823
|
+
}
|
|
824
|
+
}
|
|
825
|
+
},
|
|
826
|
+
"206": {
|
|
827
|
+
"description": "Возвращена часть записей в пределах диапазона.",
|
|
828
|
+
"content": {
|
|
829
|
+
"text/plain": {
|
|
830
|
+
"schema": {
|
|
831
|
+
"type": "object",
|
|
832
|
+
"additionalProperties": {
|
|
833
|
+
"type": "array",
|
|
834
|
+
"items": {
|
|
835
|
+
"$ref": "#/components/schemas/WorkScheduleDailyItemResult"
|
|
836
|
+
}
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
},
|
|
840
|
+
"application/json": {
|
|
841
|
+
"schema": {
|
|
842
|
+
"type": "object",
|
|
843
|
+
"additionalProperties": {
|
|
844
|
+
"type": "array",
|
|
845
|
+
"items": {
|
|
846
|
+
"$ref": "#/components/schemas/WorkScheduleDailyItemResult"
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
},
|
|
851
|
+
"text/json": {
|
|
852
|
+
"schema": {
|
|
853
|
+
"type": "object",
|
|
854
|
+
"additionalProperties": {
|
|
855
|
+
"type": "array",
|
|
856
|
+
"items": {
|
|
857
|
+
"$ref": "#/components/schemas/WorkScheduleDailyItemResult"
|
|
858
|
+
}
|
|
859
|
+
}
|
|
860
|
+
}
|
|
861
|
+
}
|
|
862
|
+
}
|
|
863
|
+
},
|
|
864
|
+
"204": {
|
|
865
|
+
"description": "Записи не найдены."
|
|
866
|
+
},
|
|
867
|
+
"400": {
|
|
868
|
+
"description": "Некорректные параметры запроса.",
|
|
869
|
+
"content": {
|
|
870
|
+
"text/plain": {
|
|
871
|
+
"schema": {
|
|
872
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
873
|
+
}
|
|
874
|
+
},
|
|
875
|
+
"application/json": {
|
|
876
|
+
"schema": {
|
|
877
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
878
|
+
}
|
|
879
|
+
},
|
|
880
|
+
"text/json": {
|
|
881
|
+
"schema": {
|
|
882
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
},
|
|
887
|
+
"401": {
|
|
888
|
+
"description": "Токен отсутствует или некорректен.",
|
|
889
|
+
"content": {
|
|
890
|
+
"text/plain": {
|
|
891
|
+
"schema": {
|
|
892
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
893
|
+
}
|
|
894
|
+
},
|
|
895
|
+
"application/json": {
|
|
896
|
+
"schema": {
|
|
897
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
898
|
+
}
|
|
899
|
+
},
|
|
900
|
+
"text/json": {
|
|
901
|
+
"schema": {
|
|
902
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
903
|
+
}
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
},
|
|
907
|
+
"403": {
|
|
908
|
+
"description": "Недостаточно прав.",
|
|
909
|
+
"content": {
|
|
910
|
+
"text/plain": {
|
|
911
|
+
"schema": {
|
|
912
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
913
|
+
}
|
|
914
|
+
},
|
|
915
|
+
"application/json": {
|
|
916
|
+
"schema": {
|
|
917
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
918
|
+
}
|
|
919
|
+
},
|
|
920
|
+
"text/json": {
|
|
921
|
+
"schema": {
|
|
922
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
923
|
+
}
|
|
924
|
+
}
|
|
925
|
+
}
|
|
926
|
+
}
|
|
927
|
+
},
|
|
928
|
+
"security": [
|
|
929
|
+
{
|
|
930
|
+
"Bearer": [ ]
|
|
931
|
+
}
|
|
932
|
+
]
|
|
933
|
+
}
|
|
934
|
+
},
|
|
935
|
+
"/WorkSchedules/daily": {
|
|
936
|
+
"get": {
|
|
937
|
+
"tags": [
|
|
938
|
+
"WorkSchedules"
|
|
939
|
+
],
|
|
940
|
+
"summary": "Возвращает график рабочего времени на заданный период, разбитый по суткам.",
|
|
941
|
+
"description": "## Пример запроса:\r\n```text\r\nGET /WorkSchedules/daily?validFrom=2024-06-01&validTill=2024-06-30&scheduleRuleID=10\r\nAuthorization: Bearer <access-token>\r\nRange: Offset=0; Fetch=50\r\n```\r\n \r\n## Пример успешного ответа (200):\r\n```json\r\n{\r\n \"10\": [\r\n {\r\n \"date\": \"2024-06-15T00:00:00Z\",\r\n \"isNightShift\": false,\r\n \"isPublicHoliday\": false,\r\n \"timeFrom\": \"2024-06-15T09:00:00Z\",\r\n \"timeTill\": \"2024-06-15T18:00:00Z\"\r\n }\r\n ]\r\n}\r\n```\r\n \r\n## Пример успешного ответа (206):\r\nТело ответа имеет тот же формат, что и для `200`, но содержит частичный диапазон.\r\n \r\n## Пример негативного ответа (400):\r\n```json\r\n{\r\n \"traceIdentifier\": \"0HN1234567890\",\r\n \"code\": \"ValidityPeriodNull\",\r\n \"message\": \"Validity period is required\"\r\n}\r\n```\r\n \r\n## Негативные сценарии:\r\n- 204 No Content — график не найден.\r\n- 400 Bad Request — некорректные query-параметры (обязательны validFrom и validTill).\r\n- 401 Unauthorized — отсутствует или некорректен Bearer-токен.\r\n- 403 Forbidden — недостаточно прав.",
|
|
942
|
+
"parameters": [
|
|
943
|
+
{
|
|
944
|
+
"name": "X-Application-ID",
|
|
945
|
+
"in": "header",
|
|
946
|
+
"description": "Идентификатор приложения. EngineerMobile - 1, CustomerMobile - 2, MainWeb - 3, AdminWeb - 4, Api - 5, PlateWeb - 6",
|
|
947
|
+
"schema": {
|
|
948
|
+
"enum": [
|
|
949
|
+
1,
|
|
950
|
+
2,
|
|
951
|
+
3,
|
|
952
|
+
4,
|
|
953
|
+
5,
|
|
954
|
+
6
|
|
955
|
+
],
|
|
956
|
+
"type": "integer",
|
|
957
|
+
"format": "int32",
|
|
958
|
+
"default": 3,
|
|
959
|
+
"x-enumNames": [
|
|
960
|
+
"EngineerMobile",
|
|
961
|
+
"CustomerMobile",
|
|
962
|
+
"MainWeb",
|
|
963
|
+
"AdminWeb",
|
|
964
|
+
"Api",
|
|
965
|
+
"PlateWeb"
|
|
966
|
+
]
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
],
|
|
970
|
+
"responses": {
|
|
971
|
+
"200": {
|
|
972
|
+
"description": "График по суткам успешно получен.",
|
|
973
|
+
"content": {
|
|
974
|
+
"text/plain": {
|
|
975
|
+
"schema": {
|
|
976
|
+
"type": "object",
|
|
977
|
+
"additionalProperties": {
|
|
978
|
+
"type": "array",
|
|
979
|
+
"items": {
|
|
980
|
+
"$ref": "#/components/schemas/WorkScheduleDailyByDayResult"
|
|
981
|
+
}
|
|
982
|
+
}
|
|
983
|
+
}
|
|
984
|
+
},
|
|
985
|
+
"application/json": {
|
|
986
|
+
"schema": {
|
|
987
|
+
"type": "object",
|
|
988
|
+
"additionalProperties": {
|
|
989
|
+
"type": "array",
|
|
990
|
+
"items": {
|
|
991
|
+
"$ref": "#/components/schemas/WorkScheduleDailyByDayResult"
|
|
992
|
+
}
|
|
993
|
+
}
|
|
994
|
+
}
|
|
995
|
+
},
|
|
996
|
+
"text/json": {
|
|
997
|
+
"schema": {
|
|
998
|
+
"type": "object",
|
|
999
|
+
"additionalProperties": {
|
|
1000
|
+
"type": "array",
|
|
1001
|
+
"items": {
|
|
1002
|
+
"$ref": "#/components/schemas/WorkScheduleDailyByDayResult"
|
|
1003
|
+
}
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
1008
|
+
},
|
|
1009
|
+
"206": {
|
|
1010
|
+
"description": "Возвращена часть записей в пределах диапазона.",
|
|
1011
|
+
"content": {
|
|
1012
|
+
"text/plain": {
|
|
1013
|
+
"schema": {
|
|
1014
|
+
"type": "object",
|
|
1015
|
+
"additionalProperties": {
|
|
1016
|
+
"type": "array",
|
|
1017
|
+
"items": {
|
|
1018
|
+
"$ref": "#/components/schemas/WorkScheduleDailyByDayResult"
|
|
1019
|
+
}
|
|
1020
|
+
}
|
|
1021
|
+
}
|
|
1022
|
+
},
|
|
1023
|
+
"application/json": {
|
|
1024
|
+
"schema": {
|
|
1025
|
+
"type": "object",
|
|
1026
|
+
"additionalProperties": {
|
|
1027
|
+
"type": "array",
|
|
1028
|
+
"items": {
|
|
1029
|
+
"$ref": "#/components/schemas/WorkScheduleDailyByDayResult"
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
1032
|
+
}
|
|
1033
|
+
},
|
|
1034
|
+
"text/json": {
|
|
1035
|
+
"schema": {
|
|
1036
|
+
"type": "object",
|
|
1037
|
+
"additionalProperties": {
|
|
1038
|
+
"type": "array",
|
|
1039
|
+
"items": {
|
|
1040
|
+
"$ref": "#/components/schemas/WorkScheduleDailyByDayResult"
|
|
1041
|
+
}
|
|
1042
|
+
}
|
|
1043
|
+
}
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
1046
|
+
},
|
|
1047
|
+
"204": {
|
|
1048
|
+
"description": "Записи не найдены."
|
|
1049
|
+
},
|
|
1050
|
+
"400": {
|
|
1051
|
+
"description": "Некорректные параметры запроса.",
|
|
1052
|
+
"content": {
|
|
1053
|
+
"text/plain": {
|
|
1054
|
+
"schema": {
|
|
1055
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
1056
|
+
}
|
|
1057
|
+
},
|
|
1058
|
+
"application/json": {
|
|
1059
|
+
"schema": {
|
|
1060
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
1061
|
+
}
|
|
1062
|
+
},
|
|
1063
|
+
"text/json": {
|
|
1064
|
+
"schema": {
|
|
1065
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
1066
|
+
}
|
|
1067
|
+
}
|
|
1068
|
+
}
|
|
1069
|
+
},
|
|
1070
|
+
"401": {
|
|
1071
|
+
"description": "Токен отсутствует или некорректен.",
|
|
1072
|
+
"content": {
|
|
1073
|
+
"text/plain": {
|
|
1074
|
+
"schema": {
|
|
1075
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
1076
|
+
}
|
|
1077
|
+
},
|
|
1078
|
+
"application/json": {
|
|
1079
|
+
"schema": {
|
|
1080
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
1081
|
+
}
|
|
1082
|
+
},
|
|
1083
|
+
"text/json": {
|
|
1084
|
+
"schema": {
|
|
1085
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
1086
|
+
}
|
|
1087
|
+
}
|
|
1088
|
+
}
|
|
1089
|
+
},
|
|
1090
|
+
"403": {
|
|
1091
|
+
"description": "Недостаточно прав.",
|
|
1092
|
+
"content": {
|
|
1093
|
+
"text/plain": {
|
|
1094
|
+
"schema": {
|
|
1095
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
1096
|
+
}
|
|
1097
|
+
},
|
|
1098
|
+
"application/json": {
|
|
1099
|
+
"schema": {
|
|
1100
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
1101
|
+
}
|
|
1102
|
+
},
|
|
1103
|
+
"text/json": {
|
|
1104
|
+
"schema": {
|
|
1105
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
1106
|
+
}
|
|
1107
|
+
}
|
|
1108
|
+
}
|
|
1109
|
+
}
|
|
1110
|
+
},
|
|
1111
|
+
"security": [
|
|
1112
|
+
{
|
|
1113
|
+
"Bearer": [ ]
|
|
1114
|
+
}
|
|
1115
|
+
]
|
|
1116
|
+
}
|
|
1117
|
+
}
|
|
1118
|
+
},
|
|
1119
|
+
"components": {
|
|
1120
|
+
"schemas": {
|
|
1121
|
+
"ListResult": {
|
|
1122
|
+
"type": "object",
|
|
1123
|
+
"properties": {
|
|
1124
|
+
"name": {
|
|
1125
|
+
"type": "string",
|
|
1126
|
+
"description": "Название правила",
|
|
1127
|
+
"nullable": true,
|
|
1128
|
+
"example": "Стандартный график"
|
|
1129
|
+
},
|
|
1130
|
+
"description": {
|
|
1131
|
+
"type": "string",
|
|
1132
|
+
"description": "Описание правила",
|
|
1133
|
+
"nullable": true,
|
|
1134
|
+
"example": "График работы с 9:00 до 18:00"
|
|
1135
|
+
},
|
|
1136
|
+
"scheduleTypeID": {
|
|
1137
|
+
"type": "integer",
|
|
1138
|
+
"description": "Тип графика",
|
|
1139
|
+
"format": "int32",
|
|
1140
|
+
"nullable": true,
|
|
1141
|
+
"example": 1
|
|
1142
|
+
},
|
|
1143
|
+
"dataFrom": {
|
|
1144
|
+
"type": "string",
|
|
1145
|
+
"description": "Дата старта графика",
|
|
1146
|
+
"format": "date-time",
|
|
1147
|
+
"example": "2024-01-01T00:00:00Z"
|
|
1148
|
+
}
|
|
1149
|
+
},
|
|
1150
|
+
"additionalProperties": false,
|
|
1151
|
+
"description": "Правило графика рабочего времени для списка"
|
|
1152
|
+
},
|
|
1153
|
+
"ProblemDetails": {
|
|
1154
|
+
"type": "object",
|
|
1155
|
+
"properties": {
|
|
1156
|
+
"type": {
|
|
1157
|
+
"type": "string",
|
|
1158
|
+
"nullable": true
|
|
1159
|
+
},
|
|
1160
|
+
"title": {
|
|
1161
|
+
"type": "string",
|
|
1162
|
+
"nullable": true
|
|
1163
|
+
},
|
|
1164
|
+
"status": {
|
|
1165
|
+
"type": "integer",
|
|
1166
|
+
"format": "int32",
|
|
1167
|
+
"nullable": true
|
|
1168
|
+
},
|
|
1169
|
+
"detail": {
|
|
1170
|
+
"type": "string",
|
|
1171
|
+
"nullable": true
|
|
1172
|
+
},
|
|
1173
|
+
"instance": {
|
|
1174
|
+
"type": "string",
|
|
1175
|
+
"nullable": true
|
|
1176
|
+
}
|
|
1177
|
+
},
|
|
1178
|
+
"additionalProperties": { }
|
|
1179
|
+
},
|
|
1180
|
+
"ScheduleCreateDto": {
|
|
1181
|
+
"type": "object",
|
|
1182
|
+
"properties": {
|
|
1183
|
+
"from": {
|
|
1184
|
+
"type": "string",
|
|
1185
|
+
"description": "Дата начала периода",
|
|
1186
|
+
"format": "date-time",
|
|
1187
|
+
"example": "2024-01-01T00:00:00Z"
|
|
1188
|
+
},
|
|
1189
|
+
"till": {
|
|
1190
|
+
"type": "string",
|
|
1191
|
+
"description": "Дата окончания периода",
|
|
1192
|
+
"format": "date-time",
|
|
1193
|
+
"example": "2024-12-31T23:59:59Z"
|
|
1194
|
+
},
|
|
1195
|
+
"considerPublicHolidays": {
|
|
1196
|
+
"type": "boolean",
|
|
1197
|
+
"description": "Учитывать праздничные дни",
|
|
1198
|
+
"example": true
|
|
1199
|
+
},
|
|
1200
|
+
"shortageHoursBeforeHoliday": {
|
|
1201
|
+
"type": "integer",
|
|
1202
|
+
"description": "Сокращение часов перед праздником",
|
|
1203
|
+
"format": "int32",
|
|
1204
|
+
"example": 1
|
|
1205
|
+
},
|
|
1206
|
+
"rules": {
|
|
1207
|
+
"type": "array",
|
|
1208
|
+
"items": {
|
|
1209
|
+
"$ref": "#/components/schemas/ScheduleDtoRule"
|
|
1210
|
+
},
|
|
1211
|
+
"description": "Правила расписания",
|
|
1212
|
+
"nullable": true
|
|
1213
|
+
},
|
|
1214
|
+
"overridings": {
|
|
1215
|
+
"type": "array",
|
|
1216
|
+
"items": {
|
|
1217
|
+
"$ref": "#/components/schemas/ScheduleDto"
|
|
1218
|
+
},
|
|
1219
|
+
"description": "Переопределения расписания",
|
|
1220
|
+
"nullable": true
|
|
1221
|
+
},
|
|
1222
|
+
"name": {
|
|
1223
|
+
"type": "string",
|
|
1224
|
+
"description": "Название",
|
|
1225
|
+
"nullable": true,
|
|
1226
|
+
"example": "Стандартный график"
|
|
1227
|
+
},
|
|
1228
|
+
"description": {
|
|
1229
|
+
"type": "string",
|
|
1230
|
+
"description": "Описание",
|
|
1231
|
+
"nullable": true,
|
|
1232
|
+
"example": "График работы с 9:00 до 18:00"
|
|
1233
|
+
},
|
|
1234
|
+
"isDefault": {
|
|
1235
|
+
"type": "boolean",
|
|
1236
|
+
"description": "Признак графика по умолчанию",
|
|
1237
|
+
"example": false
|
|
1238
|
+
},
|
|
1239
|
+
"scheduleTypeID": {
|
|
1240
|
+
"type": "integer",
|
|
1241
|
+
"description": "Тип графика",
|
|
1242
|
+
"format": "int32",
|
|
1243
|
+
"nullable": true,
|
|
1244
|
+
"example": 1
|
|
1245
|
+
}
|
|
1246
|
+
},
|
|
1247
|
+
"additionalProperties": false,
|
|
1248
|
+
"description": "Данные для создания графика рабочего времени"
|
|
1249
|
+
},
|
|
1250
|
+
"ScheduleDto": {
|
|
1251
|
+
"type": "object",
|
|
1252
|
+
"properties": {
|
|
1253
|
+
"rules": {
|
|
1254
|
+
"type": "array",
|
|
1255
|
+
"items": {
|
|
1256
|
+
"$ref": "#/components/schemas/ScheduleDtoRule"
|
|
1257
|
+
},
|
|
1258
|
+
"nullable": true
|
|
1259
|
+
},
|
|
1260
|
+
"isWorking": {
|
|
1261
|
+
"type": "boolean"
|
|
1262
|
+
},
|
|
1263
|
+
"isPublicHoliday": {
|
|
1264
|
+
"type": "boolean"
|
|
1265
|
+
}
|
|
1266
|
+
},
|
|
1267
|
+
"additionalProperties": false
|
|
1268
|
+
},
|
|
1269
|
+
"ScheduleDtoRule": {
|
|
1270
|
+
"type": "object",
|
|
1271
|
+
"properties": {
|
|
1272
|
+
"cron": {
|
|
1273
|
+
"type": "string",
|
|
1274
|
+
"nullable": true
|
|
1275
|
+
},
|
|
1276
|
+
"occurrenceDuration": {
|
|
1277
|
+
"type": "string",
|
|
1278
|
+
"format": "date-span"
|
|
1279
|
+
},
|
|
1280
|
+
"periodicity": {
|
|
1281
|
+
"$ref": "#/components/schemas/ScheduleDtoRulePeriodicityData"
|
|
1282
|
+
}
|
|
1283
|
+
},
|
|
1284
|
+
"additionalProperties": false
|
|
1285
|
+
},
|
|
1286
|
+
"ScheduleDtoRulePeriodicityData": {
|
|
1287
|
+
"type": "object",
|
|
1288
|
+
"properties": {
|
|
1289
|
+
"repeatCnt": {
|
|
1290
|
+
"type": "integer",
|
|
1291
|
+
"format": "int32"
|
|
1292
|
+
},
|
|
1293
|
+
"skip": {
|
|
1294
|
+
"type": "string",
|
|
1295
|
+
"format": "date-span"
|
|
1296
|
+
}
|
|
1297
|
+
},
|
|
1298
|
+
"additionalProperties": false
|
|
1299
|
+
},
|
|
1300
|
+
"ScheduleExtendDto": {
|
|
1301
|
+
"type": "object",
|
|
1302
|
+
"properties": {
|
|
1303
|
+
"from": {
|
|
1304
|
+
"type": "string",
|
|
1305
|
+
"description": "Дата начала периода",
|
|
1306
|
+
"format": "date-time",
|
|
1307
|
+
"example": "2024-01-01T00:00:00Z"
|
|
1308
|
+
},
|
|
1309
|
+
"till": {
|
|
1310
|
+
"type": "string",
|
|
1311
|
+
"description": "Дата окончания периода",
|
|
1312
|
+
"format": "date-time",
|
|
1313
|
+
"example": "2024-12-31T23:59:59Z"
|
|
1314
|
+
},
|
|
1315
|
+
"considerPublicHolidays": {
|
|
1316
|
+
"type": "boolean",
|
|
1317
|
+
"description": "Учитывать праздничные дни",
|
|
1318
|
+
"example": true
|
|
1319
|
+
},
|
|
1320
|
+
"shortageHoursBeforeHoliday": {
|
|
1321
|
+
"type": "integer",
|
|
1322
|
+
"description": "Сокращение часов перед праздником",
|
|
1323
|
+
"format": "int32",
|
|
1324
|
+
"example": 1
|
|
1325
|
+
},
|
|
1326
|
+
"rules": {
|
|
1327
|
+
"type": "array",
|
|
1328
|
+
"items": {
|
|
1329
|
+
"$ref": "#/components/schemas/ScheduleDtoRule"
|
|
1330
|
+
},
|
|
1331
|
+
"description": "Правила расписания",
|
|
1332
|
+
"nullable": true
|
|
1333
|
+
},
|
|
1334
|
+
"overridings": {
|
|
1335
|
+
"type": "array",
|
|
1336
|
+
"items": {
|
|
1337
|
+
"$ref": "#/components/schemas/ScheduleDto"
|
|
1338
|
+
},
|
|
1339
|
+
"description": "Переопределения расписания",
|
|
1340
|
+
"nullable": true
|
|
1341
|
+
}
|
|
1342
|
+
},
|
|
1343
|
+
"additionalProperties": false,
|
|
1344
|
+
"description": "Данные для расширения или предпросмотра графика рабочего времени"
|
|
1345
|
+
},
|
|
1346
|
+
"SchedulePersistDto": {
|
|
1347
|
+
"type": "object",
|
|
1348
|
+
"properties": {
|
|
1349
|
+
"rules": {
|
|
1350
|
+
"type": "array",
|
|
1351
|
+
"items": {
|
|
1352
|
+
"$ref": "#/components/schemas/ScheduleDtoRule"
|
|
1353
|
+
},
|
|
1354
|
+
"description": "Правила расписания",
|
|
1355
|
+
"nullable": true
|
|
1356
|
+
},
|
|
1357
|
+
"overridings": {
|
|
1358
|
+
"type": "array",
|
|
1359
|
+
"items": {
|
|
1360
|
+
"$ref": "#/components/schemas/ScheduleDto"
|
|
1361
|
+
},
|
|
1362
|
+
"description": "Переопределения расписания",
|
|
1363
|
+
"nullable": true
|
|
1364
|
+
}
|
|
1365
|
+
},
|
|
1366
|
+
"additionalProperties": false,
|
|
1367
|
+
"description": "Сохранённая модель правил графика"
|
|
1368
|
+
},
|
|
1369
|
+
"ScheduleRuleDto": {
|
|
1370
|
+
"type": "object",
|
|
1371
|
+
"properties": {
|
|
1372
|
+
"name": {
|
|
1373
|
+
"type": "string",
|
|
1374
|
+
"description": "Название",
|
|
1375
|
+
"nullable": true,
|
|
1376
|
+
"example": "Стандартный график"
|
|
1377
|
+
},
|
|
1378
|
+
"description": {
|
|
1379
|
+
"type": "string",
|
|
1380
|
+
"description": "Описание",
|
|
1381
|
+
"nullable": true,
|
|
1382
|
+
"example": "График работы с 9:00 до 18:00"
|
|
1383
|
+
},
|
|
1384
|
+
"scheduleTypeID": {
|
|
1385
|
+
"type": "integer",
|
|
1386
|
+
"description": "Тип графика",
|
|
1387
|
+
"format": "int32",
|
|
1388
|
+
"nullable": true,
|
|
1389
|
+
"example": 1
|
|
1390
|
+
},
|
|
1391
|
+
"periods": {
|
|
1392
|
+
"type": "array",
|
|
1393
|
+
"items": {
|
|
1394
|
+
"$ref": "#/components/schemas/ScheduleRuleDtoPeriod"
|
|
1395
|
+
},
|
|
1396
|
+
"description": "Периоды действия правил",
|
|
1397
|
+
"nullable": true
|
|
1398
|
+
}
|
|
1399
|
+
},
|
|
1400
|
+
"additionalProperties": false,
|
|
1401
|
+
"description": "График рабочего времени (ГРВ)"
|
|
1402
|
+
},
|
|
1403
|
+
"ScheduleRuleDtoPeriod": {
|
|
1404
|
+
"type": "object",
|
|
1405
|
+
"properties": {
|
|
1406
|
+
"from": {
|
|
1407
|
+
"type": "string",
|
|
1408
|
+
"description": "Дата начала периода",
|
|
1409
|
+
"format": "date-time",
|
|
1410
|
+
"example": "2024-01-01T00:00:00Z"
|
|
1411
|
+
},
|
|
1412
|
+
"till": {
|
|
1413
|
+
"type": "string",
|
|
1414
|
+
"description": "Дата окончания периода",
|
|
1415
|
+
"format": "date-time",
|
|
1416
|
+
"example": "2024-12-31T23:59:59Z"
|
|
1417
|
+
},
|
|
1418
|
+
"holidayCalendarID": {
|
|
1419
|
+
"type": "integer",
|
|
1420
|
+
"description": "Идентификатор календаря праздников",
|
|
1421
|
+
"format": "int32",
|
|
1422
|
+
"example": 1
|
|
1423
|
+
},
|
|
1424
|
+
"shortageHoursBeforeHoliday": {
|
|
1425
|
+
"type": "integer",
|
|
1426
|
+
"description": "Сокращение часов перед праздником",
|
|
1427
|
+
"format": "int32",
|
|
1428
|
+
"example": 1
|
|
1429
|
+
},
|
|
1430
|
+
"model": {
|
|
1431
|
+
"$ref": "#/components/schemas/SchedulePersistDto"
|
|
1432
|
+
}
|
|
1433
|
+
},
|
|
1434
|
+
"additionalProperties": false,
|
|
1435
|
+
"description": "Период действия правила графика"
|
|
1436
|
+
},
|
|
1437
|
+
"ScheduleUpdateDto": {
|
|
1438
|
+
"type": "object",
|
|
1439
|
+
"properties": {
|
|
1440
|
+
"from": {
|
|
1441
|
+
"type": "string",
|
|
1442
|
+
"description": "Дата начала периода",
|
|
1443
|
+
"format": "date-time",
|
|
1444
|
+
"example": "2024-01-01T00:00:00Z"
|
|
1445
|
+
},
|
|
1446
|
+
"till": {
|
|
1447
|
+
"type": "string",
|
|
1448
|
+
"description": "Дата окончания периода",
|
|
1449
|
+
"format": "date-time",
|
|
1450
|
+
"example": "2024-12-31T23:59:59Z"
|
|
1451
|
+
},
|
|
1452
|
+
"considerPublicHolidays": {
|
|
1453
|
+
"type": "boolean",
|
|
1454
|
+
"description": "Учитывать праздничные дни",
|
|
1455
|
+
"example": true
|
|
1456
|
+
},
|
|
1457
|
+
"shortageHoursBeforeHoliday": {
|
|
1458
|
+
"type": "integer",
|
|
1459
|
+
"description": "Сокращение часов перед праздником",
|
|
1460
|
+
"format": "int32",
|
|
1461
|
+
"example": 1
|
|
1462
|
+
},
|
|
1463
|
+
"rules": {
|
|
1464
|
+
"type": "array",
|
|
1465
|
+
"items": {
|
|
1466
|
+
"$ref": "#/components/schemas/ScheduleDtoRule"
|
|
1467
|
+
},
|
|
1468
|
+
"description": "Правила расписания",
|
|
1469
|
+
"nullable": true
|
|
1470
|
+
},
|
|
1471
|
+
"overridings": {
|
|
1472
|
+
"type": "array",
|
|
1473
|
+
"items": {
|
|
1474
|
+
"$ref": "#/components/schemas/ScheduleDto"
|
|
1475
|
+
},
|
|
1476
|
+
"description": "Переопределения расписания",
|
|
1477
|
+
"nullable": true
|
|
1478
|
+
},
|
|
1479
|
+
"name": {
|
|
1480
|
+
"type": "string",
|
|
1481
|
+
"description": "Название",
|
|
1482
|
+
"nullable": true,
|
|
1483
|
+
"example": "Стандартный график"
|
|
1484
|
+
},
|
|
1485
|
+
"description": {
|
|
1486
|
+
"type": "string",
|
|
1487
|
+
"description": "Описание",
|
|
1488
|
+
"nullable": true,
|
|
1489
|
+
"example": "График работы с 9:00 до 18:00"
|
|
1490
|
+
},
|
|
1491
|
+
"scheduleTypeID": {
|
|
1492
|
+
"type": "integer",
|
|
1493
|
+
"description": "Тип графика",
|
|
1494
|
+
"format": "int32",
|
|
1495
|
+
"nullable": true,
|
|
1496
|
+
"example": 1
|
|
1497
|
+
}
|
|
1498
|
+
},
|
|
1499
|
+
"additionalProperties": false,
|
|
1500
|
+
"description": "Данные для обновления графика рабочего времени"
|
|
1501
|
+
},
|
|
1502
|
+
"WorkScheduleDailyByDayResult": {
|
|
1503
|
+
"type": "object",
|
|
1504
|
+
"properties": {
|
|
1505
|
+
"date": {
|
|
1506
|
+
"type": "string",
|
|
1507
|
+
"description": "Дата",
|
|
1508
|
+
"format": "date-time",
|
|
1509
|
+
"example": "2024-06-15T00:00:00Z"
|
|
1510
|
+
},
|
|
1511
|
+
"isNightShift": {
|
|
1512
|
+
"type": "boolean",
|
|
1513
|
+
"description": "Признак ночной смены",
|
|
1514
|
+
"example": false
|
|
1515
|
+
},
|
|
1516
|
+
"isPublicHoliday": {
|
|
1517
|
+
"type": "boolean",
|
|
1518
|
+
"description": "Признак праздничного дня",
|
|
1519
|
+
"nullable": true,
|
|
1520
|
+
"example": false
|
|
1521
|
+
},
|
|
1522
|
+
"timeFrom": {
|
|
1523
|
+
"type": "string",
|
|
1524
|
+
"description": "Начало работы",
|
|
1525
|
+
"format": "date-time",
|
|
1526
|
+
"nullable": true,
|
|
1527
|
+
"example": "2024-06-15T09:00:00Z"
|
|
1528
|
+
},
|
|
1529
|
+
"timeTill": {
|
|
1530
|
+
"type": "string",
|
|
1531
|
+
"description": "Окончание работы",
|
|
1532
|
+
"format": "date-time",
|
|
1533
|
+
"nullable": true,
|
|
1534
|
+
"example": "2024-06-15T18:00:00Z"
|
|
1535
|
+
}
|
|
1536
|
+
},
|
|
1537
|
+
"additionalProperties": false,
|
|
1538
|
+
"description": "Запись графика по суткам"
|
|
1539
|
+
},
|
|
1540
|
+
"WorkScheduleDailyItemResult": {
|
|
1541
|
+
"type": "object",
|
|
1542
|
+
"properties": {
|
|
1543
|
+
"scheduleRuleID": {
|
|
1544
|
+
"type": "integer",
|
|
1545
|
+
"description": "Идентификатор правила графика рабочего времени",
|
|
1546
|
+
"format": "int32",
|
|
1547
|
+
"example": 10
|
|
1548
|
+
},
|
|
1549
|
+
"timeFrom": {
|
|
1550
|
+
"type": "string",
|
|
1551
|
+
"description": "Начало работы",
|
|
1552
|
+
"format": "date-time",
|
|
1553
|
+
"nullable": true,
|
|
1554
|
+
"example": "2024-06-15T09:00:00Z"
|
|
1555
|
+
},
|
|
1556
|
+
"timeTill": {
|
|
1557
|
+
"type": "string",
|
|
1558
|
+
"description": "Окончание работы",
|
|
1559
|
+
"format": "date-time",
|
|
1560
|
+
"nullable": true,
|
|
1561
|
+
"example": "2024-06-15T18:00:00Z"
|
|
1562
|
+
},
|
|
1563
|
+
"isPublicHoliday": {
|
|
1564
|
+
"type": "boolean",
|
|
1565
|
+
"description": "Признак праздничного дня",
|
|
1566
|
+
"nullable": true,
|
|
1567
|
+
"example": false
|
|
1568
|
+
},
|
|
1569
|
+
"isNightShift": {
|
|
1570
|
+
"type": "boolean",
|
|
1571
|
+
"description": "Признак ночной смены",
|
|
1572
|
+
"example": false
|
|
1573
|
+
},
|
|
1574
|
+
"dateWork": {
|
|
1575
|
+
"type": "string",
|
|
1576
|
+
"description": "Дата работы",
|
|
1577
|
+
"format": "date-time",
|
|
1578
|
+
"example": "2024-06-15T00:00:00Z"
|
|
1579
|
+
}
|
|
1580
|
+
},
|
|
1581
|
+
"additionalProperties": false,
|
|
1582
|
+
"description": "Режим работы"
|
|
1583
|
+
}
|
|
1584
|
+
},
|
|
1585
|
+
"securitySchemes": {
|
|
1586
|
+
"Bearer": {
|
|
1587
|
+
"type": "http",
|
|
1588
|
+
"description": "Введите токен для авторизации",
|
|
1589
|
+
"scheme": "Bearer",
|
|
1590
|
+
"bearerFormat": "JWT"
|
|
1591
|
+
}
|
|
1592
|
+
}
|
|
1593
|
+
},
|
|
1594
|
+
"tags": [
|
|
1595
|
+
{
|
|
1596
|
+
"name": "ScheduleRules",
|
|
1597
|
+
"description": "Контроллер управления графиками рабочего времени"
|
|
1598
|
+
},
|
|
1599
|
+
{
|
|
1600
|
+
"name": "WorkSchedules",
|
|
1601
|
+
"description": "Контроллер управления сгенерированным графиком рабочего времени"
|
|
1602
|
+
},
|
|
1603
|
+
{
|
|
1604
|
+
"name": "ScheduleRules",
|
|
1605
|
+
"description": "Контроллер управления графиками рабочего времени"
|
|
1606
|
+
},
|
|
1607
|
+
{
|
|
1608
|
+
"name": "WorkSchedules",
|
|
1609
|
+
"description": "Контроллер управления сгенерированным графиком рабочего времени"
|
|
1610
|
+
}
|
|
1611
|
+
]
|
|
1612
|
+
}
|