Перейти к содержимому

Обновление количества свободных мест в туре

Для обновления количества свободных мест в туре используйте POST запрос https://toursystema.com/org-api/tour/update-availability

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

json
{
  "tour_id": 123,
  "id": 1234,
  "start": "2024-10-10",
  "end": "2024-12-20",
  "number_of_seats": 10,
  "number_of_free_seats": 5
}

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

ПараметрОписаниеТип данныхОбязательно
tour_idИдентификатор тура в админкеintegerДа
idИдентификатор групповой даты в туреintegerДа
startДата начала тураdate
YYYY-MM-DD
Да
endДата завершения тураdate
YYYY-MM-DD
Да
number_of_seatsКоличество мест всегоinteger | nullНет
number_of_free_seatsНовое количество свободных местinteger | nullНет

Логика работы

При получении запроса система выполняет следующие действия:

  1. Проверяет наличие организатора в системе
  2. Находит тур по указанному tour_id
  3. Проверяет доступ организатора к туру
  4. В найденном туре проверяет существование групповой даты с идентификатором id
  5. Проверяет соответствие дат проведения (start и end) с датами групповой даты
  6. Обновляет в найденной дате параметры:
    • "Свободных мест" (если передан number_of_free_seats)
    • "Количество мест всего" (если передан number_of_seats)
  7. Если текущий тур является вариантом тура:
    • Система находит все связанные варианты этого тура
    • В каждом варианте ищет групповые даты с указанными датами проведения (start и end)
    • Обновляет в найденных датах параметры:
      • "Свободных мест"
      • "Количество мест всего"

Структура ответа

Успешный ответ (HTTP 200)

json
{
    "success": true
}

Возможные ошибки

  • Неверный формат данных (HTTP 400)
json
{
    "name": "Bad Request",
    "message": "Неверный формат данных",
    "code": 0,
    "status": 400
}
  • Даты не совпадают (HTTP 400)
json
{
    "name": "Bad Request",
    "message": "Даты проведения не совпадают с указанной групповой датой",
    "code": 0,
    "status": 400
}
  • Организатор не найден (HTTP 404)
json
{
    "name": "Not Found",
    "message": "Организатор не найден",
    "code": 0,
    "status": 404
}
  • Тур не найден (HTTP 404)
json
{
    "name": "Not Found",
    "message": "Тур не найден",
    "code": 0,
    "status": 404
}
  • Групповая дата не найдена (HTTP 404)
json
{
    "name": "Not Found",
    "message": "Групповая дата не найдена",
    "code": 0,
    "status": 404
}
  • Нет доступа к туру (HTTP 403)
json
{
    "name": "Forbidden",
    "message": "У организатора с id 1 нет доступа к туру с id 2",
    "code": 0,
    "status": 403
}
  • Внутренняя ошибка сервера (HTTP 500)
json
{
    "name": "Internal Server Error",
    "message": "Произошла ошибка при обновлении данных",
    "code": 0,
    "status": 500
}