API Смены (shifts)

Документация API: Смены

Управление съемочными сменами и локациями

Аутентификация

Все запросы к API требуют заголовок аутентификации:

X-API-Key: your_api_token_here
API-токен можно получить в личном кабинете в разделе "API доступ"

Получение списка смен

GET /shifts

Возвращает список смен проекта с поддержкой пагинации и сортировки.

Параметры запроса (Query String)

Параметр Тип Обязательный Описание
project_id integer Да ID проекта
page integer Нет Номер страницы (по умолчанию 1)
per_page integer Нет Элементов на страницу (макс. 100)
date_from date Нет Фильтр по дате начала (YYYY-MM-DD)
date_to date Нет Фильтр по дате окончания (YYYY-MM-DD)
sort string Нет Поле сортировки: shift_date, title, updated_at
order string Нет Направление: asc или desc

Пример запроса

GET /api/shifts?project_id=123&sort=updated_at&order=desc
X-API-Key: your_api_token_here

Пример успешного ответа

{
  "status": "success",
  "data": {
    "shifts": [
      {
        "id": 45,
        "title": "Смена 1: Павильон",
        "shift_date": "2023-10-25",
        "start_time": "08:00:00",
        "end_time": "20:00:00",
        "primary_location_id": 12,
        "location": {
          "id": 12,
          "title": "Студия Мосфильм"
        },
        "callsheets": [ ... ],
        "updated_at": "2023-10-20 14:30:00"
      }
    ],
    "pagination": {
      "current_page": 1,
      "per_page": 20,
      "total": 15,
      "total_pages": 1
    }
  }
}

Получение списка локаций

Важно! Для создания смены необходимо указать ID основной локации (primary_location_id). Используйте этот метод для получения списка доступных локаций.
GET /locations

Параметры запроса

Параметр Тип Обязательный Описание
project_id integer Да ID проекта, для которого нужны локации

Пример запроса

GET /api/locations?project_id=123
X-API-Key: your_api_token_here

Пример ответа

{
  "success": true,
  "data": [
    {
      "id": 12,
      "title": "Студия Мосфильм",
      "address": "г. Москва, ул. Мосфильмовская, 1",
      "lat": "55.7261",
      "lng": "37.5278"
    },
    {
      "id": 15,
      "title": "Лофт на Флаконе",
      "address": "г. Москва, ул. Б. Новодмитровская, 36",
      "lat": null,
      "lng": null
    }
  ]
}

Создание смены

POST /shifts

Создает новую съемочную смену в проекте.

Параметры запроса (JSON Body)

Параметр Тип Обязательный Описание Валидация
project_id integer Да ID проекта Existing ID
title string Да Название смены max: 255 chars
shift_date date Да Дата смены YYYY-MM-DD
primary_location_id integer Да ID основной локации Получить через GET /locations
start_time time Нет Время начала HH:MM или HH:MM:SS
end_time time Нет Время окончания HH:MM или HH:MM:SS
weather string Нет Погода max: 100 chars
notes string Нет Заметки к смене text
callsheets array Нет Массив ID вызывных листов [1, 2, 3]

Пример запроса

POST /api/shifts
Content-Type: application/json
X-API-Key: your_api_token_here

{
  "project_id": 123,
  "title": "Смена 1: Интерьеры квартиры",
  "shift_date": "2023-11-15",
  "start_time": "07:00",
  "end_time": "19:00",
  "primary_location_id": 45,
  "weather": "Пасмурно, +12°C",
  "notes": "Группа собирается у главного входа",
  "callsheets": [101, 102]
}

Пример успешного ответа

{
  "status": "success",
  "message": "Shift created successfully",
  "data": {
    "id": 88,
    "title": "Смена 1: Интерьеры квартиры",
    "shift_date": "2023-11-15",
    "primary_location_id": 45
  }
}

Коды ответов

Код Описание
200 Успешный запрос
201 Ресурс успешно создан
400 Ошибка валидации данных
401 Неверный или отсутствующий API-ключ
403 Нет доступа к проекту
404 Проект или локация не найдены