{
  "openapi": "3.0.1",
  "info": {
    "title": "api/trucks-search-api",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "/"
    },
    {
      "url": "https://api.ati.su"
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "paths": {
    "/v1.0/trucks/search/by-filter": {
      "post": {
        "tags": [
          "IntegratorSearch"
        ],
        "summary": "Поиск транспорта по фильтру",
        "parameters": [
          {
            "name": "demo",
            "in": "query",
            "description": "Использовать демо версию",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SearchDescriptorModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SearchDescriptorModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SearchDescriptorModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SearchDescriptorModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IntegratorSearchResultView"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegratorSearchResultView"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegratorSearchResultView"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AccountView": {
        "type": "object",
        "properties": {
          "ati_id": {
            "type": "string",
            "description": "Код фирмы в ATI.SU",
            "nullable": true
          },
          "firm_name": {
            "type": "string",
            "description": "Название фирмы",
            "nullable": true
          },
          "full_firm_name": {
            "type": "string",
            "description": "Полное имя фирмы: Брэнд (Название фирмы, ОПФ)",
            "nullable": true
          },
          "brand": {
            "type": "string",
            "description": "Брэнд фирмы",
            "nullable": true
          },
          "ownership": {
            "type": "string",
            "description": "Идентификатор формы собственности",
            "nullable": true
          },
          "ownership_id": {
            "type": "integer",
            "description": "Право собственности фирмы",
            "format": "int32"
          },
          "firm_type_id": {
            "type": "integer",
            "description": "Идентификатор профиля деятельности фирмы",
            "format": "int32"
          },
          "firm_type": {
            "type": "string",
            "description": "Профиль деятельности фирмы",
            "nullable": true
          },
          "claims_sum": {
            "type": "number",
            "description": "Сумма претензий к данной фирме в рублях",
            "format": "double",
            "nullable": true
          },
          "claims_count": {
            "type": "integer",
            "description": "Количество претензий к данной фирме",
            "format": "int32"
          },
          "bad_partner_mentions_count": {
            "type": "integer",
            "description": "Количество упоминаний о данной фирме на форуме \"Недобросовестные партнеры\"",
            "format": "int32"
          },
          "bad_partner_firms_count": {
            "type": "integer",
            "description": "Количество фирм, которые написали о данной фирме на форуме Недобросовестных партнеров",
            "format": "int32"
          },
          "recommendation_count": {
            "type": "integer",
            "description": "Количество рекомендаций к фирме",
            "format": "int32"
          },
          "recommendations_count": {
            "type": "integer",
            "description": "Количество рекомендаций к фирме",
            "format": "int32"
          },
          "is_ati_partner": {
            "type": "boolean",
            "description": "Партнер ATI.SU"
          },
          "is_odks_member": {
            "type": "boolean",
            "description": "Член общ. движения Круглый Стол"
          },
          "city_id": {
            "type": "integer",
            "description": "Id города откуда фирма",
            "format": "int32"
          },
          "passport": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PassportView"
              }
            ],
            "description": "Паспорт фирмы",
            "nullable": true
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactView"
            },
            "description": "Контакты фирмы",
            "nullable": true
          },
          "user_lists": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomLists"
              }
            ],
            "description": "Пользовательские списки",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "description": "Комментарий к фирме",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BodyType": {
        "enum": [
          0,
          1,
          2,
          4
        ],
        "type": "integer",
        "description": "<ul><li><i>0</i> - Не указано</ li > <li><i>1</i> - Грузовик</ li > <li><i>2</i> - Полуприцеп</ li > <li><i>4</i> - Прицеп</ li > </ul>",
        "format": "int32"
      },
      "ContactView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Идентификатор контакта",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "Имя контакта",
            "nullable": true
          },
          "telephone": {
            "type": "string",
            "description": "Телефон контакта",
            "nullable": true
          },
          "telephone_brand": {
            "type": "string",
            "description": "Телефонный брэнд",
            "nullable": true
          },
          "telephone_region": {
            "type": "string",
            "description": "Регион, в котором зарегистрирован телефонный номер",
            "nullable": true
          },
          "email": {
            "type": "boolean",
            "description": "Есть ли Email у контакта"
          },
          "icq": {
            "type": "string",
            "description": "Icq контакта",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "description": "Мобильный телефон контакта",
            "nullable": true
          },
          "mobile_brand": {
            "type": "string",
            "description": "Мобильный брэнд",
            "nullable": true
          },
          "mobile_region": {
            "type": "string",
            "description": "Регион, в котором зарегистрирован мобильный телефонный номер",
            "nullable": true
          },
          "skype_name": {
            "type": "string",
            "description": "Скайп контакта",
            "nullable": true
          },
          "fax": {
            "type": "string",
            "description": "Факс контакта",
            "nullable": true
          },
          "mobile_operator": {
            "type": "string",
            "description": "Мобильный оператор",
            "nullable": true
          },
          "city_id": {
            "type": "integer",
            "description": "Id города контакта",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomLists": {
        "type": "object",
        "properties": {
          "emoji_firm_lists": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FirmListsGroupingByEmojiInfo"
            },
            "description": "Принадлежность фирмы к спискам пользователя, выполняющего поиск",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Пользовательские списки"
      },
      "DatesParameterModel": {
        "type": "object",
        "properties": {
          "date_option": {
            "type": "string",
            "description": "Когда доступна машина.\r\n<ul><li><i>today-plus</i> - С сегодняшнего дня</li><li><i>today</i> - Только сегодня</li><li><i>tomorrow</i> - Только завтра</li><li><i>today-tomorrow</i> - Сегодня и завтра</li><li><i>today-two-days</i> - Сегодня + 2 дня</li><li><i>today-three-days</i> - Сегодня + 3 дня</li><li><i>today-four-days</i> - Сегодня + 4 дня</li><li><i>today-five-days</i> - Сегодня + 5 дня</li><li><i>manual</i> - Вручную</li></ul>",
            "nullable": true
          },
          "date_from": {
            "type": "string",
            "description": "С какого числа доступна машина. Используется только при значении date_option \"manual\"",
            "format": "date-time",
            "nullable": true
          },
          "date_to": {
            "type": "string",
            "description": "До какого числа доступна машина. Используется только при значении date_option \"manual\"",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Когда доступна машина"
      },
      "DateType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "<ul><li><i>0</i> - готов к загрузке</ li > <li><i>1</i> - с Х по У</ li > <li><i>2</i> - постоянно</ li > </ul>",
        "format": "int32"
      },
      "DimensionsModel": {
        "type": "object",
        "properties": {
          "length": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SegmentModel"
              }
            ],
            "description": "Длина",
            "nullable": true
          },
          "width": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SegmentModel"
              }
            ],
            "description": "Ширина",
            "nullable": true
          },
          "height": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SegmentModel"
              }
            ],
            "description": "Высота",
            "nullable": true
          },
          "include_empty": {
            "type": "boolean",
            "description": "Подходят ли машины с неуказанными габаритами",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Габариты машины"
      },
      "ExtraParamsModel": {
        "type": "object",
        "properties": {
          "dogruz_type": {
            "type": "integer",
            "description": "Возможность догруза\r\n<ul><li><i>0</i> - Догруз или отдельной машиной</li><li><i>1</i> - Только догруз</li><li><i>2</i> - Только отдельной машиной</li></ul>",
            "format": "int32",
            "nullable": true
          },
          "hydrolysis": {
            "type": "boolean",
            "description": "Гидролифт",
            "nullable": true
          },
          "conics": {
            "type": "boolean",
            "description": "Коники",
            "nullable": true
          },
          "do_not_show_regular": {
            "type": "boolean",
            "description": "Не показывать постоянные",
            "nullable": true
          },
          "adr_type": {
            "type": "integer",
            "description": "Тип опасности груза (ADR). [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 100, 101]\r\n<li><i>0</i> - Неважно</li><li><i>1-9</i> - Тип ADR</li><li><i>100</i> - С любым ADR</li><li><i>101</i> - Без ADR</li>",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Дополнительные параметры"
      },
      "FirmGeoModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Id гео-пункта",
            "format": "int32",
            "nullable": true
          },
          "type": {
            "type": "integer",
            "description": "Тип гео-пункта\r\n<ul><li><i>0</i> - Страна</li><li><i>1</i> - Регион</li><li><i>2</i> - Город</li></ul>",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Место регистрации фирмы"
      },
      "FirmListsGroupingByEmojiInfo": {
        "type": "object",
        "properties": {
          "emoji": {
            "type": "string",
            "description": "Эмоджи группы списков",
            "nullable": true
          },
          "total_lists_count": {
            "type": "integer",
            "description": "Общее кол-во списков в группе",
            "format": "int32"
          },
          "head_lists": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FirmListWithEmoji"
            },
            "description": "Вложенная структура со списками группы",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FirmListWithEmoji": {
        "type": "object",
        "properties": {
          "list_name": {
            "type": "string",
            "description": "Название списка",
            "nullable": true
          },
          "list_id": {
            "type": "string",
            "description": "Id списка",
            "format": "uuid"
          },
          "emoji": {
            "type": "string",
            "description": "Эмоджи списка",
            "nullable": true
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ListKey"
              }
            ]
          },
          "fixed": {
            "type": "boolean",
            "description": "Принадлежность к дефолтным спискам"
          }
        },
        "additionalProperties": false
      },
      "FirmStatus": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "type": "integer",
        "description": "<ul><li><i>0</i> - Серые звёзды</ li > <li><i>1</i> - Зелёные звёзды</ li > <li><i>2</i> - Жёлтые звёзды</ li > <li><i>3</i> - Красные звёзды</ li > <li><i>4</i> - Партнёр ATI.SU</ li > <li><i>5</i> - Сотрудник ATI.SU</ li > <li><i>6</i> - Гос. орган</ li > <li><i>7</i> - Член общ. движения Круглый Стол</ li > </ul>",
        "format": "int32"
      },
      "FromGeoModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Id гео-пункта. Используется для страны, региона или города",
            "format": "int32",
            "nullable": true
          },
          "type": {
            "type": "integer",
            "description": "Тип гео-пункта\r\n<ul><li><i>0</i> - Страна</li><li><i>1</i> - Регион</li><li><i>2</i> - Город</li><li><i>5</i> - Список</li></ul>",
            "format": "int32",
            "nullable": true
          },
          "exact_only": {
            "type": "boolean",
            "description": "Только по точным.\r\nУчитывается только при type = 2",
            "nullable": true
          },
          "list_id": {
            "type": "string",
            "description": "Id гео-списка.\r\nИспользуется только при type = 5",
            "format": "uuid",
            "nullable": true
          },
          "radius": {
            "type": "integer",
            "description": "Радиус, в котором ищутся города.\r\nУчитывается только при type = 2",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Место загрузки"
      },
      "IntegratorAbsent": {
        "type": "object",
        "properties": {
          "truck_id": {
            "type": "string",
            "description": "Идентификатор машины",
            "format": "uuid"
          },
          "add_date": {
            "type": "string",
            "description": "Время добавления жалобы",
            "format": "date-time"
          },
          "sender_firm_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IntegratorFirmSummary"
              }
            ],
            "description": "Информация о фирме",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IntegratorComplaint": {
        "type": "object",
        "properties": {
          "truck_id": {
            "type": "string",
            "description": "Идентификатор машины",
            "format": "uuid"
          },
          "add_date": {
            "type": "string",
            "description": "Время добавления жалобы",
            "format": "date-time"
          },
          "change_date": {
            "type": "string",
            "description": "Время последнего редактирования жалобы",
            "format": "date-time"
          },
          "note": {
            "type": "string",
            "description": "Текст жалобы",
            "nullable": true
          },
          "sender_firm_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IntegratorFirmSummary"
              }
            ],
            "description": "Информация о фирме, оставившей жалобу",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IntegratorContactSummary": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Имя контакта",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "Телефон контакта",
            "nullable": true
          },
          "mobile_phone": {
            "type": "string",
            "description": "Мобильный телефон контакта",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "Город контакта",
            "nullable": true
          },
          "icq": {
            "type": "string",
            "description": "Icq контакта",
            "nullable": true
          },
          "skype_name": {
            "type": "string",
            "description": "Skype контакта",
            "nullable": true
          },
          "fax": {
            "type": "string",
            "description": "Факс контакта",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Email контакта",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Информация о контакте"
      },
      "IntegratorCounterOffer": {
        "type": "object",
        "properties": {
          "truck_id": {
            "type": "string",
            "description": "Идентификатор машины",
            "format": "uuid"
          },
          "addition_date": {
            "type": "string",
            "description": "Время добавления встречного предложения",
            "format": "date-time"
          },
          "change_date": {
            "type": "string",
            "description": "Время последнего редактирования встречного предложения",
            "format": "date-time"
          },
          "cash_sum": {
            "type": "number",
            "description": "Ставка наличными",
            "format": "double",
            "nullable": true
          },
          "currency_id": {
            "type": "integer",
            "description": "Валюта для ставки наличными",
            "format": "int32",
            "nullable": true
          },
          "sum_with_nds": {
            "type": "number",
            "description": "Ставка с НДС",
            "format": "double",
            "nullable": true
          },
          "nds_currency_id": {
            "type": "integer",
            "description": "Валюта ставки с НДС",
            "format": "int32",
            "nullable": true
          },
          "sum_without_nds": {
            "type": "number",
            "description": "Ставка без НДС",
            "format": "double",
            "nullable": true
          },
          "not_nds_currency_id": {
            "type": "integer",
            "description": "Валюта ставки без НДС",
            "format": "int32",
            "nullable": true
          },
          "note": {
            "type": "string",
            "description": "Примечание",
            "nullable": true
          },
          "prepay_percent": {
            "type": "integer",
            "description": "Процент предоплаты",
            "format": "int32",
            "nullable": true
          },
          "delay_payment_days": {
            "type": "integer",
            "description": "Постоплата (количество банковских дней)",
            "format": "int32",
            "nullable": true
          },
          "loading_city_id": {
            "type": "integer",
            "description": "Город загрузки",
            "format": "int64",
            "nullable": true
          },
          "unloading_city_id": {
            "type": "integer",
            "description": "Город разгрузки",
            "format": "int64",
            "nullable": true
          },
          "weight": {
            "type": "number",
            "description": "Вес",
            "format": "double",
            "nullable": true
          },
          "volume": {
            "type": "number",
            "description": "Объём",
            "format": "double",
            "nullable": true
          },
          "car_delivery_date": {
            "type": "string",
            "description": "Дата",
            "format": "date-time"
          },
          "unload_payment": {
            "type": "boolean",
            "description": "Оплата на выгрузке"
          },
          "coloading": {
            "type": "boolean",
            "description": "Догруз"
          },
          "sender_firm_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IntegratorFirmSummary"
              }
            ],
            "description": "Информация о фирме",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IntegratorFirmSummary": {
        "type": "object",
        "properties": {
          "ati_id": {
            "type": "string",
            "description": "Код пользователя в ATI.SU",
            "nullable": true
          },
          "contact_id": {
            "type": "integer",
            "description": "Идентификатор контакта",
            "format": "int32"
          },
          "contact": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IntegratorContactSummary"
              }
            ],
            "description": "Информация о контакте",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Название фирмы",
            "nullable": true
          },
          "score": {
            "type": "number",
            "description": "Балл фирмы",
            "format": "double"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FirmStatus"
              }
            ],
            "description": "Статус фирмы"
          }
        },
        "additionalProperties": false,
        "description": "Информация о фирме"
      },
      "IntegratorSearchResultTruck": {
        "type": "object",
        "properties": {
          "ati_id": {
            "type": "string",
            "description": "Код пользователя",
            "nullable": true
          },
          "truck_id": {
            "type": "string",
            "description": "Id машины",
            "format": "uuid"
          },
          "added_at": {
            "type": "string",
            "description": "Время добавления данных машины в формате UTC",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "description": "Дата последнего изменения данных машины в формате UTC",
            "format": "date-time"
          },
          "contact_id1": {
            "type": "integer",
            "description": "Идентификатор первого выбранного контакта",
            "format": "int32"
          },
          "contact_id2": {
            "type": "integer",
            "description": "Идентификатор второго выбранного контакта, если не выбрано, то null",
            "format": "int32",
            "nullable": true
          },
          "department_id": {
            "type": "integer",
            "description": "Подразделение машины",
            "format": "int32",
            "nullable": true
          },
          "note": {
            "type": "string",
            "description": "Примечание к машине",
            "nullable": true
          },
          "first_date": {
            "type": "string",
            "description": "Дата, начиная с которой машина актуальна, UTC",
            "format": "date-time"
          },
          "last_date": {
            "type": "string",
            "description": "Дата, после которой машина не актуальна, в формате UTC",
            "format": "date-time"
          },
          "periodicity_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PeriodicityType"
              }
            ],
            "description": "Периодичность загрузки"
          },
          "date_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateType"
              }
            ],
            "description": "Выбор типа готовности машины к перевозке"
          },
          "true_price": {
            "type": "number",
            "description": "Озвученная ставка",
            "format": "double"
          },
          "true_currency_id": {
            "type": "integer",
            "description": "Валюта озвученной ставки",
            "format": "int32"
          },
          "transport": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IntegratorTruckParams"
              }
            ],
            "description": "Характеристики машины",
            "nullable": true
          },
          "loading": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IntegratorTruckLoading"
              }
            ],
            "description": "Загрузка",
            "nullable": true
          },
          "unloading_list": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IntegratorTruckUnloading"
            },
            "description": "Список пунктов разгрузки",
            "nullable": true
          },
          "payment_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IntegratorTruckPaymentOptions"
              }
            ],
            "description": "Оплата",
            "nullable": true
          },
          "show_contacts": {
            "type": "boolean",
            "description": "Флаг видимости контактов для незарегистрированных пользователей"
          },
          "comments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IntegratorTruckComment"
            },
            "description": "Комментарии к машинам",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IntegratorSearchResultView": {
        "type": "object",
        "properties": {
          "total_count": {
            "type": "integer",
            "description": "Найдено машин",
            "format": "int32"
          },
          "hidden_count": {
            "type": "integer",
            "description": "Скрыто машин, подходящих под фильтр",
            "format": "int32"
          },
          "accounts": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/AccountView"
            },
            "description": "Аккаунты для найденных машин. Ключ - код фирмы в ATI.SU",
            "nullable": true
          },
          "trucks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IntegratorSearchResultTruck"
            },
            "description": "Поисковая выдача. Список машин",
            "nullable": true
          },
          "responses": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/IntegratorTruckResponseCollection"
            },
            "description": "Словарь отзывов на машину. Ключ - id машины",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Результат поиска"
      },
      "IntegratorTruckComment": {
        "type": "object",
        "properties": {
          "comment_id": {
            "type": "string",
            "description": "Id комментария",
            "format": "uuid"
          },
          "message": {
            "type": "string",
            "description": "Сообщение",
            "nullable": true
          },
          "contact_id": {
            "type": "integer",
            "description": "Id контакта, оставившего сообщение",
            "format": "int32"
          },
          "contact_name": {
            "type": "string",
            "description": "Имя контакта, оставившего сообщение",
            "nullable": true
          },
          "comment_date_time": {
            "type": "string",
            "description": "Время добавления комментария",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "IntegratorTruckLoading": {
        "type": "object",
        "properties": {
          "city_id": {
            "type": "integer",
            "description": "Id города загрузки",
            "format": "int32"
          },
          "radius": {
            "type": "integer",
            "description": "Радиус, в котором машина может быть загружена, в км",
            "format": "int32"
          },
          "distance": {
            "type": "integer",
            "description": "Расстояние от пункта указанного в поиске до пункта указанного в машине",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Загрузка"
      },
      "IntegratorTruckParams": {
        "type": "object",
        "properties": {
          "car_type": {
            "type": "integer",
            "description": "Идентификатор кузова",
            "format": "int64"
          },
          "body_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BodyType"
              }
            ],
            "description": "Описывает тип самого грузового автомобиля"
          },
          "loading_type": {
            "type": "integer",
            "description": "Битовая сумма id типов загрузки, значения из [словаря вариантов типов загрузки](https://ati.su/developers/api/dictionaries/cargoes/#get-v1.0-dictionaries-loadingTypes)",
            "format": "int32"
          },
          "weight": {
            "type": "number",
            "description": "Максимальный вес перевозки в тоннах",
            "format": "double"
          },
          "volume": {
            "type": "number",
            "description": "Объем кузова в кубических метрах",
            "format": "double"
          },
          "truck_length": {
            "type": "number",
            "description": "Длина кузова в метрах",
            "format": "double"
          },
          "truck_width": {
            "type": "number",
            "description": "Ширина кузова в метрах",
            "format": "double"
          },
          "truck_height": {
            "type": "number",
            "description": "Высота кузова в метрах",
            "format": "double"
          },
          "trailer_length": {
            "type": "number",
            "description": "Длина прицепа в метрах",
            "format": "double"
          },
          "trailer_width": {
            "type": "number",
            "description": "Ширина прицепа в метрах",
            "format": "double"
          },
          "trailer_height": {
            "type": "number",
            "description": "Высота прицепа в метрах",
            "format": "double"
          },
          "hydrolift": {
            "type": "boolean",
            "description": "Параметр, определяющий, имеется ли в кузове гидролифт"
          },
          "partial_load": {
            "type": "boolean",
            "description": "Параметр, определяющий, возможен ли догруз"
          },
          "koniki": {
            "type": "boolean",
            "description": "Определяет, присутствуют ли коники"
          },
          "tir": {
            "type": "boolean",
            "description": "Параметр, определяющий, имеются ли у машины документы TIR"
          },
          "ekmt": {
            "type": "boolean",
            "description": "Параметр, определяющий, имеются ли у машины документы EKMT"
          },
          "adr_types": {
            "type": "integer",
            "description": "Параметр, определяющий уровни опасности грузов, которые можно провозить на данной машине.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Основные характеристики кузова"
      },
      "IntegratorTruckPaymentOptions": {
        "type": "object",
        "properties": {
          "card": {
            "type": "boolean",
            "description": "Оплата на карту"
          },
          "torg": {
            "type": "boolean",
            "description": "Торг"
          }
        },
        "additionalProperties": false,
        "description": "Оплата"
      },
      "IntegratorTruckResponseCollection": {
        "type": "object",
        "properties": {
          "offers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IntegratorCounterOffer"
            },
            "description": "Список встречных предложений",
            "nullable": true
          },
          "absents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IntegratorAbsent"
            },
            "description": "Список жалоб \"Машины нет\"",
            "nullable": true
          },
          "complaints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IntegratorComplaint"
            },
            "description": "Список жалоб на машину",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IntegratorTruckUnloading": {
        "type": "object",
        "properties": {
          "main": {
            "type": "boolean",
            "description": "Флаг главного пункта разгрузки"
          },
          "visible": {
            "type": "boolean",
            "description": "Видимость пункта в выдаче (зависит от фильтра)"
          },
          "cash_sum": {
            "type": "number",
            "description": "Ставка наличными",
            "format": "double"
          },
          "sum_with_nds": {
            "type": "number",
            "description": "Ставка с НДС",
            "format": "double"
          },
          "sum_without_nds": {
            "type": "number",
            "description": "Ставка без НДС",
            "format": "double"
          },
          "currency_id": {
            "type": "integer",
            "description": "Валюта ставки",
            "format": "int32"
          },
          "point_type": {
            "type": "integer",
            "description": "Тип гео-пункта\r\n<ul><li><i>0</i> - Страна</li><li><i>1</i> - Регион</li><li><i>2</i> - Город</li></ul>",
            "format": "int32"
          },
          "point_id": {
            "type": "integer",
            "description": "Id гео-пункта",
            "format": "int32"
          },
          "radius": {
            "type": "integer",
            "description": "Радиус относительно пункта, в котором возможна разгрузка. Только при point_type = 2 (город)",
            "format": "int32"
          },
          "distance": {
            "type": "integer",
            "description": "Расстояние до пункта \"откуда\" из фильтра. Заполняется, если point_type = 2 и искали в город.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ListKey": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "<ul><li><i>0</i> - Нейтральный список</ li > <li><i>1</i> - Белый список</ li > <li><i>2</i> - Чёрный список</ li > </ul>",
        "format": "int32"
      },
      "PassportView": {
        "type": "object",
        "properties": {
          "ati_data_match_point": {
            "type": "number",
            "description": "За подтверждение аккаунта",
            "format": "double"
          },
          "account_lifetime_point": {
            "type": "number",
            "description": "За срок \"существования\" фирмы",
            "format": "double"
          },
          "business_activity_point": {
            "type": "number",
            "description": "Свидетельство ведения фирмой текущей хозяйственной деятельности",
            "format": "double"
          },
          "round_table_point": {
            "type": "number",
            "description": "Балл по решению общественного движения пользователей ATI.SU \"Круглый стол\"",
            "format": "double"
          },
          "claim_point": {
            "type": "number",
            "description": "Балл за имеющиеся Претензии к пользователю",
            "format": "double"
          },
          "prof_activity_point": {
            "type": "number",
            "description": "За проф. деятельность в ATI.SU",
            "format": "double"
          },
          "ati_administration_point": {
            "type": "number",
            "description": "По решению администрации ATI.SU",
            "format": "double"
          },
          "clones_point": {
            "type": "number",
            "description": "Балл за клонов участника системы",
            "format": "double"
          },
          "egr_point": {
            "type": "number",
            "description": "По данным Единых Государственных Реестров Юридических Лиц и ИП",
            "format": "double"
          },
          "mass_registration_point": {
            "type": "number",
            "description": "Юридическое лицо зарегистрировано по адресу массовой регистрации",
            "format": "double"
          },
          "mass_founder_point": {
            "type": "number",
            "description": "Учредитель юридического лица является учредителем множества других юридических лиц",
            "format": "double"
          },
          "firm_lifetime_point": {
            "type": "number",
            "description": "За давность регистрации в АвтоТрансИнфо",
            "format": "double"
          },
          "negative_points_sum": {
            "type": "number",
            "description": "Отрицательных баллов",
            "format": "double"
          },
          "total_score": {
            "type": "number",
            "description": "Общее количество звезд",
            "format": "double"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FirmStatus"
              }
            ],
            "description": "Тип звезд"
          },
          "status_description": {
            "type": "string",
            "description": "Описание статуса",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Паспорт фирмы"
      },
      "PaymentModel": {
        "type": "object",
        "properties": {
          "rate_value": {
            "type": "number",
            "description": "Максимальная ставка",
            "format": "double",
            "nullable": true
          },
          "rate_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RateType"
              }
            ],
            "description": "Тип ставки"
          },
          "cash": {
            "type": "boolean",
            "description": "Наличными"
          },
          "with_nds": {
            "type": "boolean",
            "description": "С НДС"
          },
          "without_nds": {
            "type": "boolean",
            "description": "Без НДС"
          }
        },
        "additionalProperties": false,
        "description": "Ограничения по ставке"
      },
      "PeriodicityType": {
        "enum": [
          0,
          1,
          5,
          10,
          20,
          40,
          50,
          100
        ],
        "type": "integer",
        "description": "<ul><li><i>0</i> - не выбрано</ li > <li><i>1</i> - ежедневно</ li > <li><i>5</i> - 2 раза в неделю</ li > <li><i>10</i> - еженедельно</ li > <li><i>20</i> - ежемесячно</ li > <li><i>40</i> - часто</ li > <li><i>50</i> - по согласию</ li > <li><i>100</i> - по рабочим дням</ li > </ul>",
        "format": "int32"
      },
      "RateType": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "description": "<ul><li><i>0</i> - Не указано</ li > <li><i>1</i> - Рубль за километр</ li > <li><i>2</i> - Рубль</ li > <li><i>3</i> - Тысяч рублей</ li > <li><i>4</i> - Рубль в час</ li > </ul>",
        "format": "int32"
      },
      "SearchDescriptorModel": {
        "required": [
          "filter",
          "items_per_page",
          "page"
        ],
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "description": "Номер страницы",
            "format": "int32"
          },
          "items_per_page": {
            "type": "integer",
            "description": "Количество машин на странице. [10, 20, 30, 40, 50, 100]",
            "format": "int32"
          },
          "filter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SearchFilterModel"
              }
            ],
            "description": "Фильтр"
          }
        },
        "additionalProperties": false
      },
      "SearchFilterModel": {
        "type": "object",
        "properties": {
          "dates": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DatesParameterModel"
              }
            ],
            "description": "Когда доступна машина",
            "nullable": true
          },
          "from": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FromGeoModel"
              }
            ],
            "description": "Откуда машина",
            "nullable": true
          },
          "to": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ToGeoModel"
              }
            ],
            "description": "Куда машина",
            "nullable": true
          },
          "dimensions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DimensionsModel"
              }
            ],
            "description": "Габариты",
            "nullable": true
          },
          "weight": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SegmentModel"
              }
            ],
            "description": "Вес",
            "nullable": true
          },
          "volume": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SegmentModel"
              }
            ],
            "description": "Объем",
            "nullable": true
          },
          "extra_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExtraParamsModel"
              }
            ],
            "description": "Дополнительные параметры",
            "nullable": true
          },
          "with_rate": {
            "type": "boolean",
            "description": "Показывать машины только со ставкой",
            "nullable": true
          },
          "change_date": {
            "type": "string",
            "description": "Промежуток времени, когда машина добавлена в систему\r\n<ul><li><i>all</i> - Когда угодно</li><li><i>hour</i> - За последний час</li><li><i>three-hours</i> - За 3 часа</li><li><i>today</i> - Сегодня</li><li><i>three-days</i> - За 3 дня</li><li><i>week</i> - За неделю</li></ul>",
            "nullable": true
          },
          "truck_type": {
            "type": "integer",
            "description": "Битовая сумма id типов кузова, значения из [словаря вариантов типов кузова](https://ati.su/developers/api/dictionaries/cargoes/#get-v1.0-dictionaries-carTypes)",
            "format": "int64",
            "nullable": true
          },
          "loading_type": {
            "type": "integer",
            "description": "Битовая сумма id типов загрузки, значения из [словаря вариантов типов загрузки](https://ati.su/developers/api/dictionaries/cargoes/#get-v1.0-dictionaries-loadingTypes)",
            "format": "int64",
            "nullable": true
          },
          "firm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SearchFirmModel"
              }
            ],
            "description": "Параметр фирм",
            "nullable": true
          },
          "sorting_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SortingType"
              }
            ],
            "description": "Сортировка"
          },
          "payment": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentModel"
              }
            ],
            "description": "Оплата",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Параметры для фильтрации машин"
      },
      "SearchFirmModel": {
        "type": "object",
        "properties": {
          "ati_id": {
            "type": "string",
            "description": "Код пользователя",
            "nullable": true
          },
          "firm_rating": {
            "type": "integer",
            "description": "Минимальный рейтинг пользователя",
            "format": "int32",
            "nullable": true
          },
          "firm_geo": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FirmGeoModel"
              }
            ],
            "description": "Откуда фирма",
            "nullable": true
          },
          "firm_list": {
            "type": "string",
            "description": "Id списка фирм",
            "format": "uuid",
            "nullable": true
          },
          "firm_list_exclusive": {
            "type": "boolean",
            "description": "<li>\r\n  <i>false</i> - Искать только машины фирм из списка</li>\r\n<li>\r\n  <i>true</i> - Искать только машины фирм не из списка</li>",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Ограничение на фирму. Параметр доступен только платным пользователям ATI.SU."
      },
      "SegmentModel": {
        "type": "object",
        "properties": {
          "min": {
            "type": "number",
            "description": "Минимальное значение",
            "format": "double",
            "nullable": true
          },
          "max": {
            "type": "number",
            "description": "Максимальное значение",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SortingType": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "description": "<ul><li><i>0</i> - Сортировка по дате добавления</ li > <li><i>1</i> - Сортировка по весу</ li > </ul>",
        "format": "int32"
      },
      "ToGeoModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Id гео-пункта. Используется для страны, региона или города",
            "format": "int32",
            "nullable": true
          },
          "type": {
            "type": "integer",
            "description": "Тип гео-пункта\r\n<ul><li><i>0</i> - Страна</li><li><i>1</i> - Регион</li><li><i>2</i> - Город</li><li><i>5</i> - Список</li></ul>",
            "format": "int32",
            "nullable": true
          },
          "exact_only": {
            "type": "boolean",
            "description": "Только по точным.\r\nУчитывается только при type = 2",
            "nullable": true
          },
          "list_id": {
            "type": "string",
            "description": "Id гео-списка.\r\nИспользуется только при type = 5",
            "format": "uuid",
            "nullable": true
          },
          "radius": {
            "type": "integer",
            "description": "Радиус, в котором ищутся города.\r\nУчитывается только при type = 2",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Место разгрузки"
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Authorization: Bearer {authorizationToken}"
      }
    }
  }
}