Пресети змін
Повертає пресети змін організації — довідник шаблонів часу («Ранок», «Вечір», «Гнучка»), на які посилається поле shift_preset_id записів графіка.
Скоуп
Скоуп не потрібен — це довідник без секретів, доступний будь-якому валідному ключу організації, незалежно від набору скоупів (див. Скоупи та права → Довідники без скоупу). Довідник потрібен, щоб інтерпретувати записи графіка, тому відкритий без додаткових умов.
Query-параметри
| Параметр | Обов'язковий | Опис |
|---|---|---|
limit |
ні | Ціле 1..200, за замовчуванням 100. |
cursor |
ні | Курсор meta.next_cursor попередньої відповіді — для наступної сторінки. |
from/to, department_id та employee_id на цьому ресурсі не підтримано: передача будь-якого з них → 400 validation_error (параметр відхиляється явно, а не ігнорується мовчки — див. Конвенції → Фільтри). Це довідник без часового виміру та без прив'язки до відділів.
Запит
curl -s https://smengo.com/api/v1/shift-presets \
-H "Authorization: Bearer smg_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
З обмеженням розміру сторінки:
curl -s "https://smengo.com/api/v1/shift-presets?limit=50" \
-H "Authorization: Bearer smg_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
Відповідь
{
"data": [
{
"id": "3f8e2a1c-6b5d-4e9f-a2c1-7d8e9f0a1b2c",
"label": "Утро",
"start_time": "08:00:00",
"end_time": "16:00:00",
"is_flexible": false,
"color": "#22c55e",
"sort_order": 1
},
{
"id": "5a7c9e1b-3d6f-4c8a-9b2d-0e4f6a8c1d35",
"label": "Гибкая",
"start_time": null,
"end_time": null,
"is_flexible": true,
"color": "#a3e635",
"sort_order": 2
}
],
"meta": { "next_cursor": null }
}
Поля відповіді
| Поле | Тип | Опис |
|---|---|---|
id |
string (uuid) |
Унікальний ідентифікатор пресета; на нього посилається shift_preset_id у Записах графіка. |
label |
string |
Назва пресета. |
start_time |
string (HH:MM:SS) | null |
Початок зміни — в таймзоні організації, не в UTC (таймзона — у GET /org, поле timezone). |
end_time |
string (HH:MM:SS) | null |
Кінець зміни — теж у таймзоні організації. |
is_flexible |
boolean |
Чи гнучка зміна — без фіксованих часів початку та кінця. |
color |
string |
Колір пресета в hex (#22c55e); null не буває. |
sort_order |
number (int) |
Позиція у списку; список відсортований за цим полем (плюс id як тай-брейкер). На відміну від типів статусів, тут поле присутнє у відповіді. |
Пара null/null у start_time/end_time — норма, а не пропуск даних: так виглядає гнучка зміна (is_flexible: true), у якої немає фіксованих часів — конкретний час задає сам запис графіка або він не фіксується взагалі.
Пагінація
Список відсортований за sort_order, id. Якщо пресетів більше, ніж limit, meta.next_cursor містить курсор для наступної сторінки; передайте його в cursor наступного запиту як є:
curl -s "https://smengo.com/api/v1/shift-presets?limit=1&cursor=eyJrIjoxLCJpZCI6IjNmOGUyYTFjLTZiNWQtNGU5Zi1hMmMxLTdkOGU5ZjBhMWIyYyJ9" \
-H "Authorization: Bearer smg_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
meta.next_cursor дорівнює null, коли пресетів більше немає. Загальні правила пагінації — у Конвенціях → Пагінація.
Що далі
- Записи графіка — де на пресети посилається
shift_preset_id. - Типи статусів — другий довідник для інтерпретації графіка.
- Організація — таймзона, в якій трактуються
start_time/end_time.