{
    "openapi": "3.0.0",
    "info": {
        "title": "Документация API",
        "description": "\n# Введение\n\n\nAPI представлен набором REST эндпоинтов.\n\n\n# Авторизация\n\n\nДля доступа к API необходимо получить токен, который должен передаваться с каждым запросом в заголовке `X-API-KEY`.\n\nПо умолчанию для всех эндпоинтов количество запросов по токену в день - 1000 запросов.\n\nДля получения токена необходимо обратиться по почте info@travelsoft.by.\n\n\n```javascript\n{\n  \"error\": true,\n  \"messages\": [\n    {\n      \"code\": 401,\n      \"title\": \"Превышено число запросов\"\n    }\n  ]\n}\n```\n\nПример ответа на неверный API-key:\n\n\n```javascript\n{\n  \"error\": true,\n  \"messages\": [\n    {\n      \"code\": 401,\n      \"title\": \"Неверный API-key\"\n    }\n  ]\n}\n```\n        ",
        "version": "1.0.0"
    },
    "servers": [
        {
            "url": "/api",
            "description": "Префикс для доступа к эндпоинтам"
        }
    ],
    "paths": {
        "/chat/countries/": {
            "get": {
                "tags": [
                    "Чат-бот"
                ],
                "summary": "Получение списка стран в турах",
                "operationId": "ae428ebf29162ac825f3e6cc8acac8b4",
                "parameters": [
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Поиск по названию страны",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "departure_id",
                        "in": "query",
                        "description": "ID города отправления",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "id[]",
                        "in": "query",
                        "description": "ID стран",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Cписок стран в турах",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 20862
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Беларусь"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/chat/departures/": {
            "get": {
                "tags": [
                    "Чат-бот"
                ],
                "summary": "Получение списка городов отправлений",
                "operationId": "80bccd026fd2c5ca58d0506f985e8524",
                "responses": {
                    "200": {
                        "description": "Список городов",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 20873
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Минск"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/chat/cities/": {
            "get": {
                "tags": [
                    "Чат-бот"
                ],
                "summary": "Получение списка городов в турах",
                "operationId": "f5119b5a5976e09d0e26f6113484c44b",
                "parameters": [
                    {
                        "name": "departure_id",
                        "in": "query",
                        "description": "ID города отправления",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Поиск по названию города",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id[]",
                        "in": "query",
                        "description": "ID городов",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Список городов в турах",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 20873
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Минск"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/chat/operators/": {
            "get": {
                "tags": [
                    "Чат-бот"
                ],
                "summary": "Получение списка туроператоров",
                "operationId": "815c77d2d0bfb84c3fe896b34dc859ae",
                "responses": {
                    "200": {
                        "description": "Список туроператоров",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Дилижанстур"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/chat/types/": {
            "get": {
                "tags": [
                    "Чат-бот"
                ],
                "summary": "Получение списка типов туров",
                "operationId": "a265ad5f95858100a4a96b8c21dc77ac",
                "parameters": [
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Поиск по названию типа тура",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id[]",
                        "in": "query",
                        "description": "ID типа тура",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Список типов туров",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 89182
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "С визовой поддержкой"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/chat/transports/": {
            "get": {
                "tags": [
                    "Чат-бот"
                ],
                "summary": "Получение списка типов транспорта",
                "operationId": "9d773127c5358dd2f1a3f15d546999c0",
                "parameters": [
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Поиск по названию транспорта",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id[]",
                        "in": "query",
                        "description": "ID транспорта",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Список типов транспорта",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 21095
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Автобус"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/chat/trips/": {
            "get": {
                "tags": [
                    "Чат-бот"
                ],
                "summary": "Получение списка туров",
                "operationId": "f6b3ecf119ac5aa57cca270bb404eefe",
                "parameters": [
                    {
                        "name": "size",
                        "in": "query",
                        "description": "Количество элементов на странице",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 20
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Номер страницы",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Поиск по названию тура",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "departure_id",
                        "in": "query",
                        "description": "ID города отправления",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "days[]",
                        "in": "query",
                        "description": "Продолжительность дней",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "operator_id[]",
                        "in": "query",
                        "description": "ID туроператора",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "city_id[]",
                        "in": "query",
                        "description": "ID городов в туре",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "country_id[]",
                        "in": "query",
                        "description": "ID стран в туре",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "type_id[]",
                        "in": "query",
                        "description": "ID типов туров",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "transport_id[]",
                        "in": "query",
                        "description": "ID типов транспорта",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Список туров",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 89938
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Дорогами Франции"
                                                    },
                                                    "days": {
                                                        "type": "integer",
                                                        "example": 8
                                                    },
                                                    "nights": {
                                                        "type": "integer",
                                                        "example": 7
                                                    },
                                                    "route": {
                                                        "type": "string",
                                                        "example": "Бамберг - Страсбург - Кольмар* - Париж - Нормандия* - Реймс - Нюрнберг*"
                                                    },
                                                    "operator": {
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 6
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Экотур-6"
                                                            }
                                                        },
                                                        "type": "object"
                                                    },
                                                    "transport": {
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 21095
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Автобус"
                                                            }
                                                        },
                                                        "type": "object"
                                                    },
                                                    "types": {
                                                        "type": "array",
                                                        "items": {
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer",
                                                                    "example": 89181
                                                                },
                                                                "name": {
                                                                    "type": "string",
                                                                    "example": "Рождественский"
                                                                }
                                                            },
                                                            "type": "object"
                                                        },
                                                        "example": [
                                                            {
                                                                "id": 89181,
                                                                "name": "Рождественский"
                                                            },
                                                            {
                                                                "id": 21099,
                                                                "name": "Экскурсионный"
                                                            },
                                                            {
                                                                "id": 89185,
                                                                "name": "Туры по Европе"
                                                            }
                                                        ]
                                                    },
                                                    "departure": {
                                                        "type": "array",
                                                        "items": {
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer",
                                                                    "example": 20873
                                                                },
                                                                "name": {
                                                                    "type": "string",
                                                                    "example": "Минск"
                                                                }
                                                            },
                                                            "type": "object"
                                                        },
                                                        "nullable": true
                                                    },
                                                    "cities": {
                                                        "type": "array",
                                                        "items": {
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer",
                                                                    "example": 63890
                                                                },
                                                                "name": {
                                                                    "type": "string",
                                                                    "example": "Бамберг"
                                                                }
                                                            },
                                                            "type": "object"
                                                        },
                                                        "example": [
                                                            {
                                                                "id": 63890,
                                                                "name": "Бамберг"
                                                            },
                                                            {
                                                                "id": 63934,
                                                                "name": "Страсбург"
                                                            },
                                                            {
                                                                "id": 63932,
                                                                "name": "Кольмар"
                                                            },
                                                            {
                                                                "id": 20957,
                                                                "name": "Париж"
                                                            },
                                                            {
                                                                "id": 63985,
                                                                "name": "Нормандия"
                                                            },
                                                            {
                                                                "id": 63986,
                                                                "name": "Реймс"
                                                            },
                                                            {
                                                                "id": 63512,
                                                                "name": "Нюрнберг"
                                                            }
                                                        ]
                                                    },
                                                    "countries": {
                                                        "type": "array",
                                                        "items": {
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer",
                                                                    "example": 20887
                                                                },
                                                                "name": {
                                                                    "type": "string",
                                                                    "example": "Германия"
                                                                }
                                                            },
                                                            "type": "object"
                                                        },
                                                        "example": [
                                                            {
                                                                "id": 20887,
                                                                "name": "Германия"
                                                            },
                                                            {
                                                                "id": 20884,
                                                                "name": "Франция"
                                                            }
                                                        ]
                                                    },
                                                    "gross": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "example": 410
                                                    },
                                                    "gross_byn": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "example": 1431
                                                    },
                                                    "currency": {
                                                        "type": "string",
                                                        "example": "EUR"
                                                    },
                                                    "tourservice": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "example": 698
                                                    },
                                                    "tourservice_currency": {
                                                        "type": "string",
                                                        "example": "BYN"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        },
                                        "meta": {
                                            "properties": {
                                                "page": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "size": {
                                                    "type": "integer",
                                                    "example": 20
                                                },
                                                "lastPage": {
                                                    "type": "integer",
                                                    "example": 8
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "example": 158
                                                }
                                            },
                                            "type": "object",
                                            "nullable": true
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/chat/trips/{id}/": {
            "get": {
                "tags": [
                    "Чат-бот"
                ],
                "summary": "Получение описания тура",
                "description": "Возвращает описание тура по идентификатору",
                "operationId": "1292732d8ec2c6a98fb9c7a047994faa",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID тура",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Успешный ответ с описанием тура",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "data": {
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 89219
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Путешествие по Алтаю"
                                                },
                                                "days": {
                                                    "type": "integer",
                                                    "example": 13
                                                },
                                                "nights": {
                                                    "type": "integer",
                                                    "example": 12
                                                },
                                                "route": {
                                                    "type": "string",
                                                    "example": "Минск — Москва — Барнаул — Москва — Минск"
                                                },
                                                "operator": {
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer",
                                                            "example": 3
                                                        },
                                                        "name": {
                                                            "type": "string",
                                                            "example": "Оригинальный тур"
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "transport": {
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer",
                                                            "example": 21096
                                                        },
                                                        "name": {
                                                            "type": "string",
                                                            "example": "Самолет"
                                                        }
                                                    },
                                                    "type": "object",
                                                    "nullable": true
                                                },
                                                "departure": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 20873
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Минск"
                                                            }
                                                        },
                                                        "type": "object"
                                                    },
                                                    "nullable": true
                                                },
                                                "cities": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 59869
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Москва"
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                },
                                                "countries": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 20932
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Россия"
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                },
                                                "types": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 89210
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Авиатуры"
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                },
                                                "description": {
                                                    "type": "string",
                                                    "example": "Алтай — это не просто место на карте. Это мир, где реки поют, а горы дышат древними легендами..."
                                                },
                                                "program": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "title": {
                                                                "type": "string",
                                                                "example": "День 1. Вылет из Минска"
                                                            },
                                                            "text": {
                                                                "type": "string",
                                                                "example": "17:35 — вылет из Минска 19:05 — прибытие в Москву ..."
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                },
                                                "include": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string",
                                                        "example": "Авиабилеты Минск—Москва—Горно-Алтайск—Москва—Минск"
                                                    }
                                                },
                                                "not_include": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string",
                                                        "example": "Личные расходы"
                                                    }
                                                },
                                                "gross": {
                                                    "description": "Цена от",
                                                    "type": "integer",
                                                    "example": 1895
                                                },
                                                "gross_byn": {
                                                    "description": "Цена от (в белорусских рублях)",
                                                    "type": "integer",
                                                    "example": 5685
                                                },
                                                "currency": {
                                                    "type": "string",
                                                    "example": "USD"
                                                },
                                                "tourservice": {
                                                    "description": "Туруслуга от",
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "tourservice_currency": {
                                                    "type": "string",
                                                    "example": "BYN"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Тур не найден",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "messages": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "code": {
                                                        "type": "integer",
                                                        "example": 404
                                                    },
                                                    "title": {
                                                        "type": "string",
                                                        "example": "Тур с id не найден"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/chat/search/": {
            "get": {
                "tags": [
                    "Чат-бот"
                ],
                "summary": "Поиск туров",
                "description": "Возвращает предложения туров с расчитанными минимальными ценами",
                "operationId": "2af7bd986b75343452f5c94d0a270e5c",
                "parameters": [
                    {
                        "name": "date_from",
                        "in": "query",
                        "description": "Дата c (dd.mm.yyyy)",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "description": "Дата по (dd.mm.yyyy)",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "adults",
                        "in": "query",
                        "description": "Количество взрослых",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "children_age[]",
                        "in": "query",
                        "description": "Массив с возрастами детей",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "departure_id",
                        "in": "query",
                        "description": "ID города отправления",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "days[]",
                        "in": "query",
                        "description": "Продолжительность дней",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "operator_id[]",
                        "in": "query",
                        "description": "ID туроператора",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "city_id[]",
                        "in": "query",
                        "description": "ID городов в туре",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "country_id[]",
                        "in": "query",
                        "description": "ID стран в туре",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "type_id[]",
                        "in": "query",
                        "description": "ID типов туров",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "transport_id[]",
                        "in": "query",
                        "description": "ID типов транспорта",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Успешный ответ с предложениями тура",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "data": {
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "eyJhZHVsdHMiOjEsImNoaWxkcmVuIjowLCJvZmZlcl9pZCI6IiIsInNlYXRzIjpbXSwiZGF0ZSI6IjA4LjA0LjIwMjYiLCJkYXRlX2Zyb20iOiIwOC4wNC4yMDI2IiwiZGF0ZV90byI6IjA4LjA0LjIwMjYiLCJjaGlsZHJlbl9hZ2UiOltdLCJzZXJ2aWNlX3R5cGUiOiJleGN1cnNpb250b3VyIiwicmF0ZV9pZCI6OCwiY2l0eV9pZCI6MTE3MCwicGxhY2VtZW50X2lkIjpudWxsLCJleGN1cnNpb25fdG91cl9yYXRlX2lkIjo4LCJzZXJ2aWNlX2lkIjo0M30="
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Обзорная экскурсия по Минску"
                                                },
                                                "operator": {
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer",
                                                            "example": 4
                                                        },
                                                        "name": {
                                                            "type": "string",
                                                            "example": "Экотур-6"
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "description_id": {
                                                    "type": "integer",
                                                    "example": 89891
                                                },
                                                "gross": {
                                                    "type": "integer",
                                                    "example": 65
                                                },
                                                "gross_byn": {
                                                    "type": "integer",
                                                    "example": 65
                                                },
                                                "currency": {
                                                    "type": "string",
                                                    "example": "BYN"
                                                },
                                                "tourservice": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "tourservice_currency": {
                                                    "type": "string",
                                                    "example": "BYN"
                                                },
                                                "date_from": {
                                                    "type": "string",
                                                    "example": "08.04.2026"
                                                },
                                                "date_to": {
                                                    "type": "string",
                                                    "example": "08.04.2026"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Тур не найден",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "messages": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "code": {
                                                        "type": "integer",
                                                        "example": 404
                                                    },
                                                    "title": {
                                                        "type": "string",
                                                        "example": "Тур с id не найден"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/chat/details/": {
            "get": {
                "tags": [
                    "Чат-бот"
                ],
                "summary": "Детальный поиск тура",
                "description": "Возвращает предложения тура с точными расчитанными ценами. Цены могут зависить от города выезда, тарифа, отеля(Для туров в Европу, Россию и т.д.), и времени начала(Только для экскурсий)",
                "operationId": "4ff4f96fdf1163efb4ea50b019077b50",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "ID тура",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "description": "Дата начала тура",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "adults",
                        "in": "query",
                        "description": "Количество взрослых",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "children_age[]",
                        "in": "query",
                        "description": "Массив с возрастами детей",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Успешный ответ с описанием тура",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "string",
                                                        "example": "eyJhZHVsdHMiOjEsImNoaWxkcmVuIjowLCJvZmZlcl9pZCI6IiIsInNlYXRzIjpbXSwiZGF0ZSI6IjI1LjA0LjIwMjYiLCJkYXRlX2Zyb20iOiIyNS4wNC4yMDI2IiwiZGF0ZV90byI6IjI1LjA0LjIwMjYiLCJjaGlsZHJlbl9hZ2UiOltdLCJzZXJ2aWNlX3R5cGUiOiJleGN1cnNpb250b3VyIiwicmF0ZV9pZCI6MTY4MSwiY2l0eV9pZCI6MTE3MCwicGxhY2VtZW50X2lkIjoxOTA3LCJleGN1cnNpb25fdG91cl9yYXRlX2lkIjoxNjgxLCJzZXJ2aWNlX2lkIjo1ODF9"
                                                    },
                                                    "gross": {
                                                        "description": "Посчитанная стоимость",
                                                        "type": "number",
                                                        "format": "float",
                                                        "example": 410
                                                    },
                                                    "gross_byn": {
                                                        "description": "Посчитанная стоимость в белорусских рублях",
                                                        "type": "number",
                                                        "format": "float",
                                                        "example": 1364
                                                    },
                                                    "currency": {
                                                        "type": "string",
                                                        "enum": [
                                                            "BYN",
                                                            "RUB",
                                                            "USD",
                                                            "EUR"
                                                        ],
                                                        "example": "EUR"
                                                    },
                                                    "tourservice": {
                                                        "description": "Посчитанная туруслуга",
                                                        "type": "integer",
                                                        "example": 673
                                                    },
                                                    "tourservice_currency": {
                                                        "description": "Валюта туруслуги только в BYN",
                                                        "type": "string",
                                                        "example": "BYN"
                                                    },
                                                    "departure": {
                                                        "description": "Город отправления, могут быть разными от них зависит цена тура",
                                                        "type": "string",
                                                        "example": "Минск"
                                                    },
                                                    "rate": {
                                                        "description": "Название тарифа, у некоторых компаний там может быть написано стандартный, либо название тарифа размещения",
                                                        "type": "string",
                                                        "example": "2-3 местный номер"
                                                    },
                                                    "placement": {
                                                        "description": "Название категории отеля, бывают разные категорий отелей для туров в Европу, Россию и т.д.",
                                                        "type": "string",
                                                        "example": "Отель 2-3*",
                                                        "nullable": true
                                                    },
                                                    "time": {
                                                        "description": "Время начала экскурсии, это поле актуально только для некоторых экскурсий туроператора Турин в частности",
                                                        "type": "string",
                                                        "example": "13:00",
                                                        "nullable": true
                                                    },
                                                    "on_request": {
                                                        "type": "boolean",
                                                        "example": false
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Не валидные параметры запроса",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "messages": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "code": {
                                                        "type": "integer",
                                                        "example": 400
                                                    },
                                                    "title": {
                                                        "type": "string",
                                                        "example": "Отсутствует обязательный параметр id"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Тур не найден",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "messages": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "code": {
                                                        "type": "integer",
                                                        "example": 404
                                                    },
                                                    "title": {
                                                        "type": "string",
                                                        "example": "Тур с id не найден"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/chat/dates/": {
            "get": {
                "tags": [
                    "Чат-бот"
                ],
                "summary": "Получение дат начала тура",
                "description": "Возвращает даты тура",
                "operationId": "6ee0424e7ff33de9ac6fa2d3d1f7da45",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "ID тура",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Успешный ответ с датами тура",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string",
                                                "example": "25.05.2026"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Не валидные параметры запроса",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "messages": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "code": {
                                                        "type": "integer",
                                                        "example": 400
                                                    },
                                                    "title": {
                                                        "type": "string",
                                                        "example": "Отсутствует обязательный параметр id"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Тур не найден",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "messages": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "code": {
                                                        "type": "integer",
                                                        "example": 404
                                                    },
                                                    "title": {
                                                        "type": "string",
                                                        "example": "Тур с id не найден"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "apiKeyAuth": {
                "type": "apiKey",
                "name": "X-API-KEY",
                "in": "header"
            }
        }
    },
    "security": [
        {
            "apiKeyAuth": []
        }
    ],
    "tags": [
        {
            "name": "Чат-бот",
            "description": "Методы для получения информации по турам и экскурсиям для чат-бота"
        }
    ]
}