{"info":{"_postman_id":"891a2e25-f64b-a164-c852-c8d5404f6ec5","name":"SKIF.PRO","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"13147","collectionId":"891a2e25-f64b-a164-c852-c8d5404f6ec5","publishedId":"RztmtVLV","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"publishDate":"2019-02-04T11:18:48.000Z"},"item":[{"name":"Авторизация","item":[{"name":"/registrate","id":"f0cf33dc-9069-4236-9331-c69efa28fe58","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"userProviderId\": \"test1@ya.ru\",\n    \"password\": \"12345N\",\n    \"type\": \"EMAIL\",\n    \"name\": \"Миша\",\n    \"invite_id\": \"c5b2edce-5a1e-47c9-a433-422e83c95dc9\",\n    \"timezone\": {\n        \"key\": \"UTC+3\"\n    },\n    \"language\": {\n        \"key\": \"ru\"\n    }\n}"},"url":"{{base_url}}/api_v1/registrate","description":"<p><strong>Используется для регистрации нового пользователя в системе.</strong></p>\n<hr />\n<p>Регистрирует пользователя с указанным email (параметр user_provider_id) и создает новую компанию, в которой пользователь становится администратором (роль Admin).</p>\n<p>На указанный email отправляется ссылка для подтвержения аккаунта.</p>\n<p>Пользователь сразу логинится в системе (создается сессия) и может выполнять любые запросы, требующие авторизации.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>userProviderId - email пользователя (обязательный) \ntype - тип регистрации, всегда \"EMAIL\" (обязательный)\npassword - пароль (обязательный)\nname - имя нового пользователя (необязательный, по умолчанию копируется email)\nphone - телефон нового пользователя\ncompany_name - название компании (необязательный, по умолчанию будет имя из email до символа @\ntimezone - (обязательный) значение часового пояса из справочника dictionary (см. type = 'timezone')\nlanguage - (обязательный) значение из справочника dictionary (см type = 'lang')\ncaptcha - код с картинки получаемой методом GET /captcha\ninvite_id - ID приглашения, получается из link в письме на почту, параметр invite_id\n{\n  \"userProviderId\": \"mihsh1111@tut.by\",\n  \"type\": \"EMAIL\",\n  \"company_name\": \"BigBin\",\n  \"password\": \"11111\", \n  \"name\": \"Имя пользователя\",\n  \"timezone\": {\n    \"key\": \"UTC+3\"\n  },\n  \"language\": {\n    \"key\": \"ru\"\n  }\n}\n\n</code></pre><p><strong>Параметры ответа:</strong></p>\n<p>Код 200 и пустой body в случае успеха.</p>\n<p>Если уже есть аккаунт (см. /approve) с таким email, то возращается Код 422 и body c ошибкой session.errors.emailAlreadyRegistered</p>\n<p>В случае частого вызова метода (чаще чем раз в 30 секунд), то возращается Код 400 и body validation.errors.often</p>\n","urlObject":{"path":["api_v1","registrate"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"f0cf33dc-9069-4236-9331-c69efa28fe58"},{"name":"/login","id":"b5ac16dd-94f2-4c0a-ab5e-da22d80e8b2d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"userProviderId\": \"test1@ya.ru\",\n    \"provider_key\": \"TEXT\",\n    \"password\": \"12345N\"\n}"},"url":"{{base_url}}/api_v1/login","description":"<p><strong>Авторизация пользователя с помощью email</strong></p>\n<hr />\n<p>Проверяет корректность связки email и пароля для авторизации пользователя. Если авторизация проходит успешно, то в cookies помещается id сессии пользователя, которая используется для авторизации дальнейших вызовов функции API под авторизованным пользователем. В случае если пользователь заходит по временному паролю (присланному при восстановлении пароля или вторичной регистрации по уже зарегистрированному телефону), то временный пароль становится постоянным.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>\"userProviderId\" - email (обязательный) или логин<br />\"provider_key\" - костанта \"TEXT\" (обязательный)<br />\"password\" - пароль (обязательный)</p>\n<p>\"is_admin_panel\" - true отправляется при входе в админ-панель</p>\n<p>В поле password необходимо указать пароль, полученный при регистрации по смс (или email при тестовом режиме)</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"userProviderId\": \"test1@ya.ru\",  (обязательный)\n  \"provider_key\": \"EMAIL\",  (обязательный)\n  \"password\": \"33100078\"        (обязательный)\n}\n\n</code></pre><hr />\n<p><strong>Параметры ответа:</strong></p>\n<p>В случае успешной авторизации возвращается пустой body с кодом 200.</p>\n<p>В случае не успешной авторизации возвращается status: 422 и json-body с ошибкой.</p>\n","urlObject":{"path":["api_v1","login"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b5ac16dd-94f2-4c0a-ab5e-da22d80e8b2d"},{"name":"/recovery","id":"23bad864-c980-40c0-8b32-32a4f1651323","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"user_provider_id\": \"test1@ya.ru\",\n    \"type\": \"EMAIL\"\n}"},"url":"{{base_url}}/api_v1/recovery","description":"<p><strong>Восстановление пароля</strong></p>\n<hr />\n<p>Метод создает временный пароль для существующего пользователя. Новый пароль отправляется на указанный email. В тестовой среде отправляет письмо на отладочные почтовые ящики.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>user_provider_id - телефон пользователя (обязательный)\ntype - константа, всегда \"EMAIL\" (обязательный)\n{\n  \"user_provider_id\": \"test1@ya.ru\", \n  \"type\": \"EMAIL\" \n}\n\n</code></pre><hr />\n<p><strong>Параметры ответа:</strong></p>\n<p>Код 200. Даже если пользователь с указанным паролем не существует.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"pssword\": \"\"\n}\n\n</code></pre><p>Ошибка валидации - код 422, с перечнем ошибок в полях</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"errors\": [\n        {\n            \"code\": 4221,\n            \"field\": \"password\",\n            \"message\": \"Отсутствует параметр\"\n        }\n    ],\n    \"code\": 4220,  //общий код ошибки \n    \"message\": \"Отсутствует параметр\" // частный \n}\n\n</code></pre>","urlObject":{"path":["api_v1","recovery"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"23bad864-c980-40c0-8b32-32a4f1651323"},{"name":"/recovery/qr/:user_id","id":"facdc912-f8c6-4bd5-8a9b-9df4d191d109","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"url":"{{base_url}}/api_v1/recovery/qr/:user_id","description":"<p><strong>Вход через qr</strong></p>\n<hr />\n<p>Метод создает временный пароль для существующего пользователя. По ссылке auth.recovery_url можно получить сессию и сменить пароль. Так же, если для пользователя настроен vpn, его парамеры будут возвращены в теге vpn</p>\n<p>Параметры:</p>\n<p>user_id - id пользователя (обязательный)</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Параметры ответа:</strong></p>\n<p>Код 200. Даже если пользователь с указанным паролем не существует. Ответ всегда такого вида</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"vpn\": {\n        \"privateKey\": \"ULVS+24iL5KGaQuDOWwx97MrMdWiyb8OPbic5uaz6kk=\",\n        \"address\": \"10.8.0.4/23\",\n        \"dns\": \"8.8.8.8\",\n        \"publicKey\": \"kD4mmtvAAcSQo1A4jFGVrXfSS6ANk9dqpcs3NJ5c904=\",\n        \"allowedIPs\": \"0.0.0.0/0\",\n        \"endpoint\": \"37.151.94.172:51820\",\n        \"persistentKeepalive\": \"20\"\n    },\n    \"auth\": {\n        \"recovery_url\": \"https://dev5.skif.pro/recovery/75c93998-f410-4e4a-a470-722940f10946\"\n    }\n}\n\n</code></pre><p>Ошибка валидации - код 422, с перечнем ошибок в полях</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"errors\": [\n        {\n            \"code\": 4221,\n            \"field\": \"\",\n            \"message\": \"Отсутствует параметр\"\n        }\n    ],\n    \"code\": 4220,  //общий код ошибки \n    \"message\": \"Отсутствует параметр\" // частный \n}\n\n</code></pre>","urlObject":{"path":["api_v1","recovery","qr",":user_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID пользователя</p>\n","type":"text/plain"},"type":"any","value":"","key":"user_id"}]}},"response":[],"_postman_id":"facdc912-f8c6-4bd5-8a9b-9df4d191d109"},{"name":"/logout","id":"d0981a7a-d7f5-4e89-8501-06ff561f1fc3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"{{base_url}}/api_v1/logout","description":"<p><strong>Выход из учетной записи</strong></p>\n<hr />\n<p>Удаляет все сессии пользователя на сервере.</p>\n<hr />\n<p><strong>Параметры:</strong> пусто</p>\n<hr />\n<p><strong>Ответ</strong>: 200</p>\n","urlObject":{"path":["api_v1","logout"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d0981a7a-d7f5-4e89-8501-06ff561f1fc3"},{"name":"/reset_password/:user_id","id":"7cb63efe-4f20-4202-819d-407892aa3224","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"newPassword\": \"Aa@1234567891011121314\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/reset_password/:user_id","description":"<p><strong>Сбросить пароль пользователя администратором (только администратор)</strong></p>\n<hr />\n<p>Установить новый временный пароль для пользователя. После чего пользователь должен изменить пароль после входа.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>user_id - ID пользователя<br />newPassword - новый пароль</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p>Ответ: Пустой 200. Новый пароль установлен или ошибка</p>\n<hr />\n<p>Пример запроса:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"newPassword\": \"12345678\"\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","reset_password",":user_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID пользователя</p>\n","type":"text/plain"},"type":"any","value":"","key":"user_id"}]}},"response":[],"_postman_id":"7cb63efe-4f20-4202-819d-407892aa3224"},{"name":"/change_my_password","id":"72f905f8-e118-43c8-ad36-e260e3928d9f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"{{base_url}}/api_v1/change_my_password","description":"<p><strong>Изменить свой пароль пользователем</strong></p>\n<hr />\n<p>Установить новый пароль пользователя для себя.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>password - текущий пароль<br />newPassword - новый пароль</p>\n<hr />\n<p>Ответ: Пустой 200 новый пароль установлен или ошибка</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"password\": \"123456\",\n    \"newPassword\": \"12345678\"\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","change_my_password"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"72f905f8-e118-43c8-ad36-e260e3928d9f"},{"name":"/approve/:id","id":"13bec7cc-bfdf-4e37-88d1-fd50d74182b7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/approve/:id","description":"<p><strong>Подтверждение email. Используется для подтверждения email по ссылке полученной на почту.</strong></p>\n<hr />\n<p>Делает email подтвержденным, после чего зарегистироваться с таким email уже не возможно.<br />Пользователь сразу авторизуется в системе без ввода email и пароля.</p>\n<p>Создается временный id помещенный в redis со временем жизни 30 мин</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id - временный id связанный с email</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Возвращает код 200 с пустым body</p>\n<p>Возвращает код 422 в случае если id не валидно</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"code\": 4022,\n    \"field\": \"id\",\n    \"message\": \"Ссылка устарела, повторите операцию\"\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","approve",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"13bec7cc-bfdf-4e37-88d1-fd50d74182b7"},{"name":"/company/invite/:id","id":"4b3ee5f3-de00-43cd-9019-53035ae20248","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/company/invite/:id","description":"<p><strong>Авторизация по приглашению. Используется для получения доступа к компании по ссылке, полученной на почте.</strong></p>\n<hr />\n<p>Создает пользователя, если он не был ранее зарегистрирован и дает доступ к компании из которой Администратор вызвал метод POST /invite<br />Пользователь сразу авторизуется в системе без ввода email и пароля под приглашенной Компанией.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Создается временный id помещенный в redis со временем жизни 30 мин.</p>\n<p>id связан с email и компанией, в которую приглашают пользователя (оба значения можно помещать в качестве значения в redis)</p>\n<p><strong>Параметры:</strong></p>\n<p>id - временный id связанный с email и Компанией в которую приглашают пользователя</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Возвращает код 200 с пустым body</p>\n<p>Возвращает код 422 в случае если id не валидно</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"code\": 4022,\n    \"field\": \"id\",\n    \"message\": \"Ссылка устарела, повторите операцию\"\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","company","invite",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"4b3ee5f3-de00-43cd-9019-53035ae20248"},{"name":"/recovery/:id","id":"462ef9bf-b4c0-400f-a101-6b90971cddda","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/api_v1/recovery/:id","description":"<p><strong>Авторизация по ссылке восстановления, полученной по почте. Используется для авторизации пользователя в системе для последующей смены пароля.</strong></p>\n<hr />\n<p>Пользователь сразу авторизуется в системе без ввода email и пароля. При этом если у пользователя доступ к нескольким компаниям, то предлагается выбор Компании, в которую пользователь хочет войти через метод GET switchcompany/:id</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Создается временный id, помещенный в redis со временем жизни 30 мин. id связан с email</p>\n<p><strong>Параметры:</strong></p>\n<p>id - временный id связанный с email</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Возвращает код 200 с пустым body</p>\n<p>Возвращает код 422 в случае, если id не валидно</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"code\": 4022,\n    \"field\": \"id\",\n    \"message\": \"Ссылка устарела, повторите операцию\"\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","recovery",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"462ef9bf-b4c0-400f-a101-6b90971cddda"},{"name":"/captcha","id":"06b7a242-5894-4de1-a1df-8d2578cc4801","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/captcha","description":"<p>Для регистрации необходимо передать код с картинки, получаемый из этого метода в поле captcha</p>\n","urlObject":{"path":["api_v1","captcha"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"06b7a242-5894-4de1-a1df-8d2578cc4801"},{"name":"/ask_approve_code","id":"1bda634a-9e56-4925-a87a-2f6f71bd5513","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"userProviderId\": \"+71111111111\",\n    \"provider_key\": \"PHONE\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/ask_approve_code","description":"<p><strong>Запрос получения кода</strong></p>\n<hr />\n<p><strong>Параметры:</strong><br />provider_key: text, для подтверждения номером телефона (пока только так) provider_key = PHONE<br />userProviderId - text, номер телефона если provider_key = PHONE</p>\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"userProviderId\": \"+7XXXXXXXXXX\",\n    \"provider_key\": \"PHONE\"\n}\n\n</code></pre>\n<p>В ответ приходит 200, если запрос правильный, иначе ошибка</p>\n","urlObject":{"path":["api_v1","ask_approve_code"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"1bda634a-9e56-4925-a87a-2f6f71bd5513"},{"name":"/ask_approve_code_voice","id":"bf42fc80-46bb-48b2-9762-800ff9cabd4d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"userProviderId\": \"+71111111111\",\n    \"provider_key\": \"PHONE\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/ask_approve_code_voice","description":"<p><strong>Запрос получения кода через звонок</strong></p>\n<hr />\n<p><strong>Параметры:</strong><br />provider_key: text, для подтверждения номером телефона, provider_key = PHONE<br />userProviderId - text, номер телефона, если provider_key = PHONE</p>\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"userProviderId\": \"+7XXXXXXXXXX\",\n    \"provider_key\": \"PHONE\"\n}\n\n</code></pre><p>В ответ приходит 200, если запрос правильный, иначе ошибка</p>\n","urlObject":{"path":["api_v1","ask_approve_code_voice"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"bf42fc80-46bb-48b2-9762-800ff9cabd4d"},{"name":"/approve_code","id":"ca9c5200-70ab-47fd-9ae8-f8ddc9b0dabe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"userProviderId\": \"+71111111111\",\n    \"provider_key\": \"PHONE\",\n    \"code\": \"52798\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/approve_code","description":"<p><strong>Подтверждение аккаунта с помощью кода</strong></p>\n<hr />\n<p><strong>Параметры:</strong><br />provider_key: text, ддля подтверждения номером телефона(пока только так) provider_key = PHONE<br />userProviderId - text, номер телефона если provider_key = PHONE<br />code: text, полученный код</p>\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"userProviderId\": \"7XXXXXXXXXX\",\n    \"provider_key\": \"PHONE\",\n    \"code\": \"27280\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","approve_code"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"ca9c5200-70ab-47fd-9ae8-f8ddc9b0dabe"}],"id":"cfc99b35-5704-4413-9df3-eda00ab66b5d","_postman_id":"cfc99b35-5704-4413-9df3-eda00ab66b5d","description":""},{"name":"Пользователь","item":[{"name":"/me","id":"75c36e35-9f0c-44c6-9188-65480a4038c8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/me","description":"<p><strong>Получить информацию о текущем пользователе</strong></p>\n<hr />\n<p>Метод выдает информацию по текущему пользователю</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Наблюдатель и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"id\": \"75bd17cc-642f-4c7c-982e-e0e991907733\",    //  id пользователя\n  \"created\": \"2017-03-10 16:56:41\",          //  дата создания\n  \"role\": {\"key\": \"Editor\", \"value\": \"Редактор\"}, //роль пользователя. В системе есть роли NoAccess - пользователь без доступа, Editor - обычный пользователь,  Reader - читатель, Admin - администратор (может изменять роли других пользователей, блокировать)\n  },\n \"actions\": [ // список действий пользователя, весь список: GET /actions\n      {\n          \"id\": \"5858822c-1f21-431b-9cde-a672d2803b2b\",\n          \"key\": \"generate_report\",\n      },\n      {\n        \"id\": \"6ff2a8bd-48d6-4347-b42e-c01d73434fb5\",\n        \"key\": \"units/update\"\n      }\n  ], \n  \"name\": \"Миша\",                  //  имя\n  \"email\": \"test@gmail.com\",\n  \"is_approved\": true, //подтвержден ли аккаунт\n  \"is_driver\": true, //является ли пользователь водителем\n  \"need_change_password\": true, // Если у пользователя установлен временный пароль, то пользователь должен изменить свой пароль \n  \"telegram_chat_id\": 12345678910, //id-рассылки для Telegram\n  \"photos\": [{\n        \"id\": \"b549d113-88e7-4002-b792-8f76d6694aa3\",\n        \"url\": \"/photos/b549d113-88e7-4002-b792-8f76d6694aa3_original.png\", //путь к оригинальной картинке\n        \"width\": 850,\n        \"height\": 670,\n        \"param_type\": \"users\" //тип картинки, для пользователей - users\n    }, {\n        \"id\": \"a8a0d710-01f4-4952-8a0f-35e345f2ad98\",\n        \"url\": \"/photos/b549d113-88e7-4002-b792-8f76d6694aa3_110.png\", //путь к картинке с максимальной стороной в 110px\n        \"width\": 110,\n        \"height\": 86,\n        \"param_type\": \"users\" //тип картинки, для пользователей - users\n    }],\n  \"code\": \"092384\",                //  id пользователя (rfid)\n  \"language\" : {\"key\":\"en\", \"value\":\"English\", \"type\":\"languages\"},                  //язык пользователя\n  \"phone\" : \"+78902334234\",\n  \"details\": \"Просто текстовое поле\",\n  \"companies\": [{\"id\":\"75bd17cc-642f-4c7c-982e-e0e991907733\", \"name\":\"Моя первая Компания\", \"timezone\": \"UTC+3\"}] //доступные пользователю компании\n  \"active_company\": {\"id\":\"75bd17cc-642f-4c7c-982e-e0e991907733\", \"name\":\"Моя первая Компания\", \"timezone\": \"UTC+3\"}\n  \"settings_web\": {}, // настройки в виде json, специфические для web-клиента\n  \"settings_ios\": {},// настройки в виде json, специфические для iOS-клиента\n  \"settings_android\": {},// настройки в виде json, специфические для android-клиента\n  \"actions_templates\": {},// настройки в виде json \n   \"actions\": [// список действий пользователя, \n      {\n          \"id\": \"5858822c-1f21-431b-9cde-a672d2803b2b\",\n          \"key\": \"generate_report\",\n      },\n    {\n        \"id\": \"6ff2a8bd-48d6-4347-b42e-c01d73434fb5\",\n        \"key\": \"units/update\"\n    }\n  ],\n  \"units_access\": [//Доступ к объектам\n      {\n            \"unit\": {\n                \"id\": \"0c4095e1-8cf4-4be2-b8b8-5aacf528a6dd\"\n            },\n            \"actions\": [] // cписок действий, можно выбирать те actions для которых  is_unit_action = true\n        },\n        {\n            \"unit\": {\n                \"id\": \"d0dd6178-fd10-4f49-8627-a386ac35b8c3\"\n            },\n            \"actions\": [{\n                    \"id\": \"051d5caf-b40a-4474-9c25-fb0d83ea4891\",\n                    \"key\": \"delete_units\"\n                },\n                {\n                    \"id\": \"bc7f985c-9641-4d0a-9f6f-8d5214d98105\",\n                    \"key\": \"update_units\"\n                }\n            ]\n        }\n    ],\n    \"units_groups_access\": [{ //Доступ к группам\n            \"units_group\": {\n                \"id\": \"d7bad56b-bb05-4c9c-830b-ed192a3fa4de\"\n            },\n            \"actions\": []//список действий, можно выбирать те actions для которых  is_unit_action = true\nуказанные actions применяются для всех объектов группы\n        },\n        {\n            \"units_group\": {\n                \"id\": \"1769a313-0c20-4ebf-b7f6-7fce00f4f301\"\n            },\n            \"actions\": [{\n                    \"id\": \"051d5caf-b40a-4474-9c25-fb0d83ea4891\",\n                    \"key\": \"delete_units\"\n                },\n                {\n                    \"id\": \"bc7f985c-9641-4d0a-9f6f-8d5214d98105\",\n                    \"key\": \"update_units\"\n                }\n            ]\n        }\n    ],\n}\n\n</code></pre>","urlObject":{"path":["api_v1","me"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"75c36e35-9f0c-44c6-9188-65480a4038c8"},{"name":"/me","id":"f9123041-1cc8-4189-8c10-5ec51342da86","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Миша\",\n    \"age\": \"38\",\n    \"town\": {\n        \"key\": \"Taldykorgan\"\n    }\n}"},"url":"{{base_url}}/api_v1/me","description":"<p><strong>Обновить данные текущего пользователя</strong></p>\n<hr />\n<p>Обновляет те поля, которые содержатся в запросе. Поля отсутствующие в запросе, не обновляются.</p>\n<hr />\n<p><strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"name\": \"Миша\",          //  имя\n}\n\n</code></pre><p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"role\": {\"key\": \"Editor\", \"value\": \"Редактор\"}, // не доступно для изменения самому пользователю\n  \"password\": \"newpw\" //новый пароль\n  \"name\": \"Миша\",     //имя    \n  \"is_driver\": true // делает пользователя водителем       \n  \"email\": \"test@gmail.com\", //email\n  \"code\": \"092384\",                //  id пользователя (rfid), доступно для пользователя с ролью Editor\n  \"language\" : {\"key\":\"en\"}                  //язык пользователя\n  \"phone\" : \"+78902334234\" //телефон пользователя\n  \"details\": \"Просто текстовое поле\"\n  \"telegram_chat_id\": 12345678910,\n  \"settings_web\": {}, // настройки в виде json специфические для web-клиента\n  \"settings_ios\": {},// настройки в виде json специфические для iOS-клиента\n  \"settings_android\": {},// настройки в виде json специфические для android-клиента\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<p>Возвращает обновленную запись пользователя см. GET /me</p>\n","urlObject":{"path":["api_v1","me"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"f9123041-1cc8-4189-8c10-5ec51342da86"},{"name":"/users?ids=:ids","id":"1da7a201-1905-4c31-b277-07c1e3db8fd1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/users?ids=","description":"<p><strong>Получить информацию о текущем пользователе по его id</strong></p>\n<hr />\n<p>Возвращает данные по пользователям переданных id. Возвращаются только те пользователи, у которых есть доступ к текущей компании пользователя, который делает запрос.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>ids - может содержать как один id пользователя, так и несколько, разделенных через запятую.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Массив объектов пользователей, каждый объект которого аналогичен возвращаемому через метод GET /me</p>\n","urlObject":{"path":["api_v1","users"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"1da7a201-1905-4c31-b277-07c1e3db8fd1"},{"name":"/users/:id","id":"feaeae8c-9a62-4aad-a0ae-acfb07422d8e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\"name\": \"Вася\", \"transport\":{\"key\": \"Bicycle\"}}"},"url":"{{base_url}}/api_v1/users/:user_id","description":"<p><strong>Обновить информацию о текущем пользователе по его id.</strong></p>\n<hr />\n<p>Обновление пользователя по его id. Пользователь с ролями User, Provider, Executor может менять только себя.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p>Параметры и ответ аналогичны методу POST /users</p>\n","urlObject":{"path":["api_v1","users",":user_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID пользователя</p>\n","type":"text/plain"},"type":"any","value":"","key":"user_id"}]}},"response":[],"_postman_id":"feaeae8c-9a62-4aad-a0ae-acfb07422d8e"},{"name":"/users/:id/check_use_name_as_login","id":"856feecc-8274-487f-86b2-b4b42d9bcba2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\"name\": \"Вася\", \"transport\":{\"key\": \"Bicycle\"}}"},"url":"{{base_url}}/api_v1/users/:user_id","description":"<p><strong>Обновить информацию о текущем пользователе по его id.</strong></p>\n<hr />\n<p>Роут для проверки уникальности строки Имя пользователя для использования в качестве логина</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p>Пример запроса:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"name\": \"Иванов Иван Иванович\"}\n\n</code></pre>\n","urlObject":{"path":["api_v1","users",":user_id"],"host":["{{base_url}}"],"query":[],"variable":[{"id":"2738b5d8-abe4-497d-bdb8-96a17c2a819d","description":{"content":"<p>ID пользователя</p>\n","type":"text/plain"},"type":"any","value":"","key":"user_id"}]}},"response":[],"_postman_id":"856feecc-8274-487f-86b2-b4b42d9bcba2"},{"name":"/users/:id","id":"08ed8c91-e15c-4c37-9b4c-e7a6a9ebd834","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Вася\",\n    \"transport\": {\n        \"key\": \"Bicycle\"\n    }\n}"},"url":"{{base_url}}/api_v1/users/:user_id","description":"<p><strong>Удаление пользователя по его id</strong></p>\n<hr />\n<p><strong>Роль:</strong> Администратор и выше.</p>\n","urlObject":{"path":["api_v1","users",":user_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID пользователя</p>\n","type":"text/plain"},"type":"any","value":"","key":"user_id"}]}},"response":[],"_postman_id":"08ed8c91-e15c-4c37-9b4c-e7a6a9ebd834"},{"name":"/users?ids=:ids","id":"4681ad60-e2ee-4aec-bb48-c4bbdb6c1e1b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Вася\",\n    \"transport\": {\n        \"key\": \"Bicycle\"\n    }\n}"},"url":"{{base_url}}/api_v1/users?ids=","description":"<p><strong>Планирование удаления пользователей по их ID</strong></p>\n<hr />\n<p>Логика использования, как в DELETE /company/users?ids=:ids<br />Пользователь с ролью SUPERVISOR может удалять других пользователей.</p>\n<hr />\n<p><strong>Роль:</strong> Администратор и выше.</p>\n","urlObject":{"path":["api_v1","users"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"4681ad60-e2ee-4aec-bb48-c4bbdb6c1e1b"},{"name":"/users","id":"526d3411-ecbb-4f7f-9fd2-4ed8ac87600d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/api_v1/users/21200533-fd3c-4314-bec7-b784dda0214d","description":"<p><strong>Создание пользователей, минуя приглашение.</strong></p>\n<hr />\n<p>Добавление пользователя с ролью Редактор</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"role\": {\"key\": \"EDITOR\", \"value\": \"Редактор\", \"id\": \"5ac818aa-f66e-4ecd-8981-5bcbafe03255\"}, // Роль выбирается из списка ролей; достаточно указать только идентификатор. Получить все роли GET /roles\n  \"name\": \"Миша\",     //имя \n  \"password\": \"password for user\",    \n  \"is_driver\": false // является ли пользователь водителем      \n  \"email\": \"test@gmail.com\", //email\n  \"code\": \"092384\",                //  id пользователя (rfid), доступно для пользоваетля с ролью Editor\n  \"language\" : {\"key\":\"en\"}               //язык пользователя\n  \"phone\" : \"+78902334234\" //телефон пользователя\n  \"details\": \"Просто текстовое поле\"\n  \"telegram_chat_id\": 12345678910, //id-рассылки для Telegram, получается из бота\n    \"units_groups_access\": [{ //Доступ к группам\n            \"units_group\": {\n                \"id\": \"d7bad56b-bb05-4c9c-830b-ed192a3fa4de\"\n            },\n            \"actions\": []//список действий, можно выбирать те actions для которых  is_unit_action = true\nуказанные actions применяются для всех объектов группы\n        },\n        {\n            \"units_group\": {\n                \"id\": \"1769a313-0c20-4ebf-b7f6-7fce00f4f301\"\n            },\n            \"actions\": [{\n                    \"id\": \"051d5caf-b40a-4474-9c25-fb0d83ea4891\",\n                    \"key\": \"delete_unit\"\n                },\n                {\n                    \"id\": \"bc7f985c-9641-4d0a-9f6f-8d5214d98105\",\n                    \"key\": \"update_unit\"\n                }\n            ]\n        }\n    ]\n}\n\n</code></pre><hr />\n<p>Ответ аналогичен PUT /me</p>\n","urlObject":{"path":["api_v1","users","21200533-fd3c-4314-bec7-b784dda0214d"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"526d3411-ecbb-4f7f-9fd2-4ed8ac87600d"},{"name":"/users/query","id":"eb61cf7b-b4ad-4194-a7b8-2f1a82d24a66","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"sort\": \"name\",\n    \"sortDesc\": true,\n    \"from\": 0,\n    \"limit\": 100\n}"},"url":"{{base_url}}/api_v1/users/query","description":"<p><strong>Получить пользователей по фильтру</strong></p>\n<hr />\n<p>На основании переданных параметров формирует запрос к списку пользователей.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>\"from\": с какой строки возвращать список, 0 - первая. Тип: Integer</p>\n<p>\"limit\": сколько строк возвращать, если 0 - возвращается количество найденных строк. Тип: Integer</p>\n<p>\"fields\":[\"id\", \"name\"] - поля, которые необходимо включить в результат</p>\n<p>\"sortField\": поле, по которoму нужно делать сортировку (используются следующие поля - name, code, details, role.key, email, phone)</p>\n<p>\"sortDesc\": тип сортировки поля</p>\n<p>\"value\": подстрока для поиска, для User используются следующие поля - name, code, details, role.key, email, phone</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Получить пользователей, у которых в полях есть подстрока 'ася', сортировка по полю name в desc режиме (по убыванию)</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"sortField\": \"name\",\n  \"sortDesc\": \"true\",\n  \"value\": \"ася\",\n  \"from\": 0,\n  \"limit\": 100\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<p>Возвращает количество найденых записей, если параметр count=0. Возвращает найденные строки, начиная с указанной в from (отсчет с 0) в количестве, указанном в параметре count или менее, если таких не нашлось.</p>\n<p>Возвращаемые объекты идентичны получаемым через запрос GET /me</p>\n<p>Если ничего не нашлось, возвращается пустой массив.</p>\n","urlObject":{"path":["api_v1","users","query"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"eb61cf7b-b4ad-4194-a7b8-2f1a82d24a66"},{"name":"/users/photos","id":"0dc29654-e259-42cb-8e16-8e3ffb0972f0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","src":"/home/azat/Pictures/Screenshot from 2021-09-27 14-19-40.png"},{"key":"id","value":"5798e71d-52b5-4a7e-8089-00647872a3e4","type":"text"}]},"url":"{{base_url}}/api_v1/users/photos","description":"<p><strong>Добавление аватарки пользователю</strong></p>\n<hr />\n<p>Сохраняет фотографии на диске.</p>\n<p>Первый - оригинальный с url \"/imgs/\" + photo.id + \"_original.png\"</p>\n<p>Второй - миниатюра - с наибольшей стороной не больее 110 px, url - \"/imgs/\" + photo.id + \"_110.png\"</p>\n<p>Оба файла можно использовать для сохранения в поле photos в сущности users</p>\n<p>Параметр - id пользователя, которому устанавливаем аватарку.</p>\n<p>Ограничение - размер любой стороны передаваемой картинки не может быть больше 3000px</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Возможные ошибки:</p>\n<p>422, No File</p>\n<p>422, No Image</p>\n<p>422, Image size exceeded 3000x3000</p>\n<p>Возвращается модель вложения</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"id\": \"af571635-340e-4c4e-a4c0-4eab34a97e8c\",\n        \"url\": \"/imgs/af571635-340e-4c4e-a4c0-4eab34a97e8c_original.png\",\n        \"width\": 858,\n        \"height\": 536,\n        \"param_type\": \"users\"\n    },\n    {\n        \"id\": \"561518f7-6f1a-4f3c-8b9f-234a91d8ef16\",\n        \"url\": \"/imgs/af571635-340e-4c4e-a4c0-4eab34a97e8c_70.png\",\n        \"width\": 110,\n        \"height\": 43,\n        \"param_type\": \"users\"\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","users","photos"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"0dc29654-e259-42cb-8e16-8e3ffb0972f0"},{"name":"/ask_approve/:userId","id":"7e2845cb-3554-447f-9af4-e6ca387baf8b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"type\": \"PHONE\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/ask_approve/:userId","description":"<p><strong>Запросить подтверждение пользователя.</strong></p>\n<hr />\n<p><strong>Параметры:</strong><br />userId - ID пользователя</p>\n<p>Тела запроса JSON:</p>\n<p>Для подтверждение email: { \"type\": \"EMAIL\" }</p>\n<p>Для подтверждение номер телефона: { \"type\": \"PHONE\" }</p>\n<p>Можно отправить запрос, если пользователь не подтвержден. Это определяется полем <strong>is_approved</strong> пользователя для email и <strong>is_approved_phone</strong> для номера телефона.</p>\n<p>В случае успеха, в результате отправляется ответ 200 и отправляется письмо на почту или на телефон, указанную в настройке пользователя.</p>\n<p>Иначе возвращается ошибка с кодом 422.</p>\n","urlObject":{"path":["api_v1","ask_approve",":userId"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID пользователя</p>\n","type":"text/plain"},"type":"any","value":"","key":"userId"}]}},"response":[],"_postman_id":"7e2845cb-3554-447f-9af4-e6ca387baf8b"},{"name":"/users/:id/companies","id":"5995dea2-1015-4b2b-b280-166f40b2868e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"{\n    \"companies\": [\n        {\n            \"id\": \"2a4b08cd-6c92-4f74-93a9-2cd319caa601\"\n        },\n        {\n            \"id\": \"2f2c629a-9087-4925-8240-d6d6b90aafda\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/users/:id/companies","description":"<p><strong>Удаление пользователя из выбранных компаний.</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id - ID пользователя</p>\n<p>В теле запроса указать список компаний (достаточно указать ID компании)</p>\n","urlObject":{"path":["api_v1","users",":id","companies"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID пользователя</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"5995dea2-1015-4b2b-b280-166f40b2868e"},{"name":"/users/:id/change_role","id":"38bc26c2-45f2-4a04-aaef-c016f1d92e99","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"role\": {\n        \"key\": \"EDITOR\",\n        \"name\": \"Редактор\"\n    },\n    \"companies\": [\n        {\n            \"id\": \"fc83e935-9c95-4b6f-aee4-be749479a2bc\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/users/:id/change_role","description":"<p><strong>Изменение роли пользователя в компаниях.</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id - ID пользователя</p>\n<p>В теле запроса указать:</p>\n<ul>\n<li><p>Список компаний (достаточно указать ID компании).</p>\n</li>\n<li><p>Новую роль в поле role.</p>\n</li>\n</ul>\n<hr />\n<p><strong>Роль:</strong> Администратор и выше.</p>\n","urlObject":{"path":["api_v1","users",":id","change_role"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID пользователя</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"38bc26c2-45f2-4a04-aaef-c016f1d92e99"},{"name":"/users/:id/change_role_all","id":"6cfa8fa5-bf64-42d2-9b7e-f87d1276d6d8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"role\": {\n        \"key\": \"ADMIN\",\n        \"name\": \"Редактор\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/users/:id/change_role_all","description":"<p><strong>Изменение роли пользователя во всех его компаниях, доступных авторизованному пользователю.</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id - ID пользователя</p>\n<p>В теле запроса указать новую роль в поле role</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>PUT /api_v1/users/a8fa266e-3c70-44c8-933e-adb3fe17063d/change_role_all</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"role\": {\n        \"key\": \"EDITOR\",\n        \"name\": \"Редактор\"\n    }\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","users",":id","change_role_all"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID пользователя</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"6cfa8fa5-bf64-42d2-9b7e-f87d1276d6d8"},{"name":"/users/:id/addable_companies?search=search","id":"18e95d42-62d3-4329-80bd-b26d77e93cf9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\n    \"role\": {\n        \"key\": \"ADMIN\",\n        \"name\": \"Редактор\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/users/:id/addable_companies?search=","description":"<p><strong>Получение списка компаний, доступных для добавления пользователя</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id - ID пользователя</p>\n<hr />\n<p><strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>GET /api_v1/users/679bb60d-3563-4bdd-b7c5-bb72bcef69eb/addable_companies?search=Оду</p>\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": \"06fe9426-9e0d-455b-9718-8c4f3400370b\",\n        \"name\": \"Одуванцик\"\n    },\n    {\n        \"id\": \"fb17d37d-e567-421c-805b-4e2e812c1cf7\",\n        \"name\": \"Одуванцик\"\n    },\n    {\n        \"id\": \"fe7b2772-ab94-4248-b32a-ed2da932730d\",\n        \"name\": \"Одуванцик\"\n    },\n    {\n        \"id\": \"3dd6b287-e47b-4cb2-9677-57ae4029d8e7\",\n        \"name\": \"Одуванцик\"\n    },\n    {\n        \"id\": \"fea12912-a5e4-4a65-bff1-43533daefe68\",\n        \"name\": \"Одуванцик 10.0\"\n    },\n    {\n        \"id\": \"2044d5e5-7206-4813-9533-ac89f20409b3\",\n        \"name\": \"Одуванцикsdfbdfgnnrtfh\"\n    }\n]\n\n</code></pre>\n","urlObject":{"path":["api_v1","users",":id","addable_companies"],"host":["{{base_url}}"],"query":[{"key":"search","value":""}],"variable":[{"description":{"content":"<p>ID пользователя</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"18e95d42-62d3-4329-80bd-b26d77e93cf9"},{"name":"/users/schedule_delete","id":"b2e924d3-7113-45c0-9fd5-63cb740f8a2e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/users/schedule_delete","description":"<p><strong>Запланированное удаление пользователя из системы.</strong></p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p>Метод запланирует удаление на 24 часа, а в ответ на метод выдается сообщение</p>\n<p>200:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"msg\": \"Мы запланировали удаление вашего аккаунта. У вас есть 24 часа чтобы отменить удаление по ссылке, которую мы вам отправили на почту.\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","users","schedule_delete"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b2e924d3-7113-45c0-9fd5-63cb740f8a2e"},{"name":"/users/:id/create_token","id":"c58d59d1-4ae8-408b-bdae-37aa64802817","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"valid_to\": \"2024-06-21 15:00:00\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/users/:id/create_token","description":"<p><strong>Создание пользовательского API_KEY для конкретной компании</strong></p>\n<hr />\n<p>Вы можете предоставить доступ только тем пользователям, у которых есть только одна компания и роль ниже администратора.</p>\n<p><strong>Параметры запроса:</strong></p>\n<p>id - Id пользователя</p>\n<p><strong>В теле запроса:</strong></p>\n<p>valid_to - срок действия ключа (ссылки).</p>\n<hr />\n<p><strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST /users/8462404e-99a9-4226-ae14-2f59e0400768/create_token</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"valid_to\": \"2024-06-21 15:00:00\"\n}\n\n</code></pre>\n<p>Поле user_company_api_key возвращает ключ, который можно отправлять в запросах в заголовке user_company_api_key.</p>\n<p>Поле url возвращает ссылку для авторизации пользователя в компании.</p>\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{    \n  \"user_company_api_key\": \"{{vault:json-web-token}}\",  \n  \"url\": \"https://dev5.skif.pro/api_v1/login?user_company_api_key={{vault:json-web-token}}\"\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","users",":id","create_token"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID пользователя</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"c58d59d1-4ae8-408b-bdae-37aa64802817"},{"name":"/me/settings","id":"e4b9dc5f-1728-4227-a0f0-411bc0ebf32b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"key\": \"show_geozones_in_road_xyz\",\n    \"value\": \"1\",\n    \"version\": 0\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/me/settings","description":"<p><strong>Сохранение пользовательских настроек для текущего пользователя</strong></p>\n<hr />\n<p><strong>Описание поля в JSON:</strong></p>\n<p><strong>key</strong> - ключ настройки, строка. Для уникальных настроек, которые используются только в одном стенде, рекомендуется использовать префикс или суффикс. Например, show_geozones_on_map_web</p>\n<p><strong>value</strong> - значение настройки, строка.</p>\n<p><strong>version</strong> - версия настройки, целое число.</p>\n<p><strong>company_id -</strong> ID компании, в который сохраняется настройка пользователя.</p>\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"key\": \"show_item_in_moon\",\n    \"value\": \"1\"\n}\n\n</code></pre><p>Ответ возвращает массив JSON: все настройки пользователя:</p>\n<p>Пример:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"id\": \"d6e6d77d-46f3-4603-b3b8-abe85cb302b8\",\n        \"user_id\": \"a4b5fde8-9b70-4425-bd75-bde7f12c9f87\",\n        \"key\": \"show_item_in_moon\",\n        \"value\": \"0\",\n        \"version\": 1\n    },\n    {\n        \"id\": \"5b04c69c-1fe7-4815-8c3a-d1056a8b5b65\",\n        \"user_id\": \"a4b5fde8-9b70-4425-bd75-bde7f12c9f87\",\n        \"key\": \"show_geozones_in_road_xyz\",\n        \"value\": \"1\",\n        \"version\": 0\n    }\n]\n\n</code></pre><p>Сохранение настройки пользователя в компании:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"key\": \"show_geozones_in_road_3\",\n    \"value\": \"1\",\n    \"company_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\"\n}\n\n</code></pre><p>Ответ:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"id\": \"48379173-7c56-457c-be29-f329fbd284c5\",\n        \"user_id\": \"a4b5fde8-9b70-4425-bd75-bde7f12c9f87\",\n        \"company_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\n        \"key\": \"show_geozones_in_road_xyz_ssssssssss\",\n        \"value\": \"1\",\n        \"version\": 0\n    },\n    {\n        \"id\": \"0ba785ce-5fcb-4b88-b8bc-88e0749de321\",\n        \"user_id\": \"a4b5fde8-9b70-4425-bd75-bde7f12c9f87\",\n        \"company_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\n        \"key\": \"show_geozones_in_road_3\",\n        \"value\": \"1\",\n        \"version\": 0\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","me","settings"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e4b9dc5f-1728-4227-a0f0-411bc0ebf32b"},{"name":"/me/settings?company_id=<company_id>","id":"561ca38a-f0b4-429a-a076-b2345e296042","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\n    \"key\": \"show_geozones_in_road_xyz\",\n    \"value\": \"1\",\n    \"version\": 0\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/me/settings","description":"<p><strong>Получение пользовательских настроек для текущего пользователя</strong></p>\n<p>Параметр запроса company_id - ID компании, необязательное поле. Если указано, настройки возвращаются только для этой компании.</p>\n<hr />\n<p><strong>Описание поля в JSON:</strong></p>\n<p>key - ключ настройки, строка</p>\n<p>value - значение настройки, строка</p>\n<p>version - версия настройки, целое число</p>\n<p><strong>Пример</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"id\": \"d6e6d77d-46f3-4603-b3b8-abe85cb302b8\",\n        \"user_id\": \"a4b5fde8-9b70-4425-bd75-bde7f12c9f87\",\n        \"key\": \"show_item_in_moon\",\n        \"value\": \"0\",\n        \"version\": 1\n    },\n    {\n        \"id\": \"5b04c69c-1fe7-4815-8c3a-d1056a8b5b65\",\n        \"user_id\": \"a4b5fde8-9b70-4425-bd75-bde7f12c9f87\",\n        \"key\": \"show_geozones_in_road_xyz\",\n        \"value\": \"1\",\n        \"version\": 0\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","me","settings"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"561ca38a-f0b4-429a-a076-b2345e296042"},{"name":"/change/user/:user_id/company/:company_id","id":"7536f3aa-9b44-474a-96d1-5a692ca7a8a1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\n    \"key\": \"show_geozones_in_road_xyz\",\n    \"value\": \"1\",\n    \"version\": 0\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/change/user/:user_id/company/:company_id","description":"<p><strong>Возможность переключение под пользователем без запроса пароля</strong></p>\n<hr />\n<p><strong>Параметры запроса:</strong></p>\n<p>user_id - ID пользователя для переключения.</p>\n<p>company_id - ID компании для переключения.</p>\n<hr />\n<p><strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p><a href=\"http://admin-dev.skif.pro/api_v1/change/user/2f583b2b-a7d6-4d93-94b3-da6eedab69f0/company/459b2824-0035-499d-8062-baccb2ae5581\">https://admin-dev.skif.pro/api_v1/change/user/2f583b2b-a7d6-4d93-94b3-da6eedab69f0/company/459b2824-0035-499d-8062-baccb2ae5581</a></p>\n<p>В результате пользователь перенаправляется на страницу в которой пользователь авторизуется под выбранным пользователем.</p>\n<p>Для авторизованного пользователя таким способом возвращается в GET /me поле <code>another_user: true</code></p>\n","urlObject":{"path":["api_v1","change","user",":user_id","company",":company_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID пользователя</p>\n","type":"text/plain"},"type":"any","value":"","key":"user_id"},{"description":{"content":"<p>ID компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"company_id"}]}},"response":[],"_postman_id":"7536f3aa-9b44-474a-96d1-5a692ca7a8a1"}],"id":"3829e332-3894-e650-4e48-47167aaa781a","_postman_id":"3829e332-3894-e650-4e48-47167aaa781a","description":""},{"name":"Общее","item":[{"name":"/dictionaries/:dicType","id":"f4bd4373-feea-493b-a005-a3879f86b371","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/dictionaries/:dicType","description":"<p><strong>Получить все записи справочника Dictionary с указанным типом.</strong></p>\n<hr />\n<p><strong>Описание параметров:</strong></p>\n<p>dicType - тип записей, которые необходимо получить.</p>\n<p>Может принимать следующие значения:</p>\n<p>admin_modules<br />color_code<br />customfield_groups<br />formula<br />geo_icon<br />geozone_type<br />notification_type<br />periodic_type<br />report_template_table_grouping<br />report_template_table_type<br />sensor_type<br />terminal_type<br />trip_activation_type<br />trip_passage_order_type<br />unit_icon<br />unit_type<br />weekdays_type</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>GET /dictionaries/unit_type</p>\n<p>возвращает все часовые пояса в формате (пример для английской локали):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[{\n    \"type\": \"unit_type\",\n    \"key\": \"farm_equipment\",\n    \"value\": \"Farm equipment\"\n}, {\n    \"type\": \"unit_type\",\n    \"key\": \"house\",\n    \"value\": \"House\"\n    }\n}]\n\n</code></pre><p><strong>Описание параметров ответа:</strong><br />type - тип справочника,<br />key - ключ справочника,<br />value - перевод справочника на язык пользователя</p>\n<p>В случае отсутствия записей переданного типа возвращает пустой массив []</p>\n","urlObject":{"path":["api_v1","dictionaries",":dicType"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"dicType"}]}},"response":[],"_postman_id":"f4bd4373-feea-493b-a005-a3879f86b371"},{"name":"/dictionaries","id":"de8cf2aa-31d4-432f-b425-f726c72079c7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/dictionaries/unit_type","description":"<p><strong>Получить все записи справочника Dictionary</strong></p>\n<hr />\n<p>Пример запроса:</p>\n<p>GET /dictionaries</p>\n<p>возвращает все справочники (пример для английской локали) сортируя по type:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[{\n    \"key\": \"admin_geozones\",\n    \"type\": \"admin_modules\",\n    \"value\": \"Geozones\"\n},\n...\n {\n    \"type\": \"unit_type\",\n    \"key\": \"house\",\n    \"value\": \"House\"\n    }\n},\n...\n{\n    \"key\": \"monday\",\n    \"type\": \"weekdays_type\",\n    \"value\": \"Понедельник\"\n}\n]\n\n</code></pre><p><strong>Описание параметров ответа:</strong><br />type - тип справочника, все возможные знечения:<br />admin_modules<br />color_code<br />customfield_groups<br />formula<br />geo_icon<br />geozone_type<br />notification_type<br />periodic_type<br />report_template_table_grouping<br />report_template_table_type<br />sensor_type<br />terminal_type<br />trip_activation_type<br />trip_passage_order_type<br />unit_icon<br />unit_type<br />weekdays_type<br />key - ключ справочника,<br />value - перевод справочника на язык пользователя</p>\n","urlObject":{"path":["api_v1","dictionaries","unit_type"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"de8cf2aa-31d4-432f-b425-f726c72079c7"},{"name":"/properties/:propertiesType","id":"03eaf349-931e-4146-8498-8670b02e7784","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/properties/:propertiesType","description":"<p><strong>Получить все записи справочника Properties с указанным типом.</strong></p>\n<p>Справочник 'Properties' предназначен ТОЛЬКО для микросервиса auth и включает в себя только информацию о юзере.</p>\n<hr />\n<p><strong>Описание параметров:</strong></p>\n<p>propertiesType - тип записей, которые необходимо получить.</p>\n<p>Может принмать следующие значения:</p>\n<p>languages (языки),</p>\n<p>timezones (часовые пояса)</p>\n<p>roles (роли)</p>\n<p>dateformats (форматы даты)</p>\n<p>timeformats (форматы времени)</p>\n<p><strong>Пример запроса:</strong></p>\n<p>GET /properties/timezones</p>\n<p>Возвращает все часовые пояса в формате (пример для английской локали):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[{\n    \"type\": \"timezones\",\n    \"key\": \"UTC+4:30\",\n    \"value\": \"Kabul, Afghanistan (+4:30)\"\n}, {\n    \"type\": \"timezones\",\n    \"key\": \"UTC+6:30\",\n    \"value\": \"Yangon, Myanmar (+6:30)\"\n    }\n}]\n\n</code></pre><p><strong>Описание параметров ответа:</strong><br />type - тип справочника,<br />key - ключ справочника,<br />value - перевод справочника на язык пользователя</p>\n<p>В случае отсутствия записей переданного типа возвращает пустой массив []</p>\n","urlObject":{"path":["api_v1","properties",":propertiesType"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"propertiesType"}]}},"response":[],"_postman_id":"03eaf349-931e-4146-8498-8670b02e7784"},{"name":"/properties","id":"6914f78a-a3fe-4f71-a868-84f62a31c03a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/properties","description":"<p><strong>Получить все записи справочника Properties</strong></p>\n<p>Справочник 'Properties' предназначен ТОЛЬКО для микросервиса auth и включает в себя только информацию о пользователе.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>GET /properties</p>\n<p>Возвращает все записи (пример для английской локали):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[{\n    \"key\": \"yyyy-MM-dd\",\n    \"type\": \"dateformats\",\n    \"value\": \"yyyy-MM-dd(2014-01-25, 1987-12-02)\"\n}, \n...\n{\n    \"key\": \"NO_ACCESS\",\n    \"type\": \"roles\",\n    \"value\": \"NoAccess\"\n}\n...\n{\n    \"key\": \"UTC+5\",\n    \"type\": \"timezones\",\n    \"value\": \"(GMT + 05: 00) Yekaterinburg, Islamabad, Karachi, Tashkent\"\n}\n}]\n\n</code></pre><p><strong>Описание параметров ответа:</strong><br />type - тип справочника, все возможные значения:</p>\n<p>languages - языки<br />timezones - часовые пояса<br />roles - роли<br />dateformats - форматы даты<br />timeformats - форматы времени<br />key - ключ справочника<br />value - перевод справочника на язык пользователя</p>\n","urlObject":{"path":["api_v1","properties"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"6914f78a-a3fe-4f71-a868-84f62a31c03a"},{"name":"/access","id":"81be0d95-74cf-4c56-b5ff-9e70750496e5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/access","description":"<p><strong>Получить доступ текущего пользователя к сущностям системы</strong></p>\n<hr />\n<p><strong>Формат возвращаемых данных:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"edit_classes_fields\": [{  //доступ на редактирование к полям сущностей в целом\n        \"type\": \"users\",\n        \"fields\": [\"name\", \"photo\", \"email\", \"phone\", \"code\"]\n    }],\n    \"edit_objects_fields\": [{ //доступ на редактирование к полям конкретной сущности\n        \"type\": \"users\",\n        \"id\": \"23498320-32492-3294-23989487\",\n        \"fields\": [\"name\", \"photo\", \"email\", \"phone\", \"code\"]\n    }],\n    \"actions\": [\"btmCreateUser\", \"btmDeleteUser\", \"btmSendCommand\"]  //доступ к действиям\n}\n\n</code></pre>\n<hr />\n<p><strong>Описание параметров ответа:</strong></p>\n<p>edit_classes_fields - ключ тега, содержащий массив ограничений на редактирование к сущности</p>\n<p>type - ключ сущности, возможные значения users, units, geozones, routes, report_templates, notifications_templates</p>\n<p>fields - массив полей доступных пользователю на редактирование</p>\n<p>edit_objects_fields - ключ тега, содержащий массив ограничений, на редактирование конкретных сущностей</p>\n<p>id - идентификатор сущности, к которой применяется ограничение</p>\n<p>actions - ключ тега, содержащий массив ключей действий, к которым имеет доступ пользователь</p>\n<hr />\n<p>Доступ определяется на основании роли пользователя к текущей компании и сущностям, к которым он имеет эксклюзивный доступ (например, собственная карточка пользователя)</p>\n","urlObject":{"path":["api_v1","access"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"81be0d95-74cf-4c56-b5ff-9e70750496e5"},{"name":"/custom_fields","id":"05ee6204-6755-48ec-aeac-ba53f1041e9e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":"{{base_url}}/api_v1/custom_fields","description":"<p><strong>Запрос на получение обязательных custom_fields</strong></p>\n<hr />\n<p>Custom_fields юнита делятся на 2 типа - обязательные и необязательные (кастомные).</p>\n<p>Обязательные <strong>custom_fields</strong> это поля, которые должны присутствовать у каждого юнита. При создании/изменении юнита лучше всего передавать эти обязательные поля со значениями, установленными юзером. Если бэкенд не обнаружит в юните какого-то обязательного поля, то оно будет создано в нём автоматически, значение будет взято из default_value.<br />Бэкенд проверяет значения через паттерн. В случае не соответствия паттерну, будет выброшена ошибка.</p>\n<p>Необязательные поля - произвольные поля, созданные юзером дополнительно. Никак не проверяются на стороне бэкенда. По состоянию на май 2020г. используются как поля для дополнительной информации (пояснительные) и не участвуют в каких-либо расчетах.</p>\n<p>Custom_field юнита имеет следующие параметры<br />name - имя поля, которое отображается в интерфейсе. У обязательных полей - не изменяемо (поэтому пытаться изменить его название в юните не имеет смысла). У НЕобяз. - изменяемое, произвольное.<br />key - ключ <strong>custom_fields</strong>. Все поля определяются и распознаются бэкендом именно по ключу. У обяз.полей - ключ константный, у необяз. полей - ключ произвольный, договорились использовать key такой же как и name.<br />value - значение, которое пользователь присвоил этому кастом филду.</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"name\": \"Мин. объем заправки\",\n        \"key\": \"fuel_fillings_minfilling\",\n        \"default_value\": \"10\",\n        \"pattern\": \"^\\\\d+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_fuel\",\n        \"values\": [],\n        \"sort\": 1,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Расход летом (л/100км.)\",\n        \"key\": \"fuel_consumption_summerconsump\",\n        \"default_value\": \"0\",\n        \"pattern\": \"^[0-9]*\\\\.?[0-9]+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_fuel\",\n        \"values\": [],\n        \"sort\": 1,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Мин. время стоянки (сек)\",\n        \"key\": \"tripdetector_minparktime\",\n        \"default_value\": \"300\",\n        \"pattern\": \"^\\\\d+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_trips\",\n        \"values\": [],\n        \"sort\": 1,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Аналитик\",\n        \"key\": \"analyst\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 1,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Игнор-ть сообщ-я после начала движения\",\n        \"key\": \"fuel_fillings_msgignorestart\",\n        \"default_value\": \"60\",\n        \"pattern\": \"^\\\\d+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_fuel\",\n        \"values\": [],\n        \"sort\": 2,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Расход зимой (л/100км.)\",\n        \"key\": \"fuel_consumption_winterconsump\",\n        \"default_value\": \"0\",\n        \"pattern\": \"^[0-9]*\\\\.?[0-9]+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_fuel\",\n        \"values\": [],\n        \"sort\": 2,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Коэф. пробега\",\n        \"key\": \"advanced_mileagecoeff\",\n        \"default_value\": \"1\",\n        \"pattern\": \"^\\\\d{1,8}((,|.)\\\\d{1,8})?$\",\n        \"type\": \"text\",\n        \"group\": \"cf_trips\",\n        \"values\": [],\n        \"sort\": 2,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Установщик\",\n        \"key\": \"installer\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 2,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Мин. время остановки для опр-ия слива\",\n        \"key\": \"fuel_fillings_minstaytheft\",\n        \"default_value\": \"60\",\n        \"pattern\": \"^\\\\d+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_fuel\",\n        \"values\": [],\n        \"sort\": 3,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"На холостом ходу летом (л./час.)\",\n        \"key\": \"fuel_math_idlingsummer\",\n        \"default_value\": \"0\",\n        \"pattern\": \"^[0-9]*\\\\.?[0-9]+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_fuel\",\n        \"values\": [],\n        \"sort\": 3,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Мин. скорость движ-я (км/ч)\",\n        \"key\": \"tripdetector_minmovespeed\",\n        \"default_value\": \"3\",\n        \"pattern\": \"^\\\\d+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_trips\",\n        \"values\": [],\n        \"sort\": 3,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Мин. объем слива\",\n        \"key\": \"fuel_fillings_minitheft\",\n        \"default_value\": \"10\",\n        \"pattern\": \"^\\\\d+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_fuel\",\n        \"values\": [],\n        \"sort\": 4,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"На холостом ходу зимой (л./час.)\",\n        \"key\": \"fuel_math_idlingwinter\",\n        \"default_value\": \"0\",\n        \"pattern\": \"^[0-9]*\\\\.?[0-9]+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_fuel\",\n        \"values\": [],\n        \"sort\": 4,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Мин. расст-ие поездки (м)\",\n        \"key\": \"tripdetector_mintripdist\",\n        \"default_value\": \"100\",\n        \"pattern\": \"^\\\\d+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_trips\",\n        \"values\": [],\n        \"sort\": 4,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Дата установки(формат год-месяц-день, например 2019-03-07)\",\n        \"key\": \"install_date\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 4,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Коэф. при движении под нагрузкой\",\n        \"key\": \"fuel_math_coeffunderload\",\n        \"default_value\": \"0\",\n        \"pattern\": \"^[0-9]*\\\\.?[0-9]+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_fuel\",\n        \"values\": [],\n        \"sort\": 5,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Макс. интервал между сообщ-ми (сек)\",\n        \"key\": \"advanced_maxintervalmsg\",\n        \"default_value\": \"3600\",\n        \"pattern\": \"^\\\\d+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_trips\",\n        \"values\": [],\n        \"sort\": 5,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Место установки в ТС\",\n        \"key\": \"install_place\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 5,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Первый месяц зимы (январь-1)\",\n        \"key\": \"fuel_consumption_winterfrom\",\n        \"default_value\": \"11\",\n        \"pattern\": \"^\\\\d+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_fuel\",\n        \"values\": [],\n        \"sort\": 6,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Макс. расст-ие между сообщ-ми (м)\",\n        \"key\": \"tripdetector_maxdistancemsg\",\n        \"default_value\": \"1000\",\n        \"pattern\": \"^\\\\d+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_trips\",\n        \"values\": [],\n        \"sort\": 6,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Серийный номер терминала\",\n        \"key\": \"serial_number\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 6,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Последний месяц зимы (январь-1)\",\n        \"key\": \"fuel_consumption_winterto\",\n        \"default_value\": \"3\",\n        \"pattern\": \"^\\\\d+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_fuel\",\n        \"values\": [],\n        \"sort\": 7,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Мин. время поездки (сек)\",\n        \"key\": \"tripdetector_mintriptime\",\n        \"default_value\": \"60\",\n        \"pattern\": \"^\\\\d+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_trips\",\n        \"values\": [],\n        \"sort\": 7,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Серийный номер ДУТ\",\n        \"key\": \"serial_number_dut\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 7,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Стоимость (1 л.)\",\n        \"key\": \"fuel_price\",\n        \"default_value\": \"0\",\n        \"pattern\": \"^[0-9]*\\\\.?[0-9]+$\",\n        \"type\": \"text\",\n        \"group\": \"cf_fuel\",\n        \"values\": [],\n        \"sort\": 8,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Опр-ие движ-я\",\n        \"key\": \"key_tripdetector_movedetect\",\n        \"default_value\": \"speedkph\",\n        \"pattern\": \"^[a-zA-Zа-яА-Я\\\\.\\\\_]*$\",\n        \"type\": \"list\",\n        \"group\": \"cf_trips\",\n        \"values\": [\n            {\n                \"key\": \"speedkph\",\n                \"value\": \"Скорость\"\n            },\n            {\n                \"key\": \"ignition\",\n                \"value\": \"Зажигание\"\n            }\n        ],\n        \"sort\": 8,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Серийный номер пломбы ДУТ\",\n        \"key\": \"dut_seal_serial_number\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 8,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Определение пробега\",\n        \"key\": \"tripdetector_mileagedetect\",\n        \"default_value\": \"mileage_GPS\",\n        \"pattern\": \"^[a-zA-Zа-яА-Я\\\\.\\\\_]*$\",\n        \"type\": \"list\",\n        \"group\": \"cf_trips\",\n        \"values\": [\n            {\n                \"key\": \"mileage_GPS\",\n                \"value\": \"GPS\"\n            },\n            {\n                \"key\": \"mileage_mileage_sensor\",\n                \"value\": \"Cенсор\"\n            },\n            {\n                \"key\": \"mileage_relative_mileage\",\n                \"value\": \"Относительный пробег\"\n            },\n            {\n                \"key\": \"mileage_GPS_ignition\",\n                \"value\": \"GPS зажигание\"\n            }\n        ],\n        \"sort\": 9,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Гос номер\",\n        \"key\": \"license_plate_number\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 9,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Определение моточасов\",\n        \"key\": \"key_motohourdetector\",\n        \"default_value\": \"ignition\",\n        \"pattern\": \"^[a-zA-Zа-яА-Я\\\\.\\\\_]*$\",\n        \"type\": \"list\",\n        \"group\": \"cf_motohours\",\n        \"values\": [\n            {\n                \"key\": \"ignition\",\n                \"value\": \"Зажигание\"\n            },\n            {\n                \"key\": \"abs_motohours\",\n                \"value\": \"Абсолютные моточасы\"\n            },\n            {\n                \"key\": \"relative_motohours\",\n                \"value\": \"Относительные моточасы\"\n            }\n        ],\n        \"sort\": 10,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Норма часов в день\",\n        \"key\": \"hours_rate\",\n        \"default_value\": \"8\",\n        \"pattern\": \"^((2[0-4]|1[0-9]|[0-9])|((2[0-3]|1[0-9]|[0-9])\\\\.[0-9]+))$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 10,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Дата блокировки(формат год-месяц-день, например 2019-03-07)\",\n        \"key\": \"block_date\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 11,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"КП\",\n        \"key\": \"kp\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 12,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"ДУТ\",\n        \"key\": \"dut\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 13,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Вторая sim\",\n        \"key\": \"second_sim\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 14,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Серийный номер ДУТ 1\",\n        \"key\": \"serial_number_dut_1\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 15,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Серийный номер ДУТ 2\",\n        \"key\": \"serial_number_dut_2\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 16,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Марка машины\",\n        \"key\": \"brand_name\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 17,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Вид топлива (бенз., д/т)\",\n        \"key\": \"fuel_type\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_fuel\",\n        \"values\": [],\n        \"sort\": 18,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Марка горючего\",\n        \"key\": \"fuel_mark\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_fuel\",\n        \"values\": [],\n        \"sort\": 19,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Код марки\",\n        \"key\": \"brand_code\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 20,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Видео устройство\",\n        \"key\": \"video_device_name\",\n        \"default_value\": \"\",\n        \"pattern\": \"^(?:|CARVIS)$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 21,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"ID-видео устройства\",\n        \"key\": \"video_device_id\",\n        \"default_value\": \"\",\n        \"pattern\": \"^.*$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 22,\n        \"show_in_monitoring\": false\n    },\n    {\n        \"name\": \"Камеры\",\n        \"key\": \"video_cameras\",\n        \"default_value\": \"\",\n        \"pattern\": \"^(|\\\\d+(?:[\\\\t]*,[\\\\t]*\\\\d+)*+)$\",\n        \"type\": \"text\",\n        \"group\": \"cf_etc\",\n        \"values\": [],\n        \"sort\": 23,\n        \"show_in_monitoring\": false,\n        \"hint\": \"Несколько числовых значений разделенных запятой, например 0,1,3,7\"\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","custom_fields"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"05ee6204-6755-48ec-aeac-ba53f1041e9e"},{"name":"/messages","id":"197a4250-1502-40f1-99f1-e6583d75c620","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"wss://{{base_url}}/messages","description":"<p><strong>Получение изменений в справочниках</strong></p>\n<hr />\n<p>Используется один вебсокет для получения следующих данных:</p>\n<ol>\n<li><p>Последнего сообщения от объекта</p>\n</li>\n<li><p>Уведомлений за последние сутки</p>\n</li>\n<li><p>Новых уведомлений</p>\n</li>\n<li><p>Изменения справочников</p>\n</li>\n</ol>\n<p>Если сервер использует протокол HTTP, то вебсокет должен работать по протоколу WS. Аналогично, если сервер использует HTTPS, то вебсокет должен работать по протоколу WSS.</p>\n<p>Можно также передать параметр <code>?from_time=1628259485000</code>, где значение — это метка времени в формате Unix (в часовом поясе пользователя). Это нужно, если вы хотите получить данные, начиная с определённого момента времени. Например, если у вас уже есть закэшированные данные на клиенте, и вы хотите получить только новые сообщения, начиная с этого времени.</p>\n<p><strong>Примеры:</strong></p>\n<ol>\n<li>Последнего сообщения от объекта</li>\n</ol>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"columns\": [\n            {\n                \"key\": \"unit_name\",\n                \"name\": \"Имя\",\n                \"value\": \"336024861\",\n                \"group\": \"main\"\n            },\n            {\n                \"key\": \"datepoint\",\n                \"name\": \"Был на связи\",\n                \"value\": \"2023-11-26 05:34:13\",\n                \"group\": \"main\"\n            },\n            {\n                \"key\": \"_datepoint\",\n                \"name\": \"_datepoint\",\n                \"value\": \"2023-11-26 05:34:13\",\n                \"group\": \"hidden\"\n            },\n            {\n                \"key\": \"_unix_timestamp\",\n                \"name\": \"_unix_timestamp\",\n                \"value\": 1700966053,\n                \"group\": \"hidden\"\n            },\n            {\n                \"key\": \"speed\",\n                \"name\": \"Скорость\",\n                \"value\": 0,\n                \"group\": \"gps\"\n            },\n            {\n                \"key\": \"satellites\",\n                \"name\": \"Спутники\",\n                \"value\": 17,\n                \"group\": \"gps\"\n            },\n            {\n                \"key\": \"_angle\",\n                \"name\": \"Угол\",\n                \"value\": 159,\n                \"group\": \"hidden\"\n            },\n            {\n                \"key\": \"address\",\n                \"name\": \"Адрес\",\n                \"value\": \"41.1201 44.8419\",\n                \"group\": \"gps\"\n            },\n            {\n                \"key\": \"_imei\",\n                \"name\": \"imei\",\n                \"value\": \"336024861\",\n                \"group\": \"hidden\"\n            },\n            {\n                \"key\": \"_marker_latlon\", //координаты, широта и долгота\n                \"name\": \"_marker_latlon\",\n                \"value\": [\n                    41.1200669,\n                    44.8419028\n                ],\n                \"group\": \"hidden\"\n            }\n        ],\n        \"unit_id\": \"363771f3-9769-4817-b986-b22ee9f37fdd\",\n        \"unit_name\": \"336024861\",\n        \"company_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\"\n    }\n]\n\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"notify\": {\n        \"time\": \"2020-10-16 17:03:16\", //время изменений\n        \"objects\": \"units\", //изменяемая сущность - \"users\", \"units\", \"notifications\" и т.д.\n        \"operation\": \"PUT\", // операция изменения - PUT,POST,DELETE,PATCH\n        \"id\": \"9eb8b795-dfb0-46e7-a35d-0fc43512ba66\", //id изменяемой сущности\n        \"msg\": \"Пользователь Mih обновил объект\" //сообщение \n    }\n}\n\n</code></pre><hr />\n<p><strong>Иконки для наглядного отображения состояния датчиков в мониторинге</strong></p>\n<hr />\n<p>Добавляется новое поле <code>sensors_settings</code> (массив), если для компании были настроены датчики.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"columns\": [\n        {\n            \"key\": \"unit_name\",\n            \"name\": \"Имя\",\n            \"value\": \"Omnicomm 22 336023861\",\n            \"group\": \"main\"\n        },\n        {\n            \"key\": \"datepoint\",\n            \"name\": \"Был на связи\",\n            \"value\": \"2025-02-18 15:20:17\",\n            \"group\": \"main\"\n        },\n        ...\n    ],\n    \"sensors_settings\": [\n        {\n            \"name\": \"Уровень топлива\", // Название, по этому значению определяется\n            \"icon\": \"icon_fuel_level\", // иконка\n            \"sensor_name\": \"Топлива\",// Название найденного датчика\n            \"sensor_value\": 17, //Значение датчика\n            \"style_color\": \"#51AAEB\" // Цвет иконки рассчитывается на основе показаний датчика\n        }\n    ],\n    \"unit_id\": \"e037342f-e891-44d7-91b6-354ede0ef629\",\n    \"unit_name\": \"Omnicomm 22\",\n    \"company_id\": \"3e70f167-9fad-4753-bуcf-d7d47c2c648c\"\n}\n\n</code></pre>","urlObject":{"protocol":"wss","path":["messages"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"197a4250-1502-40f1-99f1-e6583d75c620"},{"name":"/locator_msg?id=:id","id":"b40d4ba6-8227-4d85-8412-43b8b92bfba5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"wss://{{base_url}}/locator_msg?id=","description":"<p><strong>Получение изменений по ID локатора; см. Locators</strong></p>\n<hr />\n<p>После подключения через сокет, поступает информация о местоположении связанного с локатором объекта.</p>\n<p>Структура как в /messages, но приходят только поля unit_name, datepoint, _datepoint, address, _marker_latlon</p>\n","urlObject":{"protocol":"wss","path":["locator_msg"],"host":["{{base_url}}"],"query":[{"key":"id","value":""}],"variable":[]}},"response":[],"_postman_id":"b40d4ba6-8227-4d85-8412-43b8b92bfba5"},{"name":"/messages?monitoring_filter=filter","id":"0c95d1c8-2138-4c39-87ff-77de6d7257e4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"wss://{{base_url}}/messages?monitoring_filter={\"conditions\":[{\"field\":\"name\",\"value\": \"Бензовоз\"},{\"field\":\"sensors.type.key\",\"value\": \"ignition\"}]}","description":"<p><strong>Получение изменений в справочниках + фильтрация объектов в мониторинге</strong></p>\n<hr />\n<p>В поле conditions можно указать условия в полях field и value.</p>\n<p>Например:<br />wss://dev5.skif.pro/messages?monitoring_filter={\"conditions\":[{\"field\":\"name\",\"value\": \"Бензовоз\"},{\"field\":\"sensors.type.key\",\"value\": \"ignition\"}]}</p>\n<p>Возможные значения field:<br />Вот эти поля сейчас есть в фильтре в списке объектов:</p>\n<ul>\n<li><p>name - Имя</p>\n</li>\n<li><p>imei - IMEI</p>\n</li>\n<li><p>phonenumber - Телефоны, на обоих номер телефона ищется</p>\n</li>\n<li><p>custom_fields - Доп. поля, на значения в дополнительных полей ищется</p>\n</li>\n<li><p>sensors.name - Имена датчиков</p>\n</li>\n<li><p>sensors.type.key - Типы датчиков, например ignition. Возможные значения можно получить из справочника с типом sensor_type</p>\n</li>\n<li><p>sensors.param - Параметр датчиков, например dut_485_1, возможные значение можно получать с помощью GET /units/sensors/params</p>\n</li>\n<li><p>events - События, по описанию</p>\n</li>\n<li><p>events.type.key - Типы событий, например filling. Из справочника можно получать с типом event_type</p>\n</li>\n<li><p>groups - Группа, можно отправить название или ID группы</p>\n</li>\n<li><p>driver - Водитель, можно отправить имя или ID водителя или код водителя (пользователи, для которых is_driver=true)</p>\n</li>\n</ul>\n<p>В value можно отправить несколько значений разделенных запятыми.<br />При изменении данных на сокет приходит сообщение в виде {\"monitoring_units\" : [\"ID1\", \"ID2\", \"ID3\"]}<br />Надо оставлять только эти объекты в мониторинге.<br />Когда фильтр изменяется, необходимо переподключится</p>\n","urlObject":{"protocol":"wss","path":["messages"],"host":["{{base_url}}"],"query":[{"key":"monitoring_filter","value":"{\"conditions\":[{\"field\":\"name\",\"value\": \"Бензовоз\"},{\"field\":\"sensors.type.key\",\"value\": \"ignition\"}]}"}],"variable":[]}},"response":[],"_postman_id":"0c95d1c8-2138-4c39-87ff-77de6d7257e4"},{"name":"/geocode/:address","id":"4e7ce341-1121-43a9-bc3c-329653738761","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/geocode/:address","description":"<p><strong>Получение координат по адресу</strong></p>\n","urlObject":{"path":["api_v1","geocode",":address"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"address"}]}},"response":[],"_postman_id":"4e7ce341-1121-43a9-bc3c-329653738761"},{"name":"/routing/:points","id":"d6db4c76-4eb3-4f67-8089-386f865febb9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/routing/:points","description":"<p><strong>Построение маршрута, проходящего через указанные точки</strong></p>\n<hr />\n<p>Структура запроса:<br />points - Список точек в формате : latitude1,longitude1;latitude2,longitude2;...;latitudeN,longitudeN<br />Можно указать до 10 точек.</p>\n<p>Структура ответа, как в ответе на запрос /fastracks</p>\n<p>Пример запроса:<br />GET /routing/76.928054,43.226996;76.913200,43.237085;76.887795,43.217677</p>\n<p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"columns\": [\n        {\n            \"key\": \"longitude\",\n            \"value\": \"Долгота\"\n        },\n        {\n            \"key\": \"latitude\",\n            \"value\": \"Широта\"\n        }\n    ],\n    \"values\": [\n        {\n            \"style\": \"style_0\",\n            \"points\": [\n                [\n                    43.22688,\n                    76.928102\n                ],\n                [\n                    43.22682,\n                    76.92688\n                ],\n                [\n                    43.226827,\n                    76.924814\n                ],\n                [\n                    43.22683,\n                    76.923471\n                ],\n                [\n                    43.22688,\n                    76.928102\n                ],\n                [\n                    43.22655,\n                    76.915747\n                ],\n                [\n                    43.228767,\n                    76.91545\n                ],\n                [\n                    43.231589,\n                    76.915042\n                ],\n                [\n                    43.235994,\n                    76.913977\n                ],\n                [\n                    43.22655,\n                    76.915747\n                ],\n                [\n                    43.236787,\n                    76.91353\n                ],\n                [\n                    43.236787,\n                    76.91353\n                ],\n                [\n                    43.236508,\n                    76.91167\n                ],\n                [\n                    43.236508,\n                    76.91167\n                ],\n                [\n                    43.237132,\n                    76.913191\n                ],\n                [\n                    43.237132,\n                    76.913191\n                ],\n                [\n                    43.237132,\n                    76.913191\n                ],\n                [\n                    43.236318,\n                    76.916238\n                ],\n                [\n                    43.236532,\n                    76.918205\n                ],\n                [\n                    43.237132,\n                    76.913191\n                ],\n                [\n                    43.236552,\n                    76.918459\n                ],\n                [\n                    43.236552,\n                    76.918459\n                ],\n                [\n                    43.237071,\n                    76.918404\n                ],\n                [\n                    43.237071,\n                    76.918404\n                ],\n                [\n                    43.237018,\n                    76.917373\n                ],\n                [\n                    43.237018,\n                    76.917373\n                ],\n                [\n                    43.236609,\n                    76.916195\n                ],\n                [\n                    43.236609,\n                    76.916195\n                ],\n                [\n                    43.236423,\n                    76.916222\n                ],\n                [\n                    43.236342,\n                    76.911073\n                ],\n                [\n                    43.236423,\n                    76.916222\n                ],\n                [\n                    43.235898,\n                    76.909104\n                ],\n                [\n                    43.235898,\n                    76.909104\n                ],\n                [\n                    43.235355,\n                    76.909171\n                ],\n                [\n                    43.233921,\n                    76.904739\n                ],\n                [\n                    43.23341,\n                    76.903425\n                ],\n                [\n                    43.232191,\n                    76.900306\n                ],\n                [\n                    43.231343,\n                    76.898147\n                ],\n                [\n                    43.231138,\n                    76.897599\n                ],\n                [\n                    43.230524,\n                    76.896052\n                ],\n                [\n                    43.230227,\n                    76.895309\n                ],\n                [\n                    43.229308,\n                    76.893823\n                ],\n                [\n                    43.228953,\n                    76.893265\n                ],\n                [\n                    43.228357,\n                    76.892376\n                ],\n                [\n                    43.228289,\n                    76.892268\n                ],\n                [\n                    43.227905,\n                    76.89167\n                ],\n                [\n                    43.235355,\n                    76.909171\n                ],\n                [\n                    43.227609,\n                    76.891202\n                ],\n                [\n                    43.224853,\n                    76.891568\n                ],\n                [\n                    43.224363,\n                    76.891627\n                ],\n                [\n                    43.223981,\n                    76.891668\n                ],\n                [\n                    43.222661,\n                    76.891839\n                ],\n                [\n                    43.221646,\n                    76.892001\n                ],\n                [\n                    43.221156,\n                    76.89205\n                ],\n                [\n                    43.227609,\n                    76.891202\n                ],\n                [\n                    43.218662,\n                    76.892376\n                ],\n                [\n                    43.218381,\n                    76.8895\n                ],\n                [\n                    43.218332,\n                    76.888697\n                ],\n                [\n                    43.218662,\n                    76.892376\n                ],\n                [\n                    43.217725,\n                    76.887653\n                ],\n                [\n                    43.217725,\n                    76.887653\n                ]\n            ]\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","routing",":points"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"points"}]}},"response":[],"_postman_id":"d6db4c76-4eb3-4f67-8089-386f865febb9"},{"name":"/geocode_search","id":"53abdc19-e66b-42c0-a317-6c4d702cb8df","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"part\": \"Алматы\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/geocode_search","description":"<p><strong>Поиск места по адресу</strong></p>\n<hr />\n<p>Запрос:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"part\": \"Москва\"\n}\n\n</code></pre>\n<p>part - часть текста</p>\n<p>Структура ответа:<br />JSON массив, где каждый элемент имеет следующие поля:<br />- name : Название места<br />- decription : Описание места<br />- pos : Координаты места в формате: [широта, долгота]</p>\n<p>Пример запроса:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"part\": \"Алма\"\n}\n\n</code></pre>\n<p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"name\": \"Алматы\",\n        \"description\": \"Казахстан\",\n        \"pos\": [\n            76.945627,\n            43.237163\n        ]\n    },\n    {\n        \"name\": \"река Алма\",\n        \"description\": \"Амурская область, Россия\",\n        \"pos\": [\n            124.708934,\n            53.214184\n        ]\n    },\n    {\n        \"name\": \"Алма\",\n        \"description\": \"провинция Онтарио, Канада\",\n        \"pos\": [\n            -80.502192,\n            43.727401\n        ]\n    }\n]\n\n</code></pre>\n","urlObject":{"path":["api_v1","geocode_search"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"53abdc19-e66b-42c0-a317-6c4d702cb8df"},{"name":"/servers?body=:body","id":"706ec81e-c50d-4cd2-bf17-2964f0d4816e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/servers?body=","description":"<p><strong>Получение серверов по email пользователя</strong></p>\n<hr />\n<p>Параметр body содержит следущие поля:</p>\n<p>email (обязательный) - email пользователя</p>\n<p>get (необязательный) - возможные значения: \"ktzh\" - для получения серверов приложения КТЖ, \"all\" - для получения всех доступных серверов</p>\n","urlObject":{"path":["api_v1","servers"],"host":["{{base_url}}"],"query":[{"key":"body","value":""}],"variable":[]}},"response":[],"_postman_id":"706ec81e-c50d-4cd2-bf17-2964f0d4816e"},{"name":"/points_geozones","id":"82a2da09-2e1f-4051-8026-94782281b74a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"model\": \"geozones\",\n    \"from\": 0,\n    \"count\": 100\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/points_geozones","description":"<p><strong>Получение точек с информацией о вхождении в геозоны</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p>Пример запроса:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"model\": \"units\",\n    \"value\": \"тест\", // для поиска\n    \"from\": 0,\n    \"count\": 100\n}\n\n</code></pre>\n<p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\"> {\n     \"max\": 2,\n     \"list\": [{\n         \"id\": \"53e57d49-4e98-4399-bbf2-b03964df68b7\",\n         \"name\": \"testName-777\",\n         \"imei\": \"e2f856c7-e7a9-4071-adb4-f76df176661b\",\n         \"company_id\": \"11111111-1111-1111-1111-111111111111\",\n         \"company_name\": \"companyName\"\n     }, {\n         \"id\": \"9e49f72f-1f1a-46c3-9e61-b61a5f9900ea\",\n         \"name\": \"testName-22222222\",\n         \"imei\": \"06ee6786-905b-4aa3-ac65-2a18054128ea\",\n         \"company_id\": \"11111111-1111-1111-1111-111111111111\",\n         \"company_name\": \"companyName\"\n     }]\n }\n\n</code></pre>\n","urlObject":{"path":["api_v1","points_geozones"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"82a2da09-2e1f-4051-8026-94782281b74a"},{"name":"/copy","id":"cc150b1f-8526-4c90-a93b-01030e1628f7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"type\": \"units\",\n    \"ids\": [\"d20f1b59-85c3-46a2-b90e-5915fcdda7cb\"], \n    \"to_company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/copy","description":"<p><strong>Копирует сущности из одной компании в другую (пока реализовано для units, geozones и reports_templates)</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p>Примеры запросов:</p>\n<p>Копирование в 1 компанию:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"units\",\n    \"ids\": [\"b92f5e06-ee48-4a08-8647-d805465e7be8\", \"b5298b57-df70-405e-b2b6-071ed230d36c\"], \n    \"to_company_id\": \"0aa10a42-fc54-497c-a54b-3295e4633348\"\n}\n\n</code></pre>\n<p>Можно копировать в несколько компаний:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"units\",\n    \"ids\": [\"b92f5e06-ee48-4a08-8647-d805465e7be8\", \"b5298b57-df70-405e-b2b6-071ed230d36c\"], \n    \"to_company_id\": [\"0aa10a42-fc54-497c-a54b-3295e4633348\", \"qffa142-fc54-497c-a54b-3295e4633348\" ]\n}\n\n</code></pre>\n<p>А чтобы копировать все сущности c другой компании:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"units\",\n    \"from_company_id\": \"b92f5e06-ee48-4a08-8647-d805465e7be8\", \n    \"to_company_id\": \"0aa10a42-fc54-497c-a54b-3295e4633348\"\n}\n\n</code></pre>\n<p>Также можно скопировать в несколько компаний:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"units\",\n    \"from_company_id\": \"b92f5e06-ee48-4a08-8647-d805465e7be8\", \n    \"to_company_id\": [\"0aa10a42-fc54-497c-a54b-3295e4633348\", \"qffa142-fc54-497c-a54b-3295e4633348\"]\n}\n\n</code></pre>\n<p>Возможные значения type - \"units\", \"geozones\" или \"report_templates\" ( в будущем будут: \"unitsgroup\", \"units\", \"geozones\", \"notifications\", \"routes\", \"trailers\", \"mailings\")</p>\n<p>ids - id сущностей, которые нужно скопировать в другую компанию.</p>\n<p>from_company_id - id компании, c которой нужно скопировать все сущности.</p>\n<p>to_company_id - id компании, в которую нужно скопировать сущности.</p>\n<p>В случае успеха возвращается код 200, иначе текст ошибки.</p>\n","urlObject":{"path":["api_v1","copy"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"cc150b1f-8526-4c90-a93b-01030e1628f7"},{"name":"/sessions_excel","id":"432ccf86-f9f3-4b7c-90a1-5ce6a636ea1c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"type\": \"units\",\n    \"ids\": [\"d20f1b59-85c3-46a2-b90e-5915fcdda7cb\"], \n    \"to_company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/copy","description":"<p>Копирует сущности из одной компании в другую (пока реалзировано для units и geozones)</p>\n<p>Примеры запросов:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"type\": \"units\",\n    \"ids\": [\"b92f5e06-ee48-4a08-8647-d805465e7be8\", \"b5298b57-df70-405e-b2b6-071ed230d36c\"], \n    \"to_company_id\": \"0aa10a42-fc54-497c-a54b-3295e4633348\"\n}\n\n</code></pre><p>А чтобы копировать все сущности c другого компания:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"type\": \"units\",\n    \"from_company_id\": \"b92f5e06-ee48-4a08-8647-d805465e7be8\", \n    \"to_company_id\": \"0aa10a42-fc54-497c-a54b-3295e4633348\"\n}\n\n</code></pre><p>Возможные значения type - \"units\" или \"geozones\" ( в будущем будут: \"unitsgroup\", \"units\", \"geozones\", \"report_templates\", \"notifications\", \"routes\", \"trailers\", \"mailings\")</p>\n<p>ids - id сущностей которые нужно скопировать в другую компанию</p>\n<p>from_company_id - id компании c которого нужно скопировать все сущности</p>\n<p>to_company_id - id компании в которую нужно скопировать сущности</p>\n<p>В случае успеха возвращается код 200, иначе текст ошибки</p>\n","urlObject":{"path":["api_v1","copy"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"432ccf86-f9f3-4b7c-90a1-5ce6a636ea1c"},{"name":"/restore","id":"756e8f81-9f7f-40e9-ba7d-2a358f51ec04","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"type\": \"units\",\n    \"ids\": [\"afcbb296-ce2b-403b-8e1e-f3c12e6f108c\"]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/restore","description":"<p><strong>Восстанавливает сущности (пока реализовано для units)</strong></p>\n<hr />\n<p><strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p>Пример запроса:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"type\": \"units\",\n    \"ids\": [\"b92f5e06-ee48-4a08-8647-d805465e7be8\", \"b5298b57-df70-405e-b2b6-071ed230d36c\"]\n}\n\n</code></pre><p>Возможные значения type - \"units\" ( в будущем будут: \"unitsgroup\", \"units\", \"geozones\", \"report_templates\", \"notifications\", \"routes\", \"trailers\", \"mailings\")</p>\n<p>ids - id сущностей, которые нужно востановить.</p>\n<p>В случае успеха возвращается код 200, иначе текст ошибки.</p>\n","urlObject":{"path":["api_v1","restore"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"756e8f81-9f7f-40e9-ba7d-2a358f51ec04"},{"name":"/admin_query","id":"4bec4758-e20d-428a-902f-d34aeb63a729","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"model\": \"units\",\n    \"from\": 0,\n    \"count\": 100,\n    \"companies\": [\n        {\"id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\"}\n    ],\n    \"conditions\": [\n        {\"field\": \"terminal_type_key\", \"values\":[\"adm\",\"galileo\"]},\n        {\"field\": \"sensors.type_key\", \"values\": [\"cardnumber,ignition\"]}\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/admin_query","description":"<p><strong>Получение сущностей по всем компаниям</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p>Примеры запросов:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"model\": \"units\",\n    \"value\": \"тест\", //для поиска\n    \"from\": 0,\n    \"count\": 100\n}\n\n</code></pre><p>Для получение удаленных объектов:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"model\": \"units\",\n    \"value\": \"тест\", //для поиска\n    \"from\": 0,\n    \"count\": 100,\n    \"is_delete\": true\n}\n\n</code></pre><p>Для фильтрации по компании указать компании в поле companies:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"model\": \"units\",\n    \"value\": \"тест\", /для поиска\n    \"from\": 0,\n    \"count\": 100,\n    \"companies\": [\n        {\"id\": \"935aa95a-d245-42d9-92ea-da6a2530d59c\"},\n        {\"id\": \"25d1ff38-e39e-42f4-9659-2124d308400c\"}\n    ],\n   \"conditions\": [\n        {\"field\": \"terminal_type_key\", \"values\":[\"adm\",\"galileo\"]},\n        {\"field\": \"sensors.type_key\", \"values\": [\"cardnumber,ignition\"]}\n    ] \n}\n\n</code></pre><p>Возможные значения model - \"unitsgroup\", \"units\", \"geozones\", \"report_templates\", \"notifications\", \"routes\", \"trailers\", \"mailings\", \"terminals\", \"retranslators\".</p>\n<p>В conditions можно указать дополнительный фильтр для объектов по протоколам и типам датчиков.</p>\n<p>Чтобы фильтровать по интегратору надо отправить в запросе поле dealer. Достаточно указать id.</p>\n<p>\"dealer\": {\"id\": \"8a7d85f9-156e-41ab-9534-da71d1847cba\"}</p>\n<p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code> {\n     \"max\": 2,\n     \"list\": [{\n         \"id\": \"53e57d49-4e98-4399-bbf2-b03964df68b7\",\n         \"name\": \"testName-777\",\n         \"imei\": \"e2f856c7-e7a9-4071-adb4-f76df176661b\",\n         \"company_id\": \"11111111-1111-1111-1111-111111111111\",\n         \"company_name\": \"companyName\"\n     }, {\n         \"id\": \"9e49f72f-1f1a-46c3-9e61-b61a5f9900ea\",\n         \"name\": \"testName-22222222\",\n         \"imei\": \"06ee6786-905b-4aa3-ac65-2a18054128ea\",\n         \"company_id\": \"11111111-1111-1111-1111-111111111111\",\n         \"company_name\": \"companyName\"\n     }]\n }\n\n</code></pre><p>Пример получения тех. параметров объекта: укажите необходимое поле в виде custom_fields.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"model\": \"units\",\n    \"fields\": [\"id\", \"name\", \"custom_fields.tripdetector_minmovespeed\"],\n    \"from\": 0,\n    \"count\": 2\n}\n\n</code></pre><p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 202,\n    \"list\": [\n        {\n            \"id\": \"da8e065e-27b8-4007-a231-4ffcb0c20e98\",\n            \"name\": \"IVECO 606 TВA 03\",\n            \"custom_fields\": [\n                {\n                    \"key\": \"tripdetector_minmovespeed\",\n                    \"value\": \"3\",\n                    \"group\": \"cf_trips\"\n                }\n            ]\n        },\n        {\n            \"id\": \"504f7e4e-d938-4016-99f5-4e8294efa9f0\",\n            \"name\": \"Кран Урал 676 STA 033\",\n            \"custom_fields\": [\n                {\n                    \"key\": \"tripdetector_minmovespeed\",\n                    \"value\": \"5\",\n                    \"group\": \"cf_trips\"\n                }\n            ]\n        }\n    ]\n}\n\n</code></pre><p>Пример получения списка терминалов в отсортированном порядке по названию компании в обратном порядке:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"model\": \"terminals\",\n    \"sortField\": \"company_name\",\n    \"sortDesc\": true,\n    \"from\": 0,\n    \"count\": 100\n}\n\n</code></pre>","urlObject":{"path":["api_v1","admin_query"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"4bec4758-e20d-428a-902f-d34aeb63a729"},{"name":"/auth_admin_query","id":"887f9573-2c75-4221-b4e7-73c21ff04b0b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"model\": \"companies\",\n    \"from\": 0,\n    \"count\": 100\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/auth_admin_query","description":"<p><strong>Получения сущностей по всем компаниям для</strong> <strong>users и companies</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p>Примеры запросов:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"model\": \"units\",\n    \"value\": \"тест\", /для поиска\n    \"from\": 0,\n    \"count\": 100\n}\n\n</code></pre><p>Возможные значения model - \"users\", \"companies\"</p>\n<p>Чтобы фильтровать по интегратору надо отправить в запросе поле dealer. Достаточно указать id.</p>\n<p>\"dealer\": {\"id\": \"8a7d85f9-156e-41ab-9534-da71d1847cba\"}</p>\n<p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code> {\n{\n    \"max\": 531,\n    \"list\": [\n        {\n            \"id\": \"2a004e29-0ca2-4f28-8a23-2ffb5392fd43\",\n            \"name\": \"Company\",\n            \"timezone_key\": \"UTC+3\"\n        },\n        {\n            \"id\": \"06187e4b-3059-4da1-aa2f-89da732d2b2f\",\n            \"name\": \"Company\",\n            \"timezone_key\": \"UTC+3\"\n        },\n...\n\n</code></pre>","urlObject":{"path":["api_v1","auth_admin_query"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"887f9573-2c75-4221-b4e7-73c21ff04b0b"},{"name":"/attachments","id":"0ced5347-cf86-4aaf-8961-e81448fa22cf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"{{base_url}}/api_v1/attachments","description":"<p><strong>Добавление вложения, которое можно будет использовать в теге attachments для таблиц шаблонов</strong></p>\n<hr />\n<p>см. POST /report_templates и PUT /report_templates/:template_id</p>\n<p>Сохраняет файлы на диске, присваивая ему id.<br />Файлы сохраняются с именами:<br />\"/attachments/\" + attachment.id + \".\" + extension</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong><br />Возвращается модель вложения</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"80a201ea-67e5-4cd9-aea5-591128d2855a\", //его id\n    \"created\": \"2017-11-16 23:41:44\", //дата создания\n    \"name\": \"test.doc\", //переданное название файла\n    \"url\": \"/attachments/80a201ea-67e5-4cd9-aea5-591128d2855a.doc\" //путь, по которому доступен файл\n}\n\n</code></pre><p>Для получения вложения нужно использовать запрос GET /attachments/80a201ea-67e5-4cd9-aea5-591128d2855a.doc</p>\n","urlObject":{"path":["api_v1","attachments"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"0ced5347-cf86-4aaf-8961-e81448fa22cf"},{"name":"/attachments/:id","id":"ec67af4f-25a0-413c-b20a-4d7a12c8c24b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/attachments/:id","description":"<p><strong>Получение вложения</strong></p>\n<hr />\n<p>После создания вложения через метод POST /attachments возвращается json c url - его нужно использовать для получения файла</p>\n","urlObject":{"path":["api_v1","attachments",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"ec67af4f-25a0-413c-b20a-4d7a12c8c24b"},{"name":"/cancel_delete/:id","id":"3d40450a-744e-444e-aa66-8fa4cf9f5b00","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"{{base_url}}/api_v1/cancel_delete/:id","description":"<p><strong>Отмена запроса удаления по уникальному ID</strong></p>\n<hr />\n<p>Этот ID приходит в теле ответа на запрос удаления. см. DELETE /units?ids=:ids</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong><br />PUT /cancel_delete/80a201ea-67e5-4cd9-aea5-591128d2855a.doc</p>\n<p>Возвращает 200 в случае успешной отмены, в противном случае - 422 с текстом ошибки.</p>\n","urlObject":{"path":["api_v1","cancel_delete",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"3d40450a-744e-444e-aa66-8fa4cf9f5b00"},{"name":"/auth_cancel_delete/:id","id":"556ddc7b-e386-499c-995c-4a3ecb26b6d9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"{{base_url}}/api_v1/auth_cancel_delete/:id","description":"<p><strong>Отмена запроса на удаление по уникальному ID</strong></p>\n<hr />\n<p>Этот ID приходит в теле ответа на запрос удаления. см. DELETE /company/users?ids=:ids</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong><br />PUT /auth_cancel_delete/80a201ea-67e5-4cd9-aea5-591128d2855a.doc</p>\n<p>Возвращает 200 в случае успешной отмены, в противном случае - 422 с текстом ошибки.</p>\n","urlObject":{"path":["api_v1","auth_cancel_delete",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"556ddc7b-e386-499c-995c-4a3ecb26b6d9"},{"name":"/mtracker_cancel_delete/:id","id":"b857e93c-7a24-4a1a-a141-da29abb80d83","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"{{base_url}}/api_v1/mtracker_cancel_delete/:id","description":"<p><strong>Отмена запроса на удаление по уникальному ID.</strong></p>\n<hr />\n<p>Уникальный ID приходит в теле ответа на запрос уделения.</p>\n<p>см. DELETE /terminals?ids=:ids или DELETE /retranslators?ids=:ids</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong><br />PUT /mtracker_cancel_delete/80a201ea-67e5-4cd9-aea5-591128d2855a.doc</p>\n<p>Возвращает 200 в случае успешной отмены, в противном случае - 422 с текстом ошибки.</p>\n","urlObject":{"path":["api_v1","mtracker_cancel_delete",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"b857e93c-7a24-4a1a-a141-da29abb80d83"},{"name":"/support","id":"081a974e-bad4-4584-a2ce-631a937f56c9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"subject\": \"Привет\",\n    \"body\": \"Как дела? Как создать объект?\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/support","description":"<p><strong>Отправка письма в поддержку интегратора</strong></p>\n<hr />\n<p>Тело запроса:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"subject\": \"тема письма\", \n    \"body\": \"текст сообщения\"\n}\n\n</code></pre><p>Сообщение отправляется всем сотрудникам интегратора с ролью \"Редактор тарифа\".<br />Отправка доступна всем пользователям Компании.</p>\n","urlObject":{"path":["api_v1","support"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"081a974e-bad4-4584-a2ce-631a937f56c9"}],"id":"c3e4a30e-bf2f-4b61-8808-8384c27cba32","_postman_id":"c3e4a30e-bf2f-4b61-8808-8384c27cba32","description":""},{"name":"Компания","item":[{"name":"/company/users/:id","id":"b81c7cad-55ca-45da-83d7-3aefe62411e7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"{\n    \"companies\": [\n        {\"id\": \"545c61a4-27ae-4335-a18e-e63e98b3eceb\"},\n        {\"id\": \"6b596675-81ba-4916-ac2d-32388da57e6d\"},\n        {\"id\": \"6c08dd40-950a-4d7e-86ee-aa8f12435ed7\"}\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/company/users/:id","description":"<p><strong>Удаление пользователя из компании</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id - ID пользователя</p>\n<p>В админ панеле можно удалить из определенных компаний с укзанием списка компаний в поле companies</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"companies\": [\n    {\n      \"id\": \"545c61a4-27ae-4335-a18e-e63e98b3eceb\"\n    },\n    {\n      \"id\": \"6b596675-81ba-4916-ac2d-32388da57e6d\"\n    },\n    {\n      \"id\": \"6c08dd40-950a-4d7e-86ee-aa8f12435ed7\"\n    }\n  ]\n}\n\n</code></pre>\n<hr />\n<hr />\n<p>Ответ: Пусто 200<br />Если пользователь с таким id не найден, то возвращается ошибка 400</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"id\": [\n    \"Недопустимый параметр\"\n  ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","company","users",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID пользователя</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"b81c7cad-55ca-45da-83d7-3aefe62411e7"},{"name":"/company/users?ids=:ids","id":"0fe0d9a0-ad9b-4212-9c36-111dea4c86f8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"","value":"","description":"<p>Список ID пользователей</p>\n","type":"text"}],"url":"{{base_url}}/api_v1/company/users?ids=","description":"<p><strong>Планирует удаление пользователя с доступом к текущей компании по их id.</strong></p>\n<hr />\n<p>Если пользователь удаляется из последней компании, то создается новая компания, где у него роль Admin.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong><br />DELETE /company/users?ids=456dc493-5983-478b-90cc-5bca0bfe708c,05f6bb8b-84cf-4553-951a-c5cca0be7220</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>ids - список Id пользователей</p>\n<p>Пользователь должен обладать правами Admin, иначе возвращается ошибка 403.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Статус 200. В теле ответа id задачи на удаление, с помощью которого можно отменить удаление через роут PUT auth_cancel_delete/:id<br />Если хотя бы один пользователь с таким id не найден, то возвращается ошибка 400</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"id\": [\n    \"Недопустимый параметр\"\n  ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","company","users"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"0fe0d9a0-ad9b-4212-9c36-111dea4c86f8"},{"name":"/company/change/:id","id":"6553fe00-f11f-4036-aef7-e75500cffebf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"{{base_url}}/api_v1/company/change/:id","description":"<p><strong>Выбор компании пользователем</strong></p>\n<hr />\n<p>В cookies пользователя прописывается новая сессия</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>В качестве id может использоваться только id доступной пользователю компании из списка companies в сущности user, см GET /me</p>\n<p><strong>Параметры:</strong></p>\n<p>id - id доступной компании пользователя.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Возвращает код 200:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"75bd17cc-642f-4c7c-982e-e0e991907733\"\n}\n\n</code></pre><p>Возвращает код 422 в случае если id не валидно:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 4022,\n    \"field\": \"id\",\n    \"message\": \"Вы не имеете доступа к выбранной компании, попробуйте перезайти.\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","company","change",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID доступной компании пользователя</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"6553fe00-f11f-4036-aef7-e75500cffebf"},{"name":"/company/change/:id","id":"f101eb04-49a1-4ec2-ab02-f723d4249e29","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/company/change/:id","description":"<p><strong>Переключение в компанию по ссылке</strong></p>\n<hr />\n<p>В cookies пользователя сохраняется сессия компании, переданная через параметр <code>:id</code>, после чего происходит перенаправление на главную страницу приложения.</p>\n","urlObject":{"path":["api_v1","company","change",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"f101eb04-49a1-4ec2-ab02-f723d4249e29"},{"name":"/company/:id","id":"b55ceb6f-785f-4add-81c5-083dd369e014","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n    \"name\": \"Одуванчик \",\n    \"auto_kill_sessions\": 0,\n    \"strong_password\": false,\n    \"efis_retranslate\": true,\n    \"dealer\": {\n        \"id\": \"dd11e469-f929-4087-96b2-3911335015c1\",\n        \"is_default\": false,\n        \"type\": {\n            \"key\": \"legal_entity\",\n            \"type\": \"dealer_types\",\n            \"value\": \"Юридическое лицо\"\n        },\n        \"inn\": \"\",\n        \"phone\": \"\",\n        \"email\": \"\",\n        \"contact_person\": \"\",\n        \"name\": \"Мониторинг Плюс Москва\",\n        \"_default\": false,\n        \"_delete\": false\n    },\n    \"timezone\": {\n        \"key\": \"UTC+3\",\n        \"type\": \"timezones\",\n        \"value\": \"(GMT+03:00) Москва, Санкт-Петербург, Волгоград\"\n    },\n    \"dateformat\": {\n        \"key\": \"d/MM/yy\",\n        \"type\": \"dateformats\",\n        \"value\": \"d/MM/yy(25/01/14, 2/12/87)\"\n    },\n    \"timeformat\": {\n        \"key\": \"HH:mm\",\n        \"type\": \"timeformats\",\n        \"value\": \"HH:mm(09:45, 17:20)\"\n    },\n    \"holidays\": [],\n    \"forbidden_layers\": [{\"key\": \"pressure_new\"}]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/company/:id","description":"<p><strong>Изменение параметров компании</strong></p>\n<hr />\n<p>Изменяет атрибуты компании. Доступно только для пользователей, у которых доступ к компании на уровне Admin.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>В качестве id может использоваться только id доступной пользователю компании из списка companies в сущности user, см GET /me</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    'name': 'newCompanyName', \n    'auto_kill_sessions': 20,\n    'strong_password': true\n    'timezone': { 'key': 'UTC+4' },\n    'holidays': [\n        {'year': 2020, 'days': ['01.01', '01.02', '03.08', '04.13', '04.14']}, \n         {'year': 2021, 'days': ['01.01', '01.02', '03.08', '04.15', '04.16']}\n    ],\n    \"properties\": { // настройки для компании\n        \"action_templates\": [// шаблоны actions\n            {\n                \"name\": \"Шаблон1\", // имя шаблона\n                \"is_unit_action\": false,// true если относится к объектам.\n                \"actions\": [// список actions, см. GET /actions\n                    {\"id\": \"e80c59b0-2c80-4bea-969c-498db4b0d446\"},\n                    {\"id\": \"62e20acf-cab3-4e8d-9e1f-e8774cf10764\"}\n                ]\n            },\n             {\n                \"name\": \"Шаблон2\", // имя шаблона\n                \"is_unit_action\": true,// true если относится к объектам.\n                \"actions\": [// список actions, см. GET /actions\n                    {\"id\": \"7d0ca86a-66e2-473b-8f4c-a61cc3e40649\"},\n                    {\"id\": \"9259c55d-7e1c-45a2-ab3e-c98aef52a1f5\"}\n                ]\n            }\n        ]\n    }\n}\n\n</code></pre><p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>id - id доступной компании пользователя\nname - имя компании \nauto_kill_sessions - минуты, срок жизни сессии, \nstrong_password - true, если компания использует сложный пароль, иначе false\ninteger, если 0 то сессии живут бесконечно для пользователей компании\ntimezone - часовой пояс компании\ndateformat - формат даты для компании, выбирается из результата запроса /properties/dateformats\ntimeformat - формат времени для компании, выбирается из результата запроса /properties/timeformats\nholidays - нерабочие дни для компания\n    year - год, int от 2000 до 3000\n    days - массив нерабочих дней, в формате MM.dd \nforbidden_layers - Список запрещенных слоев, ключи получаются из справочника /properties с типом layers_type\nlogo - логотипе на экране мониторинга, на месте надписи Skif.Pro. Сначала нужно загрузить фото запросом: \n    `POST /api_v1/upload_photos/logos` , в form-data указать файл в поле file&lt;br&gt;\n     logo для компании выбрать из поля small.url\n \n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<p>Возвращает код 200 с body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"75bd17cc-642f-4c7c-982e-e0e991907733\",\n    \"name\": \"Моя компания\",\n    \"auto_kill_sessions\": 20,\n    \"strong_password\": true,\n    \"timezone\": {\"key\": \"UTC+3\"}  // часовой пояс компании\n    \"dateformat\": {\"key\": \"yyyy-MM-dd\"},  // формат даты компании,\n    \"timeformat\": {\"key\": \"HH:mm:ss\"},  // формат времени компании,\n    \"holidays\": [\n         {\"year\": 2020, \"days\": [\"01.01\", \"01.02\", \"03.08\", \"04.13\", \"04.14\"]}, \n         {\"year\": 2021, \"days\": [\"01.01\", \"01.02\", \"03.08\", \"04.15\", \"04.16\"]}\n    ],\n    \"forbidden_layers\": [\n        {\n            \"key\": \"pressure_new\",\n            \"type\": \"layers_type\",\n            \"value\": \"Давление\"\n        }\n    ],\n    \"action_templates\": [\n            {\n                \"name\": \"Шаблон1\", \n                \"is_unit_action\": false, относиться к объектам.\n                \"actions\": [\n                    {\"id\": \"e80c59b0-2c80-4bea-969c-498db4b0d446\"},\n                    {\"id\": \"62e20acf-cab3-4e8d-9e1f-e8774cf10764\"}\n                ]\n            },\n             {\n                \"name\": \"Шаблон2\",\n                \"is_unit_action\": true,\n                \"actions\": [\n                    {\"id\": \"7d0ca86a-66e2-473b-8f4c-a61cc3e40649\"},\n                    {\"id\": \"9259c55d-7e1c-45a2-ab3e-c98aef52a1f5\"}\n                ]\n            }\n        ]\n}\n\n</code></pre><p>Возвращает код 422 в случае если id не валидно, body :</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 4022,\n    \"field\": \"id\",\n    \"message\": \"Вы не имеете доступа к выбранной компании, попробуйте перезайти.\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","company",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID доступной пользователю компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"b55ceb6f-785f-4add-81c5-083dd369e014"},{"name":"/company/invite","id":"b31981b8-508d-4561-b7e1-af90dd740d21","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"mshevelevich@gmail2.com\",\n  \"role\": {\"id\": \"fffaa80b-28a5-466b-a0a2-29761bfc8c80\"}\n}"},"url":"{{base_url}}/api_v1/company/invite","description":"<p><strong>Приглашение пользователя в систему</strong></p>\n<hr />\n<p>Метод создает ссылку и отправляет ее на указанный email. По ссылке можно авторизоваться.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p>Параметры:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>email - email того, кого приглашаем\n{\n  \"email\": \"test@gmail.com\", \n  \"role\": {\"key\": \"Admin\", \"id\": \"fffaa80b-28a5-466b-a0a2-29761bfc8c80\"}, // Роль выбирается из списка ролей; достаточно указать только идентификатор. Получить все роли GET /roles,\n  \"companies\": [ //Можно указать ID конкретных компаний, это поле используется в админке\n        {\"id\": \"545c61a4-27ae-4335-a18e-e63e98b3eceb\"},\n        {\"id\": \"6b596675-81ba-4916-ac2d-32388da57e6d\"},\n        {\"id\": \"6c08dd40-950a-4d7e-86ee-aa8f12435ed7\"}\n   ]\n}\n\n</code></pre><hr />\n<p><strong>Параметры ответа:</strong></p>\n<p>Код 200. Даже если пользователь с указанным паролем не существует. Ответ всегда такого вида</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\"code\":200,\"message\":\"На указанный email была выслана ссылка для восстановления.\"}\n\n</code></pre>","urlObject":{"path":["api_v1","company","invite"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b31981b8-508d-4561-b7e1-af90dd740d21"},{"name":"/company/create","id":"b67f3c69-51c0-4ee9-b9f8-9fbeb6ed9b87","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"company_name\": \"A comapny Y\",\n\t\"timezone\": {\"key\": \"UTC+3\"},\n    \"imeis\": [\"121212\", \"131313\"]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/company/create","description":"<p><strong>Создание пользователем новой компании</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"company_name\": текст, название компании, обязательное\n\"timezone\": часовой пояс компании, обязательное\n\"dateformat\": формат даты компании. Не обязательное. Если не указано, то установится дефолтный формат \n\"timeformat\": формат время компании. Не обязательное. Если не указано. то установится дефолтный формат \nlogo - логотипе на экране мониторинга, на месте надписи Skif.Pro. Сначала нужно загрузить фото запросом: \n    `POST /api_v1/upload_photos/logos` , в form-data указать файл в поле file\n     logo для компании выбрать из поля small.url\n\n\n</code></pre><p>При создании вместе с первым пользователем требуются дополнительные поля:</p>\n<p>\"userProviderId\": \"<a href=\"https://mailto:test@mail.ru\">test@mail.ru</a>\", // email пользователя<br />\"type\": \"EMAIL\",<br />\"password\": \"11111\", // пароль<br />\"name\": \"Имя пользователя\",</p>\n<p>Если в запросе присутствует поле <code>userProviderId</code>, это означает, что компания создаётся вместе с пользователем.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"company_name\": \"A company X\",\n    \"timezone\": {\"key\": \"UTC+3\"},\n    \"imeis\": [\"3424324324\", \"657657657\"]\n}\n\n</code></pre><p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"8c78a9d2-0c10-48c2-9d25-746f243b39a8\",\n    \"name\": \"A company X\",\n    \"strong_password\": false,\n    \"efis_retranslate\": false,\n    \"integrator\": {\n        \"id\": \"fe371bd9-bba3-4c4a-b54b-b05fb77690c9\",\n        \"is_default\": false,\n        \"name\": \"Интегратор\",\n        \"inn\": \"\",\n        \"phone\": \"\",\n        \"email\": \"\",\n        \"contact_person\": \"\",\n        \"regions\": [\n            \"Казахстан\"\n        ],\n        \"_default\": false,\n        \"_delete\": false\n    },\n    \"timezone\": {\n        \"key\": \"UTC+3\",\n        \"type\": \"timezones\",\n        \"value\": \"(GMT + 03: 00) Moscow, St. Petersburg, Volgograd\"\n    },\n    \"dateformat\": {\n        \"key\": \"dd-MM-yyyy\",\n        \"type\": \"dateformats\",\n        \"value\": \"dd-MM-yyyy(25-01-2014, 02-12-1987)\"\n    },\n    \"timeformat\": {\n        \"key\": \"HH:mm:ss\",\n        \"type\": \"timeformats\",\n        \"value\": \"HH:mm:ss(09:45:33, 17:20:00)\"\n    },\n    \"holidays\": []\n}\n\n</code></pre>","urlObject":{"path":["api_v1","company","create"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b67f3c69-51c0-4ee9-b9f8-9fbeb6ed9b87"},{"name":"/company/sessions/query","id":"368b33a3-ef25-47e3-8537-0e9cf35215bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\":\"2024-01-01 00:00:00\",\n    \"to\":\"2024-01-12 00:00:00\",\n    \"first\": 0,\n    \"count\": 100\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/company/sessions/query","description":"<p><strong>Получение сессий пользователей компании</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p>Запрос данных ограничен периодом в один месяц.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\":\"2024-10-01 00:00:00\",\n    \"from\":\"2024-11-01 00:00:00\", // необязательный параметр\n    \"first\":0, // необязательный параметр\n    \"count\":100 // необязательный параметр\n}\n\n</code></pre>","urlObject":{"path":["api_v1","company","sessions","query"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"368b33a3-ef25-47e3-8537-0e9cf35215bd"},{"name":"/company/:id/sessions/query","id":"0562ec97-8db5-4b03-917f-4527104e7bba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\":\"2020-10-01 00:00:00\",\n    \"first\": 0,\n    \"count\": 100\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/company/:id/sessions/query","description":"<p><strong>Получение сессий пользователей компании из админ панели</strong></p>\n<hr />\n<p><strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p>Параметры запроса:</p>\n<p>id - ID компании</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\":\"2020-10-01 00:00:00\",\n    \"first\":0,\n    \"count\":100\n}\n\n</code></pre><p>Запрос данных ограничен периодом в один месяц</p>\n","urlObject":{"path":["api_v1","company",":id","sessions","query"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"0562ec97-8db5-4b03-917f-4527104e7bba"},{"name":"/company/updates/query","id":"c10ba642-0ad3-4299-8a6e-d6a52dd38925","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": \"2021-01-05 00:00:00\",\n    \"to\": \"2021-12-12 23:59:59\",\n    \"objects\": \"units\",\n    \"first_row\": 0,\n    \"max_rows\": 100,\n    \"sortField\": \"user.name\",\n    \"sortDesc\": true\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/company/updates/query","description":"<p><strong>Получение истории изменения сущностей</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p>Пример запроса для одной сущности:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": \"2020-11-01 00:00:00\",\n    \"to\": \"2020-10-01 00:00:00\",\n    \"object_id\": \"b56f98e9-7c8e-4cda-a642-6d4e207de5d4\",\n    \"first_row\": 0,\n    \"max_rows\": 100,\n    \"sortField\": \"created\",\n    \"sortDesc\": true\n}\n\n</code></pre><p>Пример запроса для всего справочника units:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": \"2020-11-01 00:00:00\",\n    \"to\": \"2020-10-01 00:00:00\",\n    \"objects\": \"units\",\n    \"first_row\": 0,\n    \"max_rows\": 100,\n    \"sortField\": \"created\",\n    \"sortDesc\": true,\n    \"value\": \"user1\"\n}\n\n</code></pre><p>Запрос данных ограничен периодом в один год</p>\n<p><strong>Возможные параметры:</strong></p>\n<p>max_rows - максимальное количестов строк.</p>\n<p>from - дата-время от какой выдавать данные, необязательный параметр. По умолчанию - текущее время минус 7 дней.</p>\n<p>to - дата-время до какой выдавать данные, необязательный параметр. По умолчанию - текущее время.</p>\n<p>first_row - первая строка, необязательный параметр. По умолчанию 0.</p>\n<p>max_rows - максимальное количество строк в выдаче, необязательный параметр. По умолчанию 10000.</p>\n<p>object_id - если нужно запросить изменение по конкретной сущности, используйте id нужной сущности, необязательный параметр.</p>\n<p>objects - по каким типам сущностей возвращать историю - users, units, company, unitsgroup, units_trailers, geozones, report_templates, notifications, routes, trips, trailers, mailings.</p>\n<p>sortField - имя поля для сортировки результатов, возможные значения: created, user.name, operation.</p>\n<p>sortDesc - true, если надо соортировать по убыванию.</p>\n<p>value - искомый текст.</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"list\": [{\n        \"created\": \"2020-11-11 15:55:33\",\n        \"user\": {\n            \"id\": \"5551b5bd-b4d7-4f99-a166-c9ecdabccee0\",\n            \"name\": \"user1\",\n            \"email\": \"user1@mail.ru\"\n        },\n        \"objects\": \"company\",\n        \"operation\": \"PUT\",\n        \"object_id\": \"11e541f5-3b57-4968-a428-eb13dde6ede0\",\n        \"msg\": \"Пользователь user1 обновил настройки компании\"\n    }],\n    \"max_rows\": 1\n}\n\n</code></pre><p>created - дата время</p>\n<p>objects - тип сущностей</p>\n<p>user - автор изменений</p>\n<p>operation - операция PUT, DELETE, POST - изменение, удаление, создание</p>\n<p>object_id - id объекта</p>\n<p>msg - текст</p>\n","urlObject":{"path":["api_v1","company","updates","query"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c10ba642-0ad3-4299-8a6e-d6a52dd38925"},{"name":"/company/:id/updates/query","id":"436cdbf0-0e3d-4e94-9dff-3ce7583770a2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": \"2021-01-05 00:00:00\",\n    \"to\": \"2021-12-12 23:59:59\",\n    \"objects\": \"units\",\n    \"first_row\": 0,\n    \"max_rows\": 100,\n    \"sortField\": \"user.name\",\n    \"sortDesc\": true\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/company/:id/updates/query","description":"<p><strong>Получение истории изменения сущностей из админ панели</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p>Пример запроса для одной сущности:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": \"2020-11-01 00:00:00\",\n    \"to\": \"2020-10-01 00:00:00\",\n    \"object_id\": \"b56f98e9-7c8e-4cda-a642-6d4e207de5d4\",\n    \"first_row\": 0,\n    \"max_rows\": 100,\n    \"sortField\": \"created\",\n    \"sortDesc\": true\n}\n\n</code></pre><p>Пример запроса для всего справочника units:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": \"2020-11-01 00:00:00\",\n    \"to\": \"2020-10-01 00:00:00\",\n    \"objects\": \"units\",\n    \"first_row\": 0,\n    \"max_rows\": 100,\n    \"sortField\": \"created\",\n    \"sortDesc\": true,\n    \"value\": \"user1\"\n}\n\n</code></pre><p>Запрос данных ограничен периодом в один год</p>\n<p><strong>Возможные параметры:</strong></p>\n<p>max_rows - максимальное количество строк.</p>\n<p>from - дата-время от какой выдавать данные, необязательный параметр. По умолчанию - текущее время минус 7 дней.</p>\n<p>to - дата-время до какой выдавать данные, необязательный параметр. По умолчанию - текущее время.</p>\n<p>first_row - первая строка, необязательный параметр. По умолчанию 0.</p>\n<p>max_rows - максимальное количество строк в выдаче, необязательный параметр. По умолчанию 10000.</p>\n<p>object_id - если нужно запросить изменение по конкретной сущности, используйте id нужной сущности, необязательный параметр.</p>\n<p>objects - по каким типам сущностей возвращать историю - users, units, company, unitsgroup, units_trailers, geozones, report_templates, notifications, routes, trips, trailers, mailings.</p>\n<p>sortField - имя поля для сортировки результатов, возможные значения: created, user.name, operation.</p>\n<p>sortDesc - true, если надо соортировать по убыванию.</p>\n<p>value - искомый текст.</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"list\": [{\n        \"created\": \"2020-11-11 15:55:33\",\n        \"user\": {\n            \"id\": \"5551b5bd-b4d7-4f99-a166-c9ecdabccee0\",\n            \"name\": \"user1\",\n            \"email\": \"user1@mail.ru\"\n        },\n        \"objects\": \"company\",\n        \"operation\": \"PUT\",\n        \"object_id\": \"11e541f5-3b57-4968-a428-eb13dde6ede0\",\n        \"msg\": \"Пользователь user1 обновил настройки компании\"\n    }],\n    \"max_rows\": 1\n}\n\n</code></pre><p>created - дата время</p>\n<p>objects - тип сущностей</p>\n<p>user - автор изменений</p>\n<p>operation - операция PUT, DELETE, POST - изменение, удаление, создание</p>\n<p>object_id - id объекта</p>\n<p>msg - текст</p>\n","urlObject":{"path":["company",":id","updates","query"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"436cdbf0-0e3d-4e94-9dff-3ce7583770a2"},{"name":"/company/schedule_delete","id":"ce64a80c-dd4b-4d90-83e6-e85117358065","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"{\n   \"ids\": [\n       \"04350fc5-8cec-4edc-bed1-7e1ee9a9e630\"\n   ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/company/schedule_delete","description":"<p><strong>Удаление компании</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>ids - ID удалаемых компаний.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"ids\": [\"acce8268-e0ef-4fda-a6ea-89ed23ffae50\"]\n}\n\n</code></pre><p>Пока можно удалить только одну компанию в одном запросе.</p>\n<hr />\n<p>Если все ok, тогда запланируетсяудаление. Его можно отменить с помощью роут POST /company/cancel_delete</p>\n","urlObject":{"path":["api_v1","company","schedule_delete"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"ce64a80c-dd4b-4d90-83e6-e85117358065"},{"name":"/company/cancel_delete","id":"402d8a8f-e880-4adb-b535-b94812daf625","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n   \"ids\": [\n       \"04350fc5-8cec-4edc-bed1-7e1ee9a9e630\"\n   ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/company/cancel_delete","description":"<p><strong>Отмена удаления компании</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>ids - ID удаляемых компаний.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"ids\": [\"acce8268-e0ef-4fda-a6ea-89ed23ffae50\"]\n}\n\n</code></pre><hr />\n<p>Если все ok, тогда удаление отменяется.</p>\n","urlObject":{"path":["api_v1","company","cancel_delete"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"402d8a8f-e880-4adb-b535-b94812daf625"},{"name":"/company/:id/roles","id":"73228b2a-2201-40fa-a912-24d691d9ee70","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/company/:id/roles","description":"<p><strong>Получение доступных ролей для компании</strong></p>\n<hr />\n<p>id - ID компании</p>\n<p>Возвращается массив ролей</p>\n<hr />\n<p><strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>GET <a href=\"https://dev5.skif.pro/api_v1/company/3e70f167-9fad-4753-bccf-d7d47c2c648c/roles\">https://dev5.skif.pro/api_v1/company/3e70f167-9fad-4753-bccf-d7d47c2c648c/roles</a></p>\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"key\": \"NO_ACCESS\",\n        \"value\": \"Без доступа\"\n    },\n    {\n        \"key\": \"OBSERVER\",\n        \"value\": \"Наблюдатель\"\n    },\n    {\n        \"key\": \"READER\",\n        \"value\": \"Читатель\"\n    },\n    {\n        \"key\": \"OPERATOR\",\n        \"value\": \"Оператор\"\n    },\n    {\n        \"key\": \"EDITOR\",\n        \"value\": \"Редактор\"\n    },\n    {\n        \"key\": \"ADMIN\",\n        \"value\": \"Администратор\"\n    },\n    {\n        \"key\": \"SUPERVISOR\",\n        \"value\": \"Супервизор\"\n    },\n    {\n        \"key\": \"TARIFF_EDITOR\",\n        \"value\": \"Редактор тарифа\"\n    },\n    {\n        \"key\": \"CONTROLLER\",\n        \"value\": \"Контроллер\"\n    }\n]\n\n</code></pre>\n","urlObject":{"path":["api_v1","company",":id","roles"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"73228b2a-2201-40fa-a912-24d691d9ee70"},{"name":"/company/:id/addable_users?search=:search","id":"16159da0-fcbf-40e9-9998-f74c972eacb8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/company/:id/addable_users?search=&offset=&count=","description":"<p><strong>Получение списка пользователей, доступных для добавления в компанию</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id - ID компании.</p>\n<p>search - текст для поиска.</p>\n<p>offset - индекс первого элемента в странице.</p>\n<p>count - количество в странице.</p>\n<p>Возвращается массив пользователей с полями id, name и email.</p>\n<hr />\n<p><strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>GET /api_v1/company/3e70f167-9fad-4753-bccf-d7d47c2c648c/addable_users?search=test1</p>\n<p><strong>Пример ответа:</strong></p>\n<p>max - общее количество</p>\n<p>list - список пользователей</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"max\": 4,\n    \"list\": [\n        {\n            \"id\": \"5e139290-cfbc-4770-b42a-fdf12d898684\",\n            \"name\": \"123123\",\n            \"email\": \"test16@test.kmm\"\n        },\n        {\n            \"id\": \"0010b3d2-dc83-4ea3-a3ab-2cf04a79ceeb\",\n            \"name\": \"test1@test.rm\",\n            \"email\": \"test1@test.rm\"\n        }\n    ]\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","company",":id","addable_users"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>текст для поиска</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>индекс первого элемента в странице</p>\n","type":"text/plain"},"key":"offset","value":""},{"description":{"content":"<p>количество в странице</p>\n","type":"text/plain"},"key":"count","value":""}],"variable":[{"description":{"content":"<p>ID компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"16159da0-fcbf-40e9-9998-f74c972eacb8"},{"name":"/company/:id/add_users","id":"31ad718e-7bd2-48f0-8900-2ce134955510","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"users\": [\n        {\n            \"id\": \"8d33f780-3923-463f-ab5c-500edca4219a\"\n        },\n        {\n            \"id\": \"edbb2a66-4847-4a80-a3c4-f76907ac31d5\"\n        }\n    ],\n    \"role\": {\n        \"key\": \"ADMIN\",\n        \"value\": \"Администратор\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/company/:id/add_users","description":"<p><strong>Добавление существующих доступных пользователей в компанию</strong></p>\n<hr />\n<p>id - ID компании</p>\n<hr />\n<p><strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST /api_v1/company/3e70f167-9fad-4753-bccf-d7d47c2c648c/add_users</p>\n<p><strong>Пример тела запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"users\": [\n        {\n            \"id\": \"8d33f780-3923-463f-ab5c-500edca4219a\"\n        },\n        {\n            \"id\": \"edbb2a66-4847-4a80-a3c4-f76907ac31d5\"\n        }\n    ],\n    \"role\": {\n        \"key\": \"ADMIN\",\n        \"value\": \"Администратор\"\n    }\n}\n\n</code></pre>\n<p>Возврвщается ответ со статусом 200 или ошибка</p>\n","urlObject":{"path":["api_v1","company",":id","add_users"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"31ad718e-7bd2-48f0-8900-2ce134955510"},{"name":"/company/:id/users?ids=","id":"3efcb31b-c26d-4589-8dc3-9fc50173452b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\n    \"users\": [\n        {\n            \"id\": \"8d33f780-3923-463f-ab5c-500edca4219a\"\n        },\n        {\n            \"id\": \"edbb2a66-4847-4a80-a3c4-f76907ac31d5\"\n        }\n    ],\n    \"role\": {\n        \"key\": \"ADMIN\",\n        \"value\": \"Администратор\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/company/:id/users?ids=","description":"<p><strong>Добавление существующих доступных пользователей в компанию</strong></p>\n<hr />\n<p>id - ID компании</p>\n<hr />\n<p><strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST /api_v1/company/3e70f167-9fad-4753-bccf-d7d47c2c648c/add_users</p>\n<p><strong>Пример тела запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"users\": [\n        {\n            \"id\": \"8d33f780-3923-463f-ab5c-500edca4219a\"\n        },\n        {\n            \"id\": \"edbb2a66-4847-4a80-a3c4-f76907ac31d5\"\n        }\n    ],\n    \"role\": {\n        \"key\": \"ADMIN\",\n        \"value\": \"Администратор\"\n    }\n}\n\n</code></pre>\n<p>Возврвщается ответ со статусом 200 или ошибка</p>\n","urlObject":{"path":["api_v1","company",":id","users"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>ID пользователя</p>\n","type":"text/plain"},"key":"ids","value":""}],"variable":[{"description":{"content":"<p>ID компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"3efcb31b-c26d-4589-8dc3-9fc50173452b"},{"name":"/company/:id/properties","id":"9919b7df-5755-42d7-a577-b4e3dc09c4fa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/company/:id/properties","description":"<p><strong>Получение настройки для компании</strong></p>\n<hr />\n<p>GET /api_v1/company/3e70f167-9fad-4753-bccf-d7d47c2c648c/properties</p>\n<hr />\n<p><strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p>Возвращается ответ со статусом 200</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>track_gradation - цветовая градация трека\nstyles - массив стилей\nmax - максимальное значение скоорости\nhex_color - шестнадцатеричный Код Цвета\nmonitoring_sensors_settings - настройка датчики для мониторинга\nname - название, строка\nsensor_name_mask - маска датчика, строка\nicon - ключ для иконки, строка\ngradation - цветовая градация, такая же структура как в track_gradation\n\n</code></pre><p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"track_gradation\": {\n        \"styles\": [\n            {\n                \"max\": 40,\n                \"hex_color\": \"#51AAEB\"\n            },\n            {\n                \"max\": 80,\n                \"hex_color\": \"#623F73\"\n            },\n            {\n                \"max\": 120,\n                \"hex_color\": \"#E37A3A\"\n            },\n            {\n                \"max\": null,\n                \"hex_color\": \"#DD1E1E\"\n            }\n        ]\n    },\n    \"monitoring_sensors_settings\": [\n        {\n            \"name\": \" Уровень топлива\",\n            \"sensor_name_mask\": \"*топлива*\",\n            \"icon\": \"icon_fuel_level\",\n            \"gradation\": {\n                \"styles\": [\n                    {\n                        \"max\": 42,\n                        \"hex_color\": \"#51AAEB\"\n                    },\n                    {\n                        \"max\": 80,\n                        \"hex_color\": \"#623F73\"\n                    },\n                    {\n                        \"max\": 120,\n                        \"hex_color\": \"#E37A3A\"\n                    },\n                    {\n                        \"max\": null,\n                        \"hex_color\": \"#DD1E1E\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"Зажигания\",\n            \"sensor_name_mask\": \"*зажиган*\",\n            \"icon\": \"icon_ignition\",\n            \"gradation\": {\n                \"styles\": [\n                    {\n                        \"max\": 0,\n                        \"hex_color\": \"#E37A3A\"\n                    },\n                    {\n                        \"max\": null,\n                        \"hex_color\": \"#DD1E1E\"\n                    }\n                ]\n            }\n        }\n    ]\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","company",":id","properties"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"9919b7df-5755-42d7-a577-b4e3dc09c4fa"},{"name":"/company/:id/properties","id":"70796955-5da2-486f-885c-923af560b9ea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"track_gradation\": {\n        \"styles\": [\n            {\n                \"max\": 41,\n                \"hex_color\": \"#51AAEB\"\n            },\n            {\n                \"max\": 80,\n                \"hex_color\": \"#623F73\"\n            },\n            {\n                \"max\": 120,\n                \"hex_color\": \"#E37A3A\"\n            },\n            {\n                \"max\": null,\n                \"hex_color\": \"#DD1E1E\"\n            }\n        ]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/company/:id/properties","description":"<p><strong>Обновление настроек компании</strong></p>\n<hr />\n<p>Параметр запроса:</p>\n<p>id - ID компании</p>\n<p>Тело запроса JSON:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>track_gradation - цветовая градация трека\nstyles - массив стилей\nmax - максимальное значение скоорости\nhex_color - шестнадцатеричный Код Цвета\nmonitoring_sensors_settings - настройка датчиков для мониторинга\nname - название, строка\nsensor_name_mask - маска датчика, строка\nicon - ключ для иконки, строка\ngradation - цветовая градация, такая же структура, как в track_gradation\n\n</code></pre><ol>\n<li><strong>Пример запроса на обновление цвета трека:</strong></li>\n</ol>\n<p>PUT /api_v1/company/3e70f167-9fad-4753-bccf-d7d47c2c648c/properties</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"track_gradation\": {\n        \"styles\": [\n            {\n                \"max\": 41,\n                \"hex_color\": \"#51AAEB\"\n            },\n            {\n                \"max\": 80,\n                \"hex_color\": \"#623F73\"\n            },\n            {\n                \"max\": 120,\n                \"hex_color\": \"#E37A3A\"\n            },\n            {\n                \"max\": null,\n                \"hex_color\": \"#DD1E1E\"\n            }\n        ]\n    }\n}\n\n</code></pre>\n<p>Возвращается ответ со статусом 200 или ошибка</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>track_gradation - Цветовая градация трека\n    styles - массив стилей\n        max - максимальное значение скорости\n        hex_color - Шестнадцатеричный Код Цвета\n\n</code></pre><hr />\n<p><strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p>Пример тела ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"track_gradation\": {\n        \"styles\": [\n            {\n                \"max\": 41,\n                \"hex_color\": \"#51AAEB\"\n            },\n            {\n                \"max\": 80,\n                \"hex_color\": \"#623F73\"\n            },\n            {\n                \"max\": 120,\n                \"hex_color\": \"#E37A3A\"\n            },\n            {\n                \"max\": null,\n                \"hex_color\": \"#DD1E1E\"\n            }\n        ]\n    }\n}\n\n</code></pre>\n<p><strong>2. Пример запроса на обновление настройки датчиков для мониторинга</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"monitoring_sensors_settings\": [\n        {\n            \"name\": \" Уровень топлива\",\n            \"sensor_name_mask\": \"*топлива*\",\n            \"icon\": \"icon_fuel_level\",\n            \"gradation\": {\n                \"styles\": [\n                    {\n                        \"max\": 42,\n                        \"hex_color\": \"#51AAEB\"\n                    },\n                    {\n                        \"max\": 80,\n                        \"hex_color\": \"#623F73\"\n                    },\n                    {\n                        \"max\": 120,\n                        \"hex_color\": \"#E37A3A\"\n                    },\n                    {\n                        \"max\": null,\n                        \"hex_color\": \"#DD1E1E\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"Зажигания\",\n            \"sensor_name_mask\": \"*зажиган*\",\n            \"icon\": \"icon_ignition\",\n            \"gradation\": {\n                \"styles\": [\n                    {\n                        \"max\": 0,\n                        \"hex_color\": \"#E37A3A\"\n                    },\n                    {\n                        \"max\": null,\n                        \"hex_color\": \"#DD1E1E\"\n                    }\n                ]\n            }\n        }\n    ]\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","company",":id","properties"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"70796955-5da2-486f-885c-923af560b9ea"},{"name":"/company/:id/properties/copy","id":"051d51cb-43f3-44b2-95bf-0821110278c8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"companies\": [\n        {\"id\": \"42ee050a-f6f7-40c0-a8d8-1656e787dc0b\"},\n        {\"id\": \"c968398b-be00-4b4a-9e2c-7d7bdc0d43ad\"}\n    ],\n    \"properties\": [\n        \"available_maps\",\n        \"monitoring_sensors_settings\",\n        \"track_gradation\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/company/:id/properties/copy","description":"<p><strong>Обновление настроек компании</strong></p>\n<hr />\n<p>Параметр запроса:</p>\n<p>id - ID компании, из которой необходимо скопировать свойства</p>\n<p>Тело запроса JSON:</p>\n<p><strong>companies</strong> - список компаний, на которые копируются свойств, см. пример<br /><strong>properties</strong> - список свойств, которые копируются<br />возможные значения:</p>\n<p>available_maps - Доступные карты<br />track_gradation - Цвет трека<br />monitoring_sensors_settings - Цветные индикаторы датчиков в мониторинге</p>\n<ol>\n<li><strong>Пример запроса на обновление цвета трека:</strong></li>\n</ol>\n<p>PUT /api_v1/company/3e70f167-9fad-4753-bccf-d7d47c2c648c/properties/copy</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"companies\": [\n        {\"id\": \"42ee050a-f6f7-40c0-a8d8-1656e787dc0b\"},\n        {\"id\": \"c968398b-be00-4b4a-9e2c-7d7bdc0d43ad\"}\n    ],\n    \"properties\": [\n        \"available_maps\",\n        \"monitoring_sensors_settings\",\n        \"track_gradation\"\n    ]\n}\n\n</code></pre>\n<p>Возвращается ответ со статусом 200 или ошибка</p>\n<p><strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n","urlObject":{"path":["api_v1","company",":id","properties","copy"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"051d51cb-43f3-44b2-95bf-0821110278c8"}],"id":"a85d372f-64df-47ef-85a1-438990cff301","description":"<p>Методы связанные с компанией</p>\n","_postman_id":"a85d372f-64df-47ef-85a1-438990cff301"},{"name":"Ресурсы компаний","item":[{"name":"/map_layers","id":"1f97cf2e-945a-4337-8293-3fe70a0ba32d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/map_layers","description":"<h3 id=\"получение-списка-всех-слоев-компании\">Получение списка всех слоев компании</h3>\n<p>Возвращает список всех слоев, для текущей активной компании</p>\n<p>Пример ответа</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"id\": \"uuid\",             // ID базового слоя\n    \"company_layer_id\": \"uuid\", // ID привязки к компании\n    \"name\": \"Название слоя\",\n    \"url\": \"https://...\",\n    \"type\": \"WMS\",\n    \"is_active\": true,        // Включен ли слой по умолчанию\n    \"sort_order\": 0           // Порядок в списке слоев\n  }\n]\n\n</code></pre>\n","urlObject":{"path":["api_v1","map_layers"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"1f97cf2e-945a-4337-8293-3fe70a0ba32d"},{"name":"/dealer/map_layers","id":"815442de-09b1-4001-b055-5455dcdecf9b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/dealer/map_layers","description":"<h3 id=\"получение-списка-всех-слоев-интегратора\">Получение списка всех слоев интегратора</h3>\n<p>Возвращает список слоев карт для интегратора, к которым у пользователя есть доступ.</p>\n<p>Ответ:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"id\": \"uuid-слоя\",\n    \"name\": \"Кадастр РФ\",\n    \"url\": \"https://...\",\n    \"type\": \"WMS\",\n    \"usage_count\": 2,\n    \"companies\": [\n      {\n        \"id\": \"uuid-компании-1\",\n        \"name\": \"1111\"\n      },\n      {\n        \"id\": \"uuid-компании-2\",\n        \"name\": \"2222'\"\n      }\n    ]\n  }\n]\n\n</code></pre>\n<p>Включает стандартные поля слоя + usage_count (сколько компаний используют слой)</p>\n","urlObject":{"path":["api_v1","dealer","map_layers"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"815442de-09b1-4001-b055-5455dcdecf9b"},{"name":"/dealer/:id/map_layers","id":"44f10574-071a-4bf9-aeb5-2d83f9c5e51b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<p>Получение слоев по переданному ID интегратора</p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"44f10574-071a-4bf9-aeb5-2d83f9c5e51b"},{"name":"/map_layers","id":"d274b410-0ca1-44ab-a1d3-6e3fea4e2d33","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"{{base_url}}/api_v1/map_layers","description":"<h3 id=\"создание-или-редактирование-слоя-в-библиотеке-дилера\">Создание или редактирование слоя в библиотеке дилера</h3>\n<p>Универсальный метод, который выполняет сразу три функции:</p>\n<ol>\n<li><p>Создание нового слоя (если не передан id).</p>\n</li>\n<li><p>Редактирование параметров существующего слоя (если передан id).</p>\n</li>\n<li><p>Управление видимостью слоя: массовая привязка к компаниям и отвязка от них.</p>\n</li>\n</ol>\n<h3 id=\"создание-слоя\">Создание слоя</h3>\n<p>При создании требуется, какому интегратору будет принадлежать слой.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"dealer_id\": \"3d1be96f-6e73-491c-8745-e89e8a46bf94\", \n  \"name\": \"WMS\",\n  \"url\": \"https://test.com/wms\",\n  \"type\": \"WMS\",\n  \"companyIdsToAdd\":[\n    \"c5ca5827-8b23-4f78-9234-276a7a56fe73\",\n    \"e62ae10f-b963-4ca1-87ad-519226231faa\"\n  ]\n}\n\n</code></pre>\n<ul>\n<li><p><strong>dealer_id (обязательно):</strong> UUID интегратора, в список которого добавляется слой.</p>\n</li>\n<li><p><strong>companyIdsToAdd (опционально):</strong> Массив UUID компаний, которым этот слой станет доступен сразу после<br />  создания (по умолчанию он добавится к ним в выключенном состоянии — is_active: false)</p>\n</li>\n</ul>\n<h3 id=\"редактирование-слоя\">Редактирование слоя</h3>\n<p>При редактировании принадлежность к интегратору изменить нельзя.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"15af5b55-f529-485a-9701-b7c9be48f102\",\n  \"name\": \"Новое название карты\",\n  \"url\": \"https://new-url.service.com/wms\",\n  \"companyIdsToAdd\":[\n    \"436aed8b-43c8-4a93-91be-a2cdf2d4d2c2\"\n  ],\n  \"companyIdsToRemove\":[\n    \"c5ca5827-8b23-4f78-9234-276a7a56fe73\"\n  ]\n}\n\n</code></pre>\n<ul>\n<li><p><strong>id (обязательно):</strong> UUID слоя, который нужно изменить. (Если передан, поле dealer_id игнорируется).</p>\n</li>\n<li><p><strong>companyIdsToRemove (опционально):</strong> Массив UUID компаний, у которых этот слой нужно забрать.</p>\n</li>\n</ul>\n","urlObject":{"path":["api_v1","map_layers"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d274b410-0ca1-44ab-a1d3-6e3fea4e2d33"},{"name":"map_layers/:id","id":"f8c5e175-2bee-459f-bd47-77539746459f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/map_layers/:id","description":"<p>Выполняет удаление слоя и все связи этого слоя с компаниями.</p>\n","urlObject":{"path":["api_v1","map_layers",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"id":"8acb02a6-0e1d-48c3-b17c-b2f5849e6436","type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"f8c5e175-2bee-459f-bd47-77539746459f"},{"name":"/company/:id/map_layers","id":"ae8ac4a2-64fa-4c97-85b0-28348871fa5e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/company/:id/map_layers","description":"<h3 id=\"получение-слоев-конкретной-компании\">Получение слоев конкретной компании</h3>\n<p>Возвращает список слоев, которые были привязаны к указанной компании, с учетом их статуса (активен/неактивен) и порядка сортировки.</p>\n<p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"id\": \"uuid\",             // ID основного слоя \n    \"company_layer_id\": \"uuid\", // ID связи \n    \"name\": \"Карта полей\",\n    \"url\": \"https://...\",\n    \"type\": \"WMS\",\n    \"is_active\": true,        // Включен ли слой у компании\n    \"sort_order\": 0           // Порядок отображения\n  }\n]\n\n</code></pre>\n<p>Сортировка: сначала активные (is_active), затем по sort_order.</p>\n","urlObject":{"path":["api_v1","company",":id","map_layers"],"host":["{{base_url}}"],"query":[],"variable":[{"id":"dde68382-2c8f-4c84-990b-00aab876da9d","type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"ae8ac4a2-64fa-4c97-85b0-28348871fa5e"},{"name":"/company/:id/map_layers","id":"467a3595-8945-4ff4-bebd-414a646d1509","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"{{base_url}}/api_v1/company/:id/map_layers","description":"<h3 id=\"обновление-настроек-слоев-компании\">Обновление настроек слоев компании</h3>\n<p>Позволяет изменить порядок отображения слоев и включить/выключить их для конкретной компании.</p>\n<p>Пример запроса:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"id\": \"uuid\",         // ID слоя\n    \"is_active\": true     // Статус активности\n  },\n  {\n    \"id\": \"uuid\",\n    \"is_active\": false\n  }\n]\n\n</code></pre>\n<p><strong>Важно:</strong> Порядок объектов в массиве определяет sort_order</p>\n","urlObject":{"path":["api_v1","company",":id","map_layers"],"host":["{{base_url}}"],"query":[],"variable":[{"id":"c44deffb-901f-43fd-bff8-2463ab490f27","type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"467a3595-8945-4ff4-bebd-414a646d1509"}],"id":"515319d8-06d3-4f92-8d2d-c7245a68ddc3","_postman_id":"515319d8-06d3-4f92-8d2d-c7245a68ddc3","description":""},{"name":"Геозоны","item":[{"name":"Пользовательский тип геозоны","item":[{"name":"geozones/custom_types","id":"8f144503-307e-4ee0-9df2-717df7c04f60","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"name\": \"test\",\n  \"photo\": {\n    \"small\":\n    {\n      \"url\": \"/photos/geozones/0559a281-5f03-4f36-8871-2a18daa16f56_300.jpeg\",\n      \"width\": 300,\n      \"height\": 200,\n      \"param_type\": \"geozones\"\n    },\n    \"original\": {\n      \"url\": \"/photos/geozones/0559a281-5f03-4f36-8871-2a18daa16f56_original.jpeg\",\n      \"width\": 5184,\n      \"height\": 3456,\n      \"param_type\": \"geozones\"\n    }\n  },\n  \"company_id\": \"11111111-1111-1111-1111-111111111111\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/geozones/custom_types","urlObject":{"path":["api_v1","geozones","custom_types"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8f144503-307e-4ee0-9df2-717df7c04f60"}],"id":"90baebb3-bf08-4e94-aec4-e9491db5654f","_postman_id":"90baebb3-bf08-4e94-aec4-e9491db5654f","description":""},{"name":"/geozones","id":"0fa1011a-e581-4ebc-aaa5-da69c4236a43","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"companies\": [\n        {\n            \"id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\"\n        },\n        {\n            \"id\": \"42ee050a-f6f7-40c0-a8d8-1656e787dc0b\"\n        }\n    ],\n    \"name\": \"POI_Z\",\n    \"type\": {\n        \"key\": \"circle\"\n    },\n    \"icon\": {\n        \"key\": \"hospital\"\n    },\n    \"geometry\": [\n        [\n            33.1,\n            55.2\n        ]\n    ],\n    \"color\": {\n        \"key\": \"#E68A2F\"\n    },\n    \"width\": 20777\n}"},"url":"{{base_url}}/api_v1/geozones","description":"<p><strong>Создание геозоны</strong></p>\n<hr />\n<p>Добавляет новую геозону, присваивая id.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"companies\": [{\"id\": \"e94111ca-b6a7-4b7e-a844-fcbc9043ac8f\"}] //список компаний\n  \"name\": \"POI\", //название\n  \"type\": {\"key\": \"point\"}, // тип геозоны, key = [point, circle, line, polygon] (можно добавлять \"type\":\"geozone_type\").\n  \"icon\": {\"key\": \"hospital\"}, // тип иконки, key = [hospital, school] (можно добавлять \"type\":\"geo_icon\").\n  \"geometry\": [ //геометрия - всегда массив координат\n    [\n      33.1,\n      55.2\n    ]\n  ],\n  \"is_show_on_map\": true,\n  \"color\": {\"key\": \"#E6EAEE\"}, //цвет, key = ['#F56C6C', '#E6EAEE', '#E68A2F', '#1585D8', '#1BB934'], (можно добавлять \"type\": \"color_code\").\n  \"width\": 1777, //ширина\n  \"area\": 2032932.5 // площадь в m2,\n  \"perimeter\": 2234.3 // периметр в m,\n  \"polygon_geometry\": [[55, 33], [56, 32]] //координаты после преобразование в полигон(только для линии)\n}\n\n</code></pre><p><strong>Ответ:</strong></p>\n<p>Возвращает созданную запись и ее id. Пустые поля не возвращаются.</p>\n","urlObject":{"path":["api_v1","geozones"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"0fa1011a-e581-4ebc-aaa5-da69c4236a43"},{"name":"/goezones?ids=<ids1,ids2>","id":"34f87c99-01cc-4ab4-9e00-08c2c0fb049d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/geozones?ids=","description":"<p><strong>Получение геозон</strong></p>\n<hr />\n<p>Возвращает массив всех геозон.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Если запрашивается по одному id - вернется не массив, а один объект.</p>\n<p>Если запрашивать по конкретному id - вернётся даже удаленная геозона.</p>\n<p>Если запрос без id (просто GET /geozones), то удаленные геозоны не отобразятся.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"{\n    \"id\":\"a321b5f0-f52c-4d36-9d39-f11ba64f9293\",\n    \"name\":\"POI\",\n    \"type\":{\"key\":\"point\",\"type\":\"geozone_type\",\"value\":\"Точка\"},\n    \"geometry\":[[33.1,55.2]],\n    \"color\":{\"key\":\"#E68A2F\",\"type\":\"color_code\",\"value\":\"Оранжевый\"},\n    \"width\":1777.0,\n    \"icon\":{\"key\":\"hospital\",\"type\":\"geo_icon\",\"value\":\"Больница\"},\n    \"is_show_on_map\": true,\n    \"area\": 2032932.5,\n    \"perimeter\": 2234.3\n}\"\n\n</code></pre>","urlObject":{"path":["api_v1","geozones"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"34f87c99-01cc-4ab4-9e00-08c2c0fb049d"},{"name":"/goezones_on_map","id":"226dc4dd-6c07-4b17-bee8-572eea0c7ecd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/geozones_on_map","description":"<p><strong>Получение геозон для отображения на карте в виде geojson</strong></p>\n<hr />\n<p>Возвращает массив всех геозон, которые нужно отображать на карте.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"type\":\"FeatureCollection\",\n  \"features\":[\n     {\n        \"type\":\"Feature\",\n        \"id\":\"a9e42e60-bdce-48ed-946c-55d141ce58b4\",\n        \"geometry\":{\n           \"type\":\"Point\",\n           \"coordinates\":[\n              55.0,\n              30.0\n           ]\n        },\n        \"properties\":{\n           \"address\":\"\",\n           \"name\":\"POI-1\"\n        }\n     },\n     {\n        \"type\":\"Feature\",\n        \"id\":\"83592eea-20ff-4db0-9ca7-1aa3450c6453\",\n        \"geometry\":{\n           \"type\":\"Point\",\n           \"coordinates\":[\n              55.0,\n              55.0\n           ]\n        },\n        \"properties\":{\n           \"address\":\"\",\n           \"name\":\"POI-2\"\n        }\n     },\n     {\n        \"type\":\"Feature\",\n        \"id\":\"3def4148-335f-42d1-aca4-d55366f93ee8\",\n        \"geometry\":{\n           \"type\":\"Point\",\n           \"coordinates\":[\n              55.0,\n              30.0\n           ]\n        },\n        \"properties\":{\n           \"address\":\"\",\n           \"name\":\"POI-3\"\n        }\n     },\n     {\n        \"type\":\"Feature\",\n        \"id\":\"4c061c44-2112-4494-a015-63d5bdb70194\",\n        \"geometry\":{\n           \"type\":\"Point\",\n           \"coordinates\":[\n              30.0,\n              30.0\n           ]\n        },\n        \"properties\":{\n           \"address\":\"\",\n           \"name\":\"POI-4\"\n        }\n     }\n  ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","geozones_on_map"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"226dc4dd-6c07-4b17-bee8-572eea0c7ecd"},{"name":"/geozones/:id","id":"d4f54449-6034-4ebc-92d8-e50b99f91d8b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/api_v1/geozones/:id","description":"<p><strong>Удаление геозоны по ее id</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id геозоны</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>200 и удаленная геозона</p>\n<p>Если геозона с таким id не найдена, то возвращается ошибка 400</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 4000,\n    \"field\": \"id\",\n    \"message\": \"Недопустимый параметр\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","geozones",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID геозоны</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"d4f54449-6034-4ebc-92d8-e50b99f91d8b"},{"name":"/geozones/:id/all","id":"59259921-007e-4753-98cc-b13361a66f2a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/api_v1/geozones/:id/all","description":"<p><strong>Удаление геозоны по ее id во всех компаниях в админке</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id геозоны</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>200 и удаленная геозона.</p>\n<p>Если геозона с таким id не найдена, то возвращается ошибка 400.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n\"code\": 4000,\n\"field\": \"id\",\n\"message\": \"Недопустимый параметр\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","geozones",":id","all"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID геозоны</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"59259921-007e-4753-98cc-b13361a66f2a"},{"name":"/geozones?ids=:ids","id":"66dfc056-cfa6-4816-b168-395b57d4a99d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/api_v1/geozones?ids=","description":"<p><strong>Планирование удаления геозоны</strong></p>\n<hr />\n<p>см. DELETE /units?ids=:ids</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","geozones"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"66dfc056-cfa6-4816-b168-395b57d4a99d"},{"name":"/geozones","id":"dd473eb3-b72a-4efa-ace9-10e196d67699","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/api_v1/geozones","description":"<p><strong>Планирование удаление геозоны</strong></p>\n<hr />\n<p>см. DELETE /units</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","geozones"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"dd473eb3-b72a-4efa-ace9-10e196d67699"},{"name":"/geozones/:id","id":"0d113e0d-ac67-413b-af2a-6c052cdd97bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"id\": \"31bb27f2-c937-4a91-8a95-e65515957411\",\n    \"name\": \"POI\",\n    \"type\": {\n        \"key\": \"point\",\n        \"type\": \"geozone_type\",\n        \"value\": \"Точка 2\"\n    },\n    \"geometry\": [\n        [\n            33.1,\n            55.2\n        ]\n    ],\n    \"color\": {\n        \"key\": \"#E68A2F\",\n        \"type\": \"color_code\",\n        \"value\": \"Оранжевый\"\n    },\n    \"width\": 1777,\n    \"icon\": {\n        \"key\": \"hospital\",\n        \"type\": \"geo_icon\",\n        \"value\": \"Больница\"\n    }\n}"},"url":"{{base_url}}/api_v1/geozones/:id","description":"<p><strong>Обновление данных геозоны</strong></p>\n<hr />\n<p>Обновляет переданные параметры</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>См метод POST /geozones</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Аналогичен одному объекту из ответа метода GET /geozeons</p>\n","urlObject":{"path":["api_v1","geozones",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID геозоны</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"0d113e0d-ac67-413b-af2a-6c052cdd97bd"},{"name":"/geozones/list","id":"d744c554-b769-4fd4-9014-7d2e78adfa0e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\t\t\t\t\t\"from\":0,\n                        \"count\":1,\n                        \"sortField\":\"name\",\n                        \"sortDesc\":\"false\",                        \n                        \"conditions\":[ \n                        \t{ \"field\": \"type.key\", \"value\": \"point\"}\n                        ]\n}"},"url":"{{base_url}}/api_v1/geozones/list","description":"<p><strong>Получение геозоны по фильтру</strong></p>\n<hr />\n<p>Аналогична запросу POST /users/list</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>from - с какого найденного элемента выдавать результат.</p>\n<p>count - максимальное число элементов.</p>\n<p>sortField - поле сортировки, значения<br />[name, created, is_delete, icon.key, color.key, type.key]</p>\n<p>sortDesc - сортировка по убыванию? значения \"true\", \"false\".</p>\n<p>conditions - условие отбора в виде массива [ {\"field\":\"значение\", \"value\":\"значение\"}, {... и т.д. ...} ].<br />значения для field - name (можно искать по неполному слову), icon.key, icon.type, color.key, color.type, type.key, type.type</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Получить первые 10 геозон, отсортированные по возрастанию по имени, которые имеют тип \"point\" и иконку \"school\"</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n                        \"from\":0,\n                        \"count\":10,\n                        \"sortField\":\"name\",\n                        \"sortDesc\":\"false\",                        \"conditions\":[ \n                            { \"field\": \"type.key\", \"value\": \"point\"},\n                            { \"field\": \"icon.key\", \"value\": \"school\"}\n                        ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\":1,\n    \"list\":\n    [\n        {\"id\":\"80773471-1eb8-4b71-ad44-fcfd6d8c721a\",\n         \"name\":\"aPOI-2\",\n         \"type\":{\"key\":\"point\",\n                 \"type\":\"geozone_type\",\n                 \"value\":\"Точка\"},\n         \"geometry\":[[55.3,33.2]],\n         \"color\":{\"key\":\"#E6EAEE\",\n                  \"type\":\"color_code\",\n                  \"value\":\"translate.color_code.key.grey\"},\n         \"width\":1900.0,\n         \"area\": 2032932.5,\n            \"perimeter\": 2234.3,\n         \"icon\":{\"key\":\"hospital\",\n                 \"type\":\"geo_icon\",\n                 \"value\":\"Больница\"}\n         },\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","geozones","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d744c554-b769-4fd4-9014-7d2e78adfa0e"},{"name":"/geozones/line2polygon","id":"cffc8b99-b3a2-49b9-b475-553ed609221d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"width\": 10,\n    \"geometry\": [\n        [\n            54.6977009532508,\n            37.35351562500001\n        ],\n        [\n            54.53663764197375,\n            37.40158081054688\n        ],\n        [\n            54.61405984802798,\n            37.69821166992188\n        ],\n        [\n            54.67780208930051,\n            37.54714965820313\n        ],\n        [\n            54.762105979366964,\n            37.62954711914063\n        ],\n        [\n            54.69372196444214,\n            37.69683837890626\n        ]\n    ]\n}"},"url":"{{base_url}}/api_v1/geozones/line2polygon","description":"<p><strong>Генерация координат для линии</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>width - ширина</p>\n<p>geometry - координаты линии</p>\n<p>В ответ возвращаются координаты полигона в поле polygon_geometry</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"width\": 10,\n    \"geometry\": [\n        [\n            54.6977009532508,\n            37.35351562500001\n        ],\n        [\n            54.53663764197375,\n            37.40158081054688\n        ],\n        [\n            54.61405984802798,\n            37.69821166992188\n        ],\n        [\n            54.67780208930051,\n            37.54714965820313\n        ],\n        [\n            54.762105979366964,\n            37.62954711914063\n        ],\n        [\n            54.69372196444214,\n            37.69683837890626\n        ]\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"polygon_geometry\": [\n        [\n            54.69771417625393,\n            37.35355993442366\n        ],\n        [\n            54.536726211105375,\n            37.401630671355655\n        ],\n        [\n            54.614075095960615,\n            37.698000235820835\n        ],\n        [\n            54.67778288639096,\n            37.54705432526793\n        ],\n        [\n            54.76218431453469,\n            37.62954698668847\n        ],\n        [\n            54.693760434922694,\n            37.69687747411603\n        ],\n        [\n            54.693683493961586,\n            37.696799283696485\n        ],\n        [\n            54.762027644199236,\n            37.6295472515928\n        ],\n        [\n            54.67782129221007,\n            37.547244991138335\n        ],\n        [\n            54.61404460009534,\n            37.69842310402293\n        ],\n        [\n            54.53654907284212,\n            37.40153094973811\n        ],\n        [\n            54.69768773024767,\n            37.35347131557636\n        ]\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","geozones","line2polygon"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"cffc8b99-b3a2-49b9-b475-553ed609221d"},{"name":"/geozones/export_kml","id":"6a103a07-ad95-4534-aee5-4fa1f1bb5ffc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"geozones\": [\n        {\"id\": \"0ca9f774-69fb-4a56-99ae-177f766fc291\"},\n        {\"id\": \"8b13e5d3-898a-4463-8f84-0046fc15f323\"},\n        {\"id\": \"d507e1ee-3e73-4ee6-a74a-3d1f6b8cbe89\"}\n    ]\n}"},"url":"{{base_url}}/api_v1/geozones/export_kml","description":"<h1 id=\"экспорт-геозон-в-kml\">Экспорт геозон в .kml</h1>\n<hr />\n<p>В теле запроса укажите требуемые геозоны в geozones. Если geozones не указаны, то запрос формируется для всех геозон компании. Для группы геозон geozones_groups</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Читател и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"geozones\": [\n        {\"id\": \"0ca9f774-69fb-4a56-99ae-177f766fc291\"},\n        {\"id\": \"8b13e5d3-898a-4463-8f84-0046fc15f323\"},\n        {\"id\": \"d507e1ee-3e73-4ee6-a74a-3d1f6b8cbe89\"}\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Для группы геозон:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"geozones_groups\": [\n        {\"id\": \"517fe368-e2fe-4a64-bd96-473f2a2d670f\"},\n        {\"id\": \"3789ac40-a076-48c1-85c2-a2d2515e6578\"}\n    ]\n}\n\n</code></pre><p><strong>Ответ:</strong></p>\n<p>В теле ответа возращается kml файл</p>\n","urlObject":{"path":["api_v1","geozones","export_kml"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"6a103a07-ad95-4534-aee5-4fa1f1bb5ffc"}],"id":"3a0d43af-cc8f-4f39-98e8-83b68f7dbfca","description":"<p>Работа с Гоезонами</p>\n","event":[{"listen":"prerequest","script":{"id":"bb530a53-b141-471c-9131-89dd2a1050c7","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"fc2eb399-7e4d-4b2e-b4dd-1ff2a2f4f9b3","type":"text/javascript","exec":[""]}}],"_postman_id":"3a0d43af-cc8f-4f39-98e8-83b68f7dbfca"},{"name":"Группы геозон","item":[{"name":"/geozonesgroup","id":"ce10fbf8-83c7-4e7a-a372-212de1adbb63","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"geozoneName\",\n    \"geozones\" : [\n        { \n            \"id\" : \"geozoneId1\"\n        },\n        {\n            \"id\" : \"geozoneId2\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/geozonesgroup","description":"<p><strong>Cоздание групп геозон</strong></p>\n<hr />\n<p>В body необходимо указать id геозоны, которая будет в группе и ее имя.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"name\": \"geozoneName\",\n    \"geozones\" : [\n        { \n            \"id\" : \"geozoneId1\"\n        },\n        {\n            \"id\" : \"geozoneId2\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","geozonesgroup"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"ce10fbf8-83c7-4e7a-a372-212de1adbb63"},{"name":"/geozonesgroup?ids=geozone_id","id":"8f333998-e52a-4339-b42b-eca7e07d708a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/geozonesgroup?ids=","description":"<p><strong>Получение группы геозон по id</strong></p>\n<hr />\n<p>Возвращает группу геозон</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n","urlObject":{"path":["api_v1","geozonesgroup"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"8f333998-e52a-4339-b42b-eca7e07d708a"},{"name":"/geozonesgroup/list","id":"b097a730-0468-4e90-8861-9e2a11293d4a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"fields\" : [\n        \"geozones.id\",\n        \"geozones.name\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/geozonesgroup/list","description":"<p><strong>Получение списка групп геозон</strong></p>\n<hr />\n<p>Поля:</p>\n<p>В fields указать нужные поля.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\"fields\":[\"geozones.id\", \"geozones.name\"]}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<p>geozones.id - Id группы.</p>\n<p>geozones.name - имя группы.</p>\n","urlObject":{"path":["api_v1","geozonesgroup","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b097a730-0468-4e90-8861-9e2a11293d4a"},{"name":"/geozonesgroup","id":"3ad49ee7-f35c-4f27-80dc-03c74775e4c4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"testGroupGezone\",\n    \"geozones\": [\n        {\n            \"id\": \"286e35d1-0d2e-481a-89b7-91755aabef54\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/geozonesgroup/geozonesgroup_id","description":"<p><strong>Обновление группы геозон</strong></p>\n<hr />\n<p>Запрос:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://dev5.skif.pro/api_v1/geozonesgroup/geozonesgroup_id\n\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"name\": \"testGroupGezone\",\n    \"geozones\": [\n        {\n            \"id\": \"286e35d1-0d2e-481a-89b7-91755aabef54\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","geozonesgroup","geozonesgroup_id"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3ad49ee7-f35c-4f27-80dc-03c74775e4c4"},{"name":"/geozonesgroup/:geozonegroup_id","id":"298aa66b-ab00-4cdd-91a0-90b2c7aacf6a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/geozonesgroup/:geozonesgroup_id","description":"<p><strong>Удаление группы геозон</strong></p>\n<hr />\n<p>Группа удаляется физически.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","geozonesgroup",":geozonesgroup_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"geozonesgroup_id"}]}},"response":[],"_postman_id":"298aa66b-ab00-4cdd-91a0-90b2c7aacf6a"},{"name":"/geozonesgroup?ids=geozonesgroup_id","id":"fb8feb54-ac60-4f34-b6a2-6fad8a57a225","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/geozonesgroup?ids=","description":"<p><strong>Планирование удаления группы геозон</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","geozonesgroup"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"fb8feb54-ac60-4f34-b6a2-6fad8a57a225"}],"id":"1a3263cd-2bea-4857-8c65-287e1ee40118","_postman_id":"1a3263cd-2bea-4857-8c65-287e1ee40118","description":""},{"name":"Маршруты","item":[{"name":"/routes","id":"a5e83fc8-4238-47e6-8bc5-e899a1e336d6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"name\": \"RouteName\",\n\t\"points\": [{\n\t\t\"name\": \"point1\",\n\t\t\"type\": {\n\t\t\t\"key\": \"polygon\"\n\t\t},\n\t\t\"width\": 20,\n\t\t\"coordinates\": [\n\t\t\t[37.608734, 55.793154],\n\t\t\t[37.541330, 55.772056],\n\t\t\t[37.598908, 55.808941]\n\t\t]\n\t}]\n}"},"url":"{{base_url}}/api_v1/routes","description":"<p><strong>Создание маршрута</strong></p>\n<hr />\n<p>Добавляет новый маршрут, присваивая id.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"name\": \"route1\", // название маршрута\n  \"points\":[\n      {\n          \"name\":\"point1\",// название точки\n          \"type\": {\"key\":\"polygon\"},  // тип точки, key = [point, circle, line, polygon] (можно добавлять \"type\":\"geozone_type\")\n          \"width\":20,//ширина\n          \"geometry\": [  //массив координат\n              [37.608734,55.793154],\n              [37.541330,55.772056],\n              [37.598908,55.808941]\n          ]\n      }\n  ]\n}\n\n</code></pre><p><strong>Ответ:</strong></p>\n<p>Возвращает созданную запись и ее id. Пустые поля не возвращаются.</p>\n","urlObject":{"path":["api_v1","routes"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"a5e83fc8-4238-47e6-8bc5-e899a1e336d6"},{"name":"/routes?ids=<ids1,ids2>","id":"ff411c9c-1cb2-473e-883f-c1207af916af","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/routes?ids=","description":"<p><strong>Получение маршрутов</strong></p>\n<hr />\n<p>Возвращает массив всех маршрутов.</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Если запрашивается по одному id - вернется не массив, а один объект.</p>\n<p>Если запрос без id (просто GET /routes), то вернутся все маршруты.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>/routes?ids=a321b5f0-f52c-4d36-9d39-f11ba64f9293\n\"{\n    \"id\":\"9817341d-474d-4468-9113-922637113f66\",\n    \"name\":\"route1\",\n    \"company_id\": \"ea0a3a44-ca90-4491-bb20-2c7f508da1c7\",\n    \"points\":[\n        {\n            \"name\": \"point1\",\n            \"type\" : {\n                \"key\": \"polygon\",\n                \"value\": \"Полигон\"\n            },\n            \"width\": 10,\n            \"geometry\": [\n               [37.541330, 55.772056],\n               [37.598908, 55.808941]\n            ]\n        },\n        {\n            \"name\": \"point2\",\n            \"type\" : {\n                \"key\": \"circle\",\n                \"value\": \"Круг\"\n            },\n            \"width\": 100,\n            \"geometry\": [\n               [37.541330, 55.772056]\n            ]\n        }\n    ]\n}\"\n\n</code></pre>","urlObject":{"path":["api_v1","routes"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"ff411c9c-1cb2-473e-883f-c1207af916af"},{"name":"/routes/:id","id":"d529b6d7-94d4-4d9c-a0a9-3396eb90969a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/api_v1/routes/:id","description":"<p><strong>Удаление маршрута по его id</strong></p>\n<hr />\n<p>Удаляет маршрут</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id маршрута</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>200 Удаленный маршрут</p>\n<p>Если маршрут с таким id не найден, то возвращается ошибка 422</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"code\": 422,\n  \"field\": \"id\",\n  \"message\": \"Параметр не найден в базе\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","routes",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID маршрута</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"d529b6d7-94d4-4d9c-a0a9-3396eb90969a"},{"name":"/routes?ids=:ids","id":"b636d113-2754-4ca1-bb71-abea7bcbce98","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/api_v1/routes?ids=","description":"<p><strong>Планирование удаление маршрута</strong></p>\n<hr />\n<p>см. DELETE /units?ids=:ids</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","routes"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"b636d113-2754-4ca1-bb71-abea7bcbce98"},{"name":"/routes","id":"af508fef-3af2-4e77-855b-aefa4739fccd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/api_v1/routes","description":"<p><strong>Планирование удаления маршрута</strong></p>\n<hr />\n<p>см. DELETE /units</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","routes"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"af508fef-3af2-4e77-855b-aefa4739fccd"},{"name":"/routes/:id","id":"f3c88508-82ba-485d-b805-c10828fdbd19","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"id\": \"0d2c5867-301f-468a-aa15-1095f95cc697\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"name\": \"RouteName\",\n    \"points\": [\n        {\n            \"name\": \"point1\",\n            \"type\": {\n                \"key\": \"polygon\",\n                \"type\": null,\n                \"value\": null\n            },\n            \"width\": 20.0,\n            \"coordinates\": [\n                [\n                    37.608734,\n                    55.793154\n                ],\n                [\n                    37.54133,\n                    55.772056\n                ],\n                [\n                    37.598908,\n                    55.808941\n                ]\n            ]\n        }\n    ]\n}"},"url":"{{base_url}}/api_v1/routes/:id","description":"<p><strong>Обновление данных маршрута</strong></p>\n<hr />\n<p>Обновляет переданные параметры</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>см метод POST /routes</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Аналогичен одному объекту из ответа метода GET /routes</p>\n","urlObject":{"path":["api_v1","routes",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID маршрута</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"f3c88508-82ba-485d-b805-c10828fdbd19"},{"name":"/routes/list","id":"76ab3e84-931b-434b-997e-38ae53d03d3f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\t\t\t\t\t\"from\":0,\n                        \"count\":1,\n                        \"sortField\":\"name\",\n                        \"sortDesc\":\"false\",                        \n                        \"conditions\":[ \n                        \t{ \"field\": \"name\", \"value\": \"RouteName\"}\n                        ]\n}"},"url":"{{base_url}}/api_v1/routes/list","description":"<p><strong>Получение маршрутов по фильтру</strong></p>\n<hr />\n<p>Аналогично запросу POST /users/list</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>from - с какого найденного элемента выдавать результат.</p>\n<p>count - максимальное число элементов.</p>\n<p>sortField - поле сортировки, значения<br />[name, created, is_delete, icon.key, color.key, type.key]</p>\n<p>sortDesc - сортировка по убыванию? значения \"true\", \"false\".</p>\n<p>conditions - условие отбора в виде массива [ {\"field\":\"значение\", \"value\":\"значение\"}, {... и т.д. ...} ].<br />значения для field - name(можно искать по неполному слову), icon.key, icon.type, color.key, color.type, type.key, type.type</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Получить первые 10 маршрутов, отсортированные по возрастанию, по имени, которые имеют имя \"route2\"</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n                        \"from\":0,\n                        \"count\":10,\n                        \"sortField\":\"name\",\n                        \"sortDesc\":\"false\",                        \"conditions\":[ \n                            { \"field\": \"name\", \"value\": \"route2\"}\n                        ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\":1,\n    \"list\":\n    [\n        {\"id\":\"80773471-1eb8-4b71-ad44-fcfd6d8c721a\",\n         \"name\":\"route2\",\n         \"points\":[\n            {                                        \"name\":\"point1\",\n                \"type\": {\"key\":\"polygon\", \"value\":\"Полигон\"}\",\n                \"width\":20,\n                \"geometry\": [[37.608734,55.793154],[37.541330,55.772056],[37.598908,55.808941]]\n            }\n         ]\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","routes","list"],"host":["{{base_url}}"],"query":[{"disabled":true,"key":"Cookie","value":"supportOnlineTalkID=pNsLIBxAUhElFv6zdsJ1FAqG1IVcDhXT; PLAY_SESSION={{vault:json-web-token}}"}],"variable":[]}},"response":[],"_postman_id":"76ab3e84-931b-434b-997e-38ae53d03d3f"}],"id":"949c9c98-3c41-49db-9668-cc62737070f6","description":"<p>Работа с Маршрутами</p>\n","event":[{"listen":"prerequest","script":{"id":"cc3e12ae-bb05-41b8-8b85-be09e9eafe9f","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"e272ac3b-6a8b-433a-a72a-780d3cd9fdbc","type":"text/javascript","exec":[""]}}],"_postman_id":"949c9c98-3c41-49db-9668-cc62737070f6"},{"name":"Рейсы","item":[{"name":"/trips","id":"423f18db-af2b-4979-8488-dfbcb6143d4b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Authorization","value":"6e8f4833-c430-4509-ac5e-e1802691655c","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"name\": \"A trip with 3 points\",\n\t\"unit\": { \n\t\t\"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n\t},\n\t\"trailer\": {\n\t\t\"id\": \"4e00d717-fa03-4209-8771-a6ff71a4f65d\"\n\t},\n\t\"user_id\": \"e8c262f8-942b-4c61-bb25-825d886e627a\",\n\t\"activation_type\": { \n\t\t\"key\": \"leaving_first_point\"\n\t},\n\t\"passage_order_type\": {\n\t\t\"key\": \"strict\" \n\t},\n    \"dates\": [\"2020-09-12\", \"2020-09-13 00:00\", \"2020-10-15 00:00:00\"], \n    \"work_types\": [\"work1\", \"work2\"], \n\t\"points\": [{ \n\t\t\"name\": \"point11\",\n\t\t\"type\": { \n\t\t\t\"key\": \"polygon\",\n            \"type\": \"geozone_type\",\n            \"value\": \"Полигон\"\n\t\t},\n\t\t\"departure\": {\n\t\t\t\"time\": \"08:00\",\n\t\t\t\"after_days\": 0,\n\t\t\t\"deviation_minutes\": 10\n\t\t},\n\t\t\"coordinates\":[                                \n            [37.442505, 55.750298], \n            [37.421736, 55.750956],\n            [37.422764, 55.750934]\n        ]\n\t}, {\n\t\t\"name\": \"point22\", \n\t\t\"type\": { \n\t\t\t\"key\": \"circle\"\n\t\t},\n\t\t\"arrival\": { \n\t\t\t\"time\": \"07:00\",\n\t\t\t\"after_days\": 1,\n\t\t\t\"deviation_minutes\": 10\n\t\t},\n\t\t\"departure\": { \n\t\t\t\"time\": \"06:00\",\n\t\t\t\"after_days\": 2,\n            \"deviation_minutes\": 15\n\t\t},\n\t\t\"coordinates\": [ \n\t\t\t[37.492764, 55.770934]\n\t\t]\n\t}, {\n\t\t\"name\": \"point33\",\n\t\t\"type\": {\n\t\t\t\"key\": \"polygon\"\n\t\t},\n\t\t\"arrival\": {\n\t\t\t\"time\": \"22:00\",\n\t\t\t\"after_days\": 2,\n\t\t\t\"deviation_minutes\": 10\n\t\t},\n        \"coordinates\":[\n            [37.442505, 55.750298], \n            [37.421736, 55.750956],\n            [37.422764, 55.750934]\n        ]\n\t}]\n}"},"url":"{{base_url}}/api_v1/trips","description":"<p><strong>Создание рейса</strong></p>\n<hr />\n<p>Добавляет новый рейс, присваивая id.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"name\": \"A trip with 3 points\", //название, обязательное\n    \"unit\": { // объект, обязательное\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"trailer\": {// прицеп, необязательное\n        \"id\": \"4e00d717-fa03-4209-8771-a6ff71a4f65d\"\n    },\n    \"user_id\": \"e8c262f8-942b-4c61-bb25-825d886e627a\",// ID водителя, необязательное\n    \"activation_type\": { // Тип активации, получают из справочника type=trip_activation_type\n        \"key\": \"leaving_first_point\" // возможные ключи и значения: [{'time_of_first_point', 'По премени первой точки'},{'entrance_to_first_point', 'По входу в первую точку'},{'leaving_first_point', 'По выходу из первой точки'}]\n    },\n    \"passage_order_type\": {// Поядок прохождения получают из справочника type = trip_passage_order_type, обязательное\n        \"key\": \"strict\" // availeble keys and values[{'strict', Строгий},{'arbitrary', 'Произволный'}]\n    },\n    \"dates\": [\"2020-09-12\", \"2020-09-13 00:00\", \"2020-10-15 00:00:00\"], //Даты поездки, required,HH:mm::ss всегда должны быть указаны нули\n    \"work_types\": [\"work1\", \"work2\"], // типы работы, необязательное. Можно получить ранее добавленные значения по GET /work_types и можно добавить новые. Если добавить новые, их можно использовать при следующем добавление рейса\n    \"points\": [{ // массив точек, обязательное, описание во 2-точке\n        \"name\": \"point11\",\n        \"type\": { \n            \"key\": \"polygon\",\n            \"type\": \"geozone_type\",\n            \"value\": \"Полигон\"\n        },\n        \"departure\": {\n            \"time\": \"08:00\",\n            \"after_days\": 0,\n            \"deviation_minutes\": 10\n        },\n        \"geometry\":[                                \n            [37.442505, 55.750298], \n            [37.421736, 55.750956],\n            [37.422764, 55.750934]\n        ]\n    }, {\n        \"name\": \"point22\", // название точки, string, обязательное\n        \"type\": { // тип геозоны, object, обязательное\n            \"key\": \"circle\", // один из ['point', 'circle', 'line', 'polygon']\n            \"type\": \"geozone_type\", // всегда geozone_type\n            \"value\": \"Круг\"\n        },\n        \"arrival\": { // прибытие, object, необязательное\n            \"time\": \"07:00\", // время прибытия, string\n            \"after_days\": 0, // через сколько дней c начала поездки, int\n            \"deviation_minutes\": 10 // отклонение времени прибытия в минутах\n        },\n        \"departure\": { // отправления, object, необязательное\n            \"time\": \"06:00\",// время отправления, string\n            \"after_days\": 1, //через сколько дней c начала поездки, int\n            \"deviation_minutes\": 15 // отклонение времени отправления в минутах\n        },\n        \"geometry\": [ // координаты точки, обязательное\n            [37.492764, 55.770934]\n        ]\n    }, {\n        \"name\": \"point33\",\n        \"type\": {\n            \"key\": \"polygon\"\n        },\n        \"arrival\": {\n            \"time\": \"22:00\",\n            \"after_days\": 2,\n            \"deviation_minutes\": 10\n        },\n        \"geometry\":[\n            [37.442505, 55.750298], \n            [37.421736, 55.750956],\n            [37.422764, 55.750934]\n        ]\n    }]\n}\n\n</code></pre><p><strong>Ответ:</strong></p>\n<p>Возвращает созданную запись и ее id. Пустые поля не возвращаются.</p>\n","urlObject":{"path":["api_v1","trips"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"423f18db-af2b-4979-8488-dfbcb6143d4b"},{"name":"/trips?ids=<ids1,ids2>","id":"ee69573d-2b61-4785-8972-5e3809c3f538","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/trips?ids=","description":"<p><strong>Получить рейсы</strong></p>\n<hr />\n<p>Возвращает массив всех рейсов.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Если запрашивается по одному id - вернется не массив, а один объект.</p>\n<p>Если запрос без id (просто GET /trips), то вернутся все маршруты.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>/trips?ids=41513f12-1773-43ed-92c5-197dac6b08a2\n{\n    \"id\": \"41513f12-1773-43ed-92c5-197dac6b08a2\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"name\": \"A trip with 3 points\",\n    \"unit\": {\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"user_id\": \"e8c262f8-942b-4c61-bb25-825d886e627a\",\n    \"dates\": [\n        \"2020-09-12 00:00:00\",\n        \"2020-09-13 00:00:00\",\n        \"2020-10-15 00:00:00\"\n    ],\n    \"activation_type\": {\n        \"key\": \"leaving_first_point\",\n        \"type\": \"trip_activation_type\",\n        \"value\": \"По выходу из первой точки\"\n    },\n    \"passage_order_type\": {\n        \"key\": \"strict\",\n        \"type\": \"trip_passage_order_type\",\n        \"value\": \"Строгий\"\n    },\n    \"work_types\": [\n        \"work1\",\n        \"work2\"\n    ],\n    \"points\": [\n        {\n            \"name\": \"point11\",\n            \"type\": {\n                \"key\": \"polygon\",\n                \"type\": \"geozone_type\",\n                \"value\": \"Полигон\"\n            },\n            \"geometry\": [\n                [\n                    37.442505,\n                    55.750298\n                ],\n                [\n                    37.421736,\n                    55.750956\n                ],\n                [\n                    37.422764,\n                    55.750934\n                ]\n            ],\n            \"departure\": {\n                \"time\": \"08:00\",\n                \"after_days\": 0,\n                \"deviation_minutes\": 10\n            }\n        },\n        {\n            \"name\": \"point22\",\n            \"type\": {\n                \"key\": \"circle\",\n                \"type\": \"geozone_type\",\n                \"value\": \"Круг\"\n            },\n            \"geometry\": [\n                [\n                    37.492764,\n                    55.770934\n                ]\n            ],\n            \"arrival\": {\n                \"time\": \"07:00\",\n                \"after_days\": 1,\n                \"deviation_minutes\": 10\n            },\n            \"departure\": {\n                \"time\": \"06:00\",\n                \"after_days\": 2,\n                \"deviation_minutes\": 15\n            }\n        },\n        {\n            \"name\": \"point33\",\n            \"type\": {\n                \"key\": \"polygon\",\n                \"type\": \"geozone_type\",\n                \"value\": \"Полигон\"\n            },\n            \"geometry\": [\n                [\n                    37.442505,\n                    55.750298\n                ],\n                [\n                    37.421736,\n                    55.750956\n                ],\n                [\n                    37.422764,\n                    55.750934\n                ]\n            ],\n            \"arrival\": {\n                \"time\": \"22:00\",\n                \"after_days\": 2,\n                \"deviation_minutes\": 10\n            }\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","trips"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"ee69573d-2b61-4785-8972-5e3809c3f538"},{"name":"/trips/:id","id":"c3deb6f4-18da-44f9-91a1-e270898d1e32","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/api_v1/trips/:id","description":"<p><strong>Удаление рейса по его ID</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id рейса</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>200 Удаленный рейс</p>\n<p>Если рейс с таким id не найден возвращается ошибка 422</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 422,\n    \"field\": \"id\",\n    \"message\": \"Параметр не найден в базе\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","trips",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID рейса</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"c3deb6f4-18da-44f9-91a1-e270898d1e32"},{"name":"/trips?ids=:ids","id":"09d2e789-7e46-43c9-ae8f-21e9765e87a2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/api_v1/trips?ids=","description":"<p><strong>Планирование удаления рейсов</strong></p>\n<hr />\n<p>см. DELETE /units?ids=:ids</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","trips"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"09d2e789-7e46-43c9-ae8f-21e9765e87a2"},{"name":"/trips","id":"abd8f4f8-9242-4f35-8e81-7faa2d58c941","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/api_v1/trips","description":"<p><strong>Планирование удаления рейсов</strong></p>\n<hr />\n<p>см. DELETE /units</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","trips"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"abd8f4f8-9242-4f35-8e81-7faa2d58c941"},{"name":"/trips/:id","id":"329f3bba-0cc7-460c-b99e-f1ebb9175fad","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"id\": \"db91e93d-202d-4cca-9bc9-883e237ff532\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"name\": \"New new for trip\",\n    \"unit\": {\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"user_id\": \"e8c262f8-942b-4c61-bb25-825d886e627a\",\n    \"dates\": [\n        \"2020-09-12 00:00:00\",\n        \"2020-09-13 00:00:00\",\n        \"2020-10-15 00:00:00\"\n    ],\n    \"activation_type\": {\n        \"key\": \"leaving_first_point\",\n        \"type\": \"trip_activation_type\",\n        \"value\": \"По выходу из первой точки\"\n    },\n    \"passage_order_type\": {\n        \"key\": \"strict\",\n        \"type\": \"trip_passage_order_type\",\n        \"value\": \"Строгий\"\n    },\n    \"work_types\": [\n        \"work1\",\n        \"work2\"\n    ],\n    \"points\": [\n        {\n            \"name\": \"point11\",\n            \"type\": {\n                \"key\": \"polygon\",\n                \"type\": \"geozone_type\",\n                \"value\": \"Полигон\"\n            },\n            \"coordinates\": [\n                [\n                    37.442505,\n                    55.750298\n                ],\n                [\n                    37.421736,\n                    55.750956\n                ],\n                [\n                    37.422764,\n                    55.750934\n                ]\n            ],\n            \"departure\": {\n                \"time\": \"08:00\",\n                \"after_days\": 0,\n                \"deviation_minutes\": 10\n            }\n        },\n        {\n            \"name\": \"point22\",\n            \"type\": {\n                \"key\": \"circle\",\n                \"type\": null,\n                \"value\": null\n            },\n            \"coordinates\": [\n                [\n                    37.492764,\n                    55.770934\n                ]\n            ],\n            \"arrival\": {\n                \"time\": \"07:00\",\n                \"after_days\": 1,\n                \"deviation_minutes\": 10\n            },\n            \"departure\": {\n                \"time\": \"06:00\",\n                \"after_days\": 2,\n                \"deviation_minutes\": 15\n            }\n        },\n        {\n            \"name\": \"point33\",\n            \"type\": {\n                \"key\": \"polygon\",\n                \"type\": null,\n                \"value\": null\n            },\n            \"coordinates\": [\n                [\n                    37.442505,\n                    55.750298\n                ],\n                [\n                    37.421736,\n                    55.750956\n                ],\n                [\n                    37.422764,\n                    55.750934\n                ]\n            ],\n            \"arrival\": {\n                \"time\": \"22:00\",\n                \"after_days\": 2,\n                \"deviation_minutes\": 10\n            }\n        }\n    ]\n}"},"url":"{{base_url}}/api_v1/trips/:id","description":"<p><strong>Обновление данных рейса</strong></p>\n<hr />\n<p>Обновляет переданные параметры</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>см метод POST /trips</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Аналогичен одному объекту из ответа метода GET /trips</p>\n","urlObject":{"path":["api_v1","trips",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID рейса</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"329f3bba-0cc7-460c-b99e-f1ebb9175fad"},{"name":"/trips/list","id":"2d19e13c-4ee1-40c1-aaf8-f5540f299eb1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"sortField\": \"name\", \n    \"conditions\": [\n        {\"field\": \"activation_type.key\", \"value\": \"leaving_first_point\"}, \n        {\"field\": \"passage_order_type.key\", \"value\": \"strict\"}\n    ]\n}\n"},"url":"{{base_url}}/api_v1/trips/list","description":"<p><strong>Получение рейсов по фильтру</strong></p>\n<hr />\n<p>Аналогично запросу POST /users/list</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>from - с какого найденного элемента выдавать результат.</p>\n<p>count - максимальное число элементов.</p>\n<p>sortField - поле сортировки, значения<br />[name, created, is_delete]</p>\n<p>sortDesc - сортировка по убыванию? значения \"true\", \"false\".</p>\n<p>conditions - условие отбора в виде массива [ {\"field\":\"значение\", \"value\":\"значение\"}, {... и т.д. ...} ].<br />значения для field - name (можно искать по неполному слову), unit.id, user_id, activation_type.key, passage_order_type.key</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Получить первые 10 рейсов, отсортированные по возрастанию по имени, которые имеют ID объекта 7e1aaba2-625a-4a4c-b765-9934bec5a096</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n                        \"from\":0,\n                        \"count\":10,\n                        \"sortField\":\"name\",\n                        \"sortDesc\":\"false\",                        \"conditions\":[ \n                            { \"field\": \"unit.id\", \"value\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"}\n                        ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 1,\n    \"list\": [\n        {\n            \"id\": \"41513f12-1773-43ed-92c5-197dac6b08a2\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"name\": \"A trip with 3 points\",\n            \"unit\": {\n                \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n            },\n            \"user_id\": \"e8c262f8-942b-4c61-bb25-825d886e627a\",\n            \"dates\": [],\n            \"activation_type\": {\n                \"key\": \"leaving_first_point\",\n                \"type\": null,\n                \"value\": null\n            },\n            \"passage_order_type\": {\n                \"key\": \"strict\",\n                \"type\": null,\n                \"value\": null\n            },\n            \"work_types\": [\n                \"work1\",\n                \"work2\"\n            ],\n            \"points\": [\n                {\n                    \"name\": \"point11\",\n                    \"type\": {\n                        \"key\": \"polygon\",\n                        \"type\": \"geozone_type\",\n                        \"value\": \"Полигон\"\n                    },\n                    \"geometry\": [\n                        [\n                            37.442505,\n                            55.750298\n                        ],\n                        [\n                            37.421736,\n                            55.750956\n                        ],\n                        [\n                            37.422764,\n                            55.750934\n                        ]\n                    ],\n                    \"departure\": {\n                        \"time\": \"08:00\",\n                        \"after_days\": 0,\n                        \"deviation_minutes\": 10\n                    }\n                },\n                {\n                    \"name\": \"point22\",\n                    \"type\": {\n                        \"key\": \"circle\",\n                        \"type\": \"geozone_type\",\n                        \"value\": \"Круг\"\n                    },\n                    \"geometry\": [\n                        [\n                            37.492764,\n                            55.770934\n                        ]\n                    ],\n                    \"arrival\": {\n                        \"time\": \"07:00\",\n                        \"after_days\": 1,\n                        \"deviation_minutes\": 10\n                    },\n                    \"departure\": {\n                        \"time\": \"06:00\",\n                        \"after_days\": 2,\n                        \"deviation_minutes\": 15\n                    }\n                },\n                {\n                    \"name\": \"point33\",\n                    \"type\": {\n                        \"key\": \"polygon\",\n                        \"type\": \"geozone_type\",\n                        \"value\": \"Полигон\"\n                    },\n                    \"geometry\": [\n                        [\n                            37.442505,\n                            55.750298\n                        ],\n                        [\n                            37.421736,\n                            55.750956\n                        ],\n                        [\n                            37.422764,\n                            55.750934\n                        ]\n                    ],\n                    \"arrival\": {\n                        \"time\": \"22:00\",\n                        \"after_days\": 2,\n                        \"deviation_minutes\": 10\n                    }\n                }\n            ]\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","trips","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"2d19e13c-4ee1-40c1-aaf8-f5540f299eb1"}],"id":"608f1810-3576-40a2-acf1-45975e2cc090","description":"<p>Работа с Рейсами</p>\n","event":[{"listen":"prerequest","script":{"id":"4e92f3f8-a547-4818-a04d-31e11fa6c27e","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"d660471d-6c78-401d-a3bb-68b93ba6ce2f","type":"text/javascript","exec":[""]}}],"_postman_id":"608f1810-3576-40a2-acf1-45975e2cc090"},{"name":"Объекты","item":[{"name":"/units","id":"8d9df07b-752a-4b59-ac91-219b25539c4e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Hitachi XXXX\",\n    \"type\": {\n        \"key\": \"special_equipment\",\n        \"type\": \"unit_type\",\n        \"value\": \"Спецтехника\"\n    },\n    \"terminal_type\": {\n        \"key\": \"navtelecom\",\n        \"type\": \"terminal_type\",\n        \"value\": \"Navtelecom\"\n    },\n    \"imei\": \"12345\",\n    \"phonenumber\": \"+71232131231\",\n    \"phonenumber2\": \"+21312123231\",\n    \"icon\": {\n        \"key\": \"excavator_green\",\n        \"type\": \"unit_icon\",\n        \"value\": \"Иконка\"\n    },\n    \"services\": [],\n    \"sensors\": [\n        {\n            \"name\": \"ДУТ-1\",\n            \"type\": {\n                \"key\": \"fuelsensor\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик топлива\"\n            },\n            \"param1\": {\n                \"param_key\": \"dut_485_1\",\n                \"min_valid\": 1.0,\n                \"max_valid\": 4096.0,\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [\n                    {\n                        \"fromValue\": 0.0,\n                        \"a\": 0.087,\n                        \"b\": 0.0\n                    },\n                    {\n                        \"fromValue\": 115.0,\n                        \"a\": 0.0282,\n                        \"b\": 6.7606\n                    },\n                    {\n                        \"fromValue\": 470.0,\n                        \"a\": 0.0312,\n                        \"b\": 5.3583\n                    },\n                    {\n                        \"fromValue\": 791.0,\n                        \"a\": 0.0332,\n                        \"b\": 3.7209\n                    },\n                    {\n                        \"fromValue\": 1092.0,\n                        \"a\": 0.0383,\n                        \"b\": -1.8391\n                    },\n                    {\n                        \"fromValue\": 1353.0,\n                        \"a\": 0.0394,\n                        \"b\": -3.2677\n                    },\n                    {\n                        \"fromValue\": 1607.0,\n                        \"a\": 0.0413,\n                        \"b\": -6.405\n                    },\n                    {\n                        \"fromValue\": 1849.0,\n                        \"a\": 0.0412,\n                        \"b\": -6.0905\n                    },\n                    {\n                        \"fromValue\": 2092.0,\n                        \"a\": 0.0403,\n                        \"b\": -4.3548\n                    },\n                    {\n                        \"fromValue\": 2216.0,\n                        \"a\": 0.0403,\n                        \"b\": -4.3548\n                    },\n                    {\n                        \"fromValue\": 2340.0,\n                        \"a\": 0.042,\n                        \"b\": -8.3193\n                    },\n                    {\n                        \"fromValue\": 2459.0,\n                        \"a\": 0.0403,\n                        \"b\": -4.1532\n                    },\n                    {\n                        \"fromValue\": 2583.0,\n                        \"a\": 0.0389,\n                        \"b\": -0.5058\n                    },\n                    {\n                        \"fromValue\": 2840.0,\n                        \"a\": 0.045,\n                        \"b\": -17.9279\n                    },\n                    {\n                        \"fromValue\": 3062.0,\n                        \"a\": 0.0398,\n                        \"b\": -1.992\n                    },\n                    {\n                        \"fromValue\": 3313.0,\n                        \"a\": 0.0405,\n                        \"b\": -4.1295\n                    },\n                    {\n                        \"fromValue\": 3560.0,\n                        \"a\": 0.0426,\n                        \"b\": -11.4893\n                    },\n                    {\n                        \"fromValue\": 3983.0,\n                        \"a\": 0.0625,\n                        \"b\": -90.9375\n                    },\n                    {\n                        \"fromValue\": 4095.0,\n                        \"a\": 0.0625,\n                        \"b\": -90.9375\n                    }\n                ],\n                \"calibrationXYlist\": [\n                    {\n                        \"x\": 0.0,\n                        \"y\": 0.0\n                    },\n                    {\n                        \"x\": 115.0,\n                        \"y\": 10.0\n                    },\n                    {\n                        \"x\": 470.0,\n                        \"y\": 20.0\n                    },\n                    {\n                        \"x\": 791.0,\n                        \"y\": 30.0\n                    },\n                    {\n                        \"x\": 1092.0,\n                        \"y\": 40.0\n                    },\n                    {\n                        \"x\": 1353.0,\n                        \"y\": 50.0\n                    },\n                    {\n                        \"x\": 1607.0,\n                        \"y\": 60.0\n                    },\n                    {\n                        \"x\": 1849.0,\n                        \"y\": 70.0\n                    },\n                    {\n                        \"x\": 2092.0,\n                        \"y\": 80.0\n                    },\n                    {\n                        \"x\": 2216.0,\n                        \"y\": 85.0\n                    },\n                    {\n                        \"x\": 2340.0,\n                        \"y\": 90.0\n                    },\n                    {\n                        \"x\": 2459.0,\n                        \"y\": 95.0\n                    },\n                    {\n                        \"x\": 2583.0,\n                        \"y\": 100.0\n                    },\n                    {\n                        \"x\": 2840.0,\n                        \"y\": 110.0\n                    },\n                    {\n                        \"x\": 3062.0,\n                        \"y\": 120.0\n                    },\n                    {\n                        \"x\": 3313.0,\n                        \"y\": 130.0\n                    },\n                    {\n                        \"x\": 3560.0,\n                        \"y\": 140.0\n                    },\n                    {\n                        \"x\": 3983.0,\n                        \"y\": 158.0\n                    },\n                    {\n                        \"x\": 4095.0,\n                        \"y\": 165.0\n                    }\n                ]\n            },\n            \"param2\": {\n                \"param_key\": \"skif_text\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"formula\": \"S1\",\n            \"hide_in_reports\": false,\n            \"invalid\": false\n        },\n        {\n            \"name\": \"Зажигание\",\n            \"type\": {\n                \"key\": \"ignition\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик зажигания\"\n            },\n            \"param1\": {\n                \"param_key\": \"voltage_main\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [\n                    {\n                        \"fromValue\": 26500.0,\n                        \"a\": 0.0,\n                        \"b\": 1.0\n                    }\n                ],\n                \"calibrationXYlist\": [\n                    {\n                        \"x\": 26500.0,\n                        \"y\": 1.0\n                    }\n                ]\n            },\n            \"param2\": {\n                \"param_key\": \"skif_text\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"formula\": \"S1\",\n            \"hide_in_reports\": false,\n            \"invalid\": false\n        },\n        {\n            \"name\": \"Пробег\",\n            \"type\": {\n                \"key\": \"mileage\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик пробега\"\n            },\n            \"param1\": {\n                \"param_key\": \"mileage_cur\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"param2\": {\n                \"param_key\": \"skif_text\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"formula\": \"S1\",\n            \"hide_in_reports\": false,\n            \"invalid\": false\n        },\n        {\n            \"name\": \"Напряжение [mV]\",\n            \"type\": {\n                \"key\": \"power\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик напряжения\"\n            },\n            \"param1\": {\n                \"param_key\": \"voltage_main\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"param2\": {\n                \"param_key\": \"skif_text\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"formula\": \"S1\",\n            \"hide_in_reports\": false,\n            \"invalid\": false\n        }\n    ],\n    \"custom_fields\": [\n        {\n            \"name\": \"S-2551\",\n            \"key\": \"S-2551\",\n            \"value\": \"#31\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0\n        },\n        {\n            \"name\": \"Мин. время стоянки (сек)\",\n            \"key\": \"tripdetector_minparktime\",\n            \"value\": \"600\",\n            \"group\": \"cf_trips\",\n            \"sort\": 1\n        },\n        {\n            \"name\": \"Мин. объем заправки\",\n            \"key\": \"fuel_fillings_minfilling\",\n            \"value\": \"20\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 1\n        },\n        {\n            \"name\": \"Расход летом (л/100км.)\",\n            \"key\": \"fuel_consumption_summerconsump\",\n            \"value\": \"0\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 1\n        },\n        {\n            \"name\": \"Аналитик\",\n            \"key\": \"analyst\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 1\n        },\n        {\n            \"name\": \"Коэф. пробега\",\n            \"key\": \"advanced_mileagecoeff\",\n            \"value\": \"1.0\",\n            \"group\": \"cf_trips\",\n            \"sort\": 2\n        },\n        {\n            \"name\": \"Игнор-ть сообщ-я после начала движения\",\n            \"key\": \"fuel_fillings_msgignorestart\",\n            \"value\": \"60\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 2\n        },\n        {\n            \"name\": \"Расход зимой (л/100км.)\",\n            \"key\": \"fuel_consumption_winterconsump\",\n            \"value\": \"0\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 2\n        },\n        {\n            \"name\": \"Установщик\",\n            \"key\": \"installer\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 2\n        },\n        {\n            \"name\": \"Мин. скорость движ-я (км/ч)\",\n            \"key\": \"tripdetector_minmovespeed\",\n            \"value\": \"1\",\n            \"group\": \"cf_trips\",\n            \"sort\": 3\n        },\n        {\n            \"name\": \"Мин. время остановки для опр-ия слива\",\n            \"key\": \"fuel_fillings_minstaytheft\",\n            \"value\": \"60\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 3\n        },\n        {\n            \"name\": \"На холостом ходу летом (л./час.)\",\n            \"key\": \"fuel_math_idlingsummer\",\n            \"value\": \"0\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 3\n        },\n        {\n            \"name\": \"Мин. объем слива\",\n            \"key\": \"fuel_fillings_minitheft\",\n            \"value\": \"25\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 4\n        },\n        {\n            \"name\": \"Дата установки\",\n            \"key\": \"install_date\",\n            \"value\": \"16.07.2019\",\n            \"group\": \"cf_etc\",\n            \"sort\": 4\n        },\n        {\n            \"name\": \"На холостом ходу зимой (л./час.)\",\n            \"key\": \"fuel_math_idlingwinter\",\n            \"value\": \"0\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 4\n        },\n        {\n            \"name\": \"Мин. расст-ие поездки (м)\",\n            \"key\": \"tripdetector_mintripdist\",\n            \"value\": \"100\",\n            \"group\": \"cf_trips\",\n            \"sort\": 4\n        },\n        {\n            \"name\": \"Макс. интервал между сообщ-ми (сек)\",\n            \"key\": \"advanced_maxintervalmsg\",\n            \"value\": \"3600\",\n            \"group\": \"cf_trips\",\n            \"sort\": 5\n        },\n        {\n            \"name\": \"Коэф. при движении под нагрузкой\",\n            \"key\": \"fuel_math_coeffunderload\",\n            \"value\": \"0\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 5\n        },\n        {\n            \"name\": \"Место установки в ТС\",\n            \"key\": \"install_place\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 5\n        },\n        {\n            \"name\": \"Макс. расст-ие между сообщ-ми (м)\",\n            \"key\": \"tripdetector_maxdistancemsg\",\n            \"value\": \"1000\",\n            \"group\": \"cf_trips\",\n            \"sort\": 6\n        },\n        {\n            \"name\": \"Первый месяц зимы (январь-1)\",\n            \"key\": \"fuel_consumption_winterfrom\",\n            \"value\": \"11\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 6\n        },\n        {\n            \"name\": \"Серийный номер терминала\",\n            \"key\": \"serial_number\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 6\n        },\n        {\n            \"name\": \"Мин. время поездки (сек)\",\n            \"key\": \"tripdetector_mintriptime\",\n            \"value\": \"300\",\n            \"group\": \"cf_trips\",\n            \"sort\": 7\n        },\n        {\n            \"name\": \"Последний месяц зимы (январь-1)\",\n            \"key\": \"fuel_consumption_winterto\",\n            \"value\": \"3\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 7\n        },\n        {\n            \"name\": \"Серийный номер ДУТ\",\n            \"key\": \"serial_number_dut\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 7\n        },\n        {\n            \"name\": \"Стоимость (1 л.)\",\n            \"key\": \"fuel_price\",\n            \"value\": \"45\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 8\n        },\n        {\n            \"name\": \"Опр-ие движ-я\",\n            \"key\": \"key_tripdetector_movedetect\",\n            \"value\": \"speedkph\",\n            \"group\": \"cf_trips\",\n            \"sort\": 8\n        },\n        {\n            \"name\": \"Серийный номер пломбы ДУТ\",\n            \"key\": \"dut_seal_serial_number\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 8\n        },\n        {\n            \"name\": \"Определение пробега\",\n            \"key\": \"tripdetector_mileagedetect\",\n            \"value\": \"mileage_GPS\",\n            \"group\": \"cf_trips\",\n            \"sort\": 9\n        },\n        {\n            \"name\": \"Гос номер\",\n            \"key\": \"license_plate_number\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 9\n        },\n        {\n            \"name\": \"Определение моточасов\",\n            \"key\": \"key_motohourdetector\",\n            \"value\": \"ignition\",\n            \"group\": \"cf_motohours\",\n            \"sort\": 10\n        },\n        {\n            \"name\": \"Норма часов в день\",\n            \"key\": \"hours_rate\",\n            \"value\": \"8\",\n            \"group\": \"cf_etc\",\n            \"sort\": 10\n        },\n        {\n            \"name\": \"Дата блокировки(yyyy-MM-dd)\",\n            \"key\": \"block_date\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 11\n        },\n        {\n            \"name\": \"КП\",\n            \"key\": \"kp\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 12\n        },\n        {\n            \"name\": \"ДУТ\",\n            \"key\": \"dut\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 13\n        },\n        {\n            \"name\": \"Вторая sim\",\n            \"key\": \"second_sim\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 14\n        },\n        {\n            \"name\": \"Серийный номер ДУТ 1\",\n            \"key\": \"serial_number_dut_1\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 15\n        },\n        {\n            \"name\": \"Серийный номер ДУТ 2\",\n            \"key\": \"serial_number_dut_2\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 16\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_mileagekey\",\n            \"key\": \"counters_mileagekey\",\n            \"value\": \"gps_mileage\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_mileagecurr\",\n            \"key\": \"counters_mileagecurr\",\n            \"value\": \"0\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_mileageauto\",\n            \"key\": \"counters_mileageauto\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_engienecurr\",\n            \"key\": \"counters_engienecurr\",\n            \"value\": \"0\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_gprscurr\",\n            \"key\": \"counters_gprscurr\",\n            \"value\": \"0\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_gprsauto\",\n            \"key\": \"counters_gprsauto\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.advanced_speedlimit\",\n            \"key\": \"advanced_speedlimit\",\n            \"value\": \"130\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.advanced_urbspeedlimit\",\n            \"key\": \"advanced_urbspeedlimit\",\n            \"value\": \"60\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.advanced_dailyengine\",\n            \"key\": \"advanced_dailyengine\",\n            \"value\": \"0\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.tripdetector_movedetectkey\",\n            \"key\": \"tripdetector_movedetectkey\",\n            \"value\": \"speed\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.tripdetector_gpscorrect\",\n            \"key\": \"tripdetector_gpscorrect\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.tripdetector_minsatellites\",\n            \"key\": \"tripdetector_minsatellites\",\n            \"value\": \"3\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.tripdetector_mintipdist\",\n            \"key\": \"tripdetector_mintipdist\",\n            \"value\": \"100\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_fillings_fillingstop\",\n            \"key\": \"fuel_fillings_fillingstop\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_fillings_ignorefiltration\",\n            \"key\": \"fuel_fillings_ignorefiltration\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_sensors_mergenameslevel\",\n            \"key\": \"fuel_sensors_mergenameslevel\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_sensors_mergenamesconsum\",\n            \"key\": \"fuel_sensors_mergenamesconsum\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_sensors_timelevel\",\n            \"key\": \"fuel_sensors_timelevel\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_sensors_filtervalues\",\n            \"key\": \"fuel_sensors_filtervalues\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_math_idling\",\n            \"key\": \"fuel_math_idling\",\n            \"value\": \"2\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_math_urbcycle\",\n            \"key\": \"fuel_math_urbcycle\",\n            \"value\": \"0\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_math_suburbcycle\",\n            \"key\": \"fuel_math_suburbcycle\",\n            \"value\": \"0\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_levelsensors\",\n            \"key\": \"fuel_level_levelsensors\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_repivalid\",\n            \"key\": \"fuel_level_repivalid\",\n            \"value\": \"true\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_impulsefuel\",\n            \"key\": \"fuel_level_impulsefuel\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_maximpulse\",\n            \"key\": \"fuel_level_maximpulse\",\n            \"value\": \"0\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_skipfirstzero\",\n            \"key\": \"fuel_level_skipfirstzero\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_absolutefuel\",\n            \"key\": \"fuel_level_absolutefuel\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_instantfuel\",\n            \"key\": \"fuel_level_instantfuel\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.battery_charge_level_diagnostic\",\n            \"key\": \"battery_charge_level_diagnostic\",\n            \"value\": \"diagnostic_ten_min\",\n            \"group\": \"cf_diagnostic\",\n            \"sort\": 1\n        }\n    ],\n    \"drivers\": [\n        {\n            \"user\": {\n                \"id\": \"bd3b26b7-506d-4cc6-8ab6-bf4cd1b9a39c\"\n            },\n            \"date_from\": \"2022-10-03 00:00:00\",\n            \"date_to\": \"2022-10-04 00:00:00\"\n        },\n        {\n            \"user\": {\n                \"id\": \"bd3b26b7-506d-4cc6-8ab6-bf4cd1b9a39c\"\n            },\n            \"date_from\": \"2022-10-05 00:00:00\",\n            \"date_to\": \"2022-10-10 00:00:00\"\n        }\n    ],\n    \"trailers\": [\n        {\n            \"trailer\": {\n                \"id\": \"fcaf9265-5a5b-4d35-8b00-ee146b8dc8f6\"\n            },\n            \"date_from\": \"2022-10-03 00:00:00\",\n            \"date_to\": \"2022-10-04 00:00:00\"\n        },\n        {\n            \"trailer\": {\n                \"id\": \"d0bc0903-702b-4d96-826a-e26860681356\"\n            },\n            \"date_from\": \"2022-10-05 00:00:00\",\n            \"date_to\": \"2022-10-10 00:00:00\"\n        }\n    ]\n}"},"url":"{{base_url}}/api_v1/units","description":"<p><strong>Создание объекта</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"name\": \"Автомобиль обычный-1\" // Номер, наименование объекта,\n\"type\": {\"key\":\"transport\"} // Тип объекта (из dictionary, все ключи с типом 'unit_type'),\n\"terminal_type\":{\"key\": \"navtelecom\"} // Тип устройства (из dictionary, все ключи с типом 'terminal_type'),\n\"imei\": \"352093084258333\" // imei устройства\n\"phonenumber\": \"89248608208\" // номер телефона\n\"phonenumber2\": \"+79851234567\" // второй номер телефона\n\"icon\": {\"key\":\"car_blue\"} // ключ иконки (из dictionary, все ключи с типом 'unit_icon')\nдоп поля: // смотри GET /custom_fields, ссылка ниже.\n\"custom_fields\": [\n    {\"name\": \"analist\", 'key': 'analist', \"value\": \"Петров\"},\n    {\"name\": \"counters_mileagekey\", \"key\": \"counters_mileagekey\", \"value\": \"gps_mileage\"},\n    {\"name\": \"counters_mileagecurr\", \"key\": \"counters_mileagecurr\", \"value\": \"2400\"},\n    {\"name\": \"tripdetector_movedetectkey\", \"key\": \"tripdetector_movedetectkey\", \"value\": \"speed\"},\n    {\"name\": \"Минимальный объем заправки\", \"key\": \"fuel_fillings_minfilling\", \"value\": \"10\"},\n    {\"name\": \"advanced_mileagecoeff\", \"key\": \"advanced_mileagecoeff\", \"value\": \"1.0\"},\n    {\"name\": \"Видео устройство\", \"key\": \"video_device_name\", \"value\": \"CARVIS\", \"group\": \"cf_etc\"},\n    {\"name\": \"ID-видео устройства\", \"key\": \"video_device_id\", \"value\": \"3432426544\", \"group\": \"cf_etc\"},\n    {\"name\": \"Камеры\", \"key\": \"video_cameras\", \"value\": \"0,1,2\", \"group\": \"cf_etc\"}\nСмены:\n\"drivers\": [\n        {\n            \"user\": { // Водитель\n                \"id\": \"bd3b26b7-506d-4cc6-8ab6-bf4cd1b9a39c\"\n            },\n            \"date_from\": \"2022-10-03 00:00:00\", // от\n            \"date_to\": \"2022-10-04 00:00:00\"// до\n        },\n        {\n            \"user\": {\n                \"id\": \"bd3b26b7-506d-4cc6-8ab6-bf4cd1b9a39c\"\n            },\n            \"date_from\": \"2022-10-05 00:00:00\",\n            \"date_to\": \"2022-10-10 00:00:00\"\n        }\n    ],\nНазначение прицепов\n    \"trailers\": [\n        {\n            \"trailer\": { // Прицеп\n                \"id\": \"fcaf9265-5a5b-4d35-8b00-ee146b8dc8f6\"\n            },\n            \"date_from\": \"2022-10-03 00:00:00\", // от\n            \"date_to\": \"2022-10-04 00:00:00\" // до\n        },\n        {\n            \"trailer\": {\n                \"id\": \"d0bc0903-702b-4d96-826a-e26860681356\"\n            },\n            \"date_from\": \"2022-10-05 00:00:00\",\n            \"date_to\": \"2022-10-10 00:00:00\"\n        }\n    ],\n\"services\": [{\n    \"id\":\"23453-5435345-234345345-34534533\" // ОПЦИОНАЛЬНО ! Если сервис уже сохранен в БД и имеет id, то для его маппинга на текущий создаваемый юнит, необходимо указать его id, если сервис будет создаваться вместе с юнитом, то параметра \"id\" быть не должно. \n    \"name\": \"Очередное ТО\" // наименование сервиса,\n    \"description\": \"ваш текст\" // описание,\n    \"isActiveKm\": \"true\" // активно или нет по км,\n    \"intervalKm\": \"10000\" // периодичность по км,\n    \"lastKm\": \"45000\" // последний раз по км,\n    \"isActiveDays\": \"true\" // активно или нет по дням,\n    \"intervaldays\": \"60\" // периодичность по дням,\n    \"lastdays\": \"2019-05-14\" // последний раз по дням (Формат yyyy-MM-dd),\n    \"isActiveMotohours\": \"true\" // активно или нет по моточасам,\n    \"intervalMotohours\": \"1200\" // периодичность по моточасам,\n    \"lastMotohours\": \"14000\" // последний раз по моточасам \n}]\nДатчики (Можно создавать отдельно через /units/sensors (без привязки к unit) или /units/:unit_id/sensors (с привязкой к unit)):\nsensors:[{\n    \"id\":\"23453-5435345-234345345-34534533\" // ОПЦИОНАЛЬНО ! Если сенсор уже сохранен в БД и имеет id, то для его маппинга на текущий создаваемый юнит, необходимо указать его id, если сенсор будет создаваться вместе с юнитом, то параметра \"id\" быть не должно.\n    \"name\": \"Зажигание\" // Название датчика ,\n    \"type\": {\"key\":\"ignition\"} // тип датчика (из dictrionary, все ключи с типом \"sensor_type\"),\n    \"param1\":{ // Параметр №1 сенсора. Под примером доп.инфа.\n            \"param_key\": \"dut_485_1\", // ключ параметрa, должен быть в списке разрешенных ключей для конкретного терминала (/units/sensors/params)\n            \"calibrationABlist\": // Лист калибровок AB\n                [{\n                    \"fromValue\": 1.0, // нижняя граница\n                    \"a\": 2.0,    // коэффициент А\n                    \"b\": 3.0    // коэффициент B\n                }], \n            \"calibrationXYlist\": // Лист калибровок AB\n                [{\n                    \"x\": 1.0,    // коэффициент X\n                    \"y\": 5.0    // коэффициент Y\n                }]\n    }, \n    \"param2\":{ // Параметр №2 сенсора. Под примером доп.инфа.\n            \"param_key\": \"dut_485_2\", \n            \"calibrationABlist\": \n                [{\n                    \"fromValue\": 1.0,\n                    \"a\": 1.0, \n                    \"b\": 1.0\n                }], \n            \"calibrationXYlist\":\n                [{\n                    \"x\": 1.0,\n                    \"y\": 2.0\n                }]\n    }, \n    \"hide_in_reports\": false, // флажок используется, чтобы скрыть в отчетах, По умолчанию false\n    \"hide_in_monitoring\": true, // флажок используется чтобы скрыть значение датчика в мониторинге, По умолчанию false\n    \"formula\": \"S1\" // формула связки параметра 1 и параметра 2.         Полный список возможных значений лежит в Dictionaries по ключу \"formula\"\n     \"expression\": \"$param + ${Пробег} / 100\"// выражения формулы, это поле нужно только в случае formula=EXPR и имеет следующие синтаксисы 1) обращение к значениям любого параметра из сырых данных -  #param333 (обращение к параметру param333)\n     \"retrans_param_name\": \"fuel_level_1\",Ретранслировать в параметр, необязательное поле\n2)обращение к параметру текущего датчика - $param\nконстанты - 1000 (константа 1000)\n3)обращение к значению других датчиков ${Название датчика}\n4)арифметические операции - + * / ^(степень)\nскобки - ( или ) \n},\n}]\n\n</code></pre><p>По доп. полям смотрите <a href=\"https://documenter.getpostman.com/view/13147/RztmtVLV?version=latest#05ee6204-6755-48ec-aeac-ba53f1041e9e\">GET /custom_fields</a></p>\n<p>Описание param1, param2 сенсора: Данные параметры являются опциональными и если пользователь их не заполнил, то передавать их вообще не надо. Перед сохранением param1 и param2 происходит пересчет их внутренних калибровочных листов (калибровкиAB и КалибровкиXY). Лист КалибровокAB и лист калибровокXY у конкретного параметра взаимосвязаны и порождают друг друга по определенным формулам, т.е. из листа калибровок XY можно вычислить лист калибровок AB и наоборот.</p>\n<p>В связи с этим РЕКОМЕНДУЕТСЯ перед тем, как сделать запрос, предварительно использовать метод <a href=\"https://documenter.getpostman.com/view/13147/RztmtVLV?version=latest#e6cca9ca-c162-4c2a-ae5b-a762aa3a6500\">POST /units/sensors/recalc</a> для пересчета этих листов и передавать в calibrationABlist и calibrationXYlist результат работы этого метода.</p>\n<p>После создания, создается объект с привязкой объекта к компании пользователя.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Возвращается созданный объект</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[{\n        \"id\": \"72154648-1f0d-4acc-a74d-81c7926e4483\",\n        \"type\": {\n                \"key\":\"farm_equipment\",\n                \"type\":\"unit_type\",\n                \"value\":\"Сельхозтехника\"\n        },\n        \"is_delete\": 0,\n        \"company_id\": \"d12c453b-d25c-445a-9e5b-ee9f9d4b7dff\",\n        \"name\": \"Scania K 810 MT 159\",\n        \"terminal_type\":  {\n                \"key\":\"navtelecom\",\n                \"type\":\"terminal_type\",\n                \"value\":\"navtelecom\"\n        },\n        \"imei\": \"868926035645339\",\n        \"phonenumber\": \"+79223569544\",\n        \"icon\": {\n                \"key\":\"bus\",\n                \"type\":\"unit_icon\",\n                \"value\":\"автобус\"\n        },\n        custom_fields: [\n                {\"name\":\"Игнорировать сообщения после начала движения\",\"key\":\"fuel_fillings_msgignorestart\",\"value\":60.0},\n                {\"name\":\"Мин. время остановки для определения слива\",\"key\":\"fuel_fillings_minstaytheft\",\"value\":60.0},\n                {\"name\":\"Минимальный объем слива\",\"key\":\"fuel_fillings_minitheft\",\"value\":10.0},\n                {\"name\":\"Мин. время стоянки\",\"key\":\"tripdetector_minparktime\",\"value\":300.0},\n                {\"name\":\"Коэффициент пробега\",\"key\":\"advanced_mileagecoeff\",\"value\":1.0},\n                {\"name\":\"Мин. скорость движения\",\"key\":\"tripdetector_minmovespeed\",\"value\":3.0},\n                {\"name\":\"Мин. расстояние поездки\",\"key\":\"tripdetector_mintripdist\",\"value\":100.0}\n        ],\n        \"services\": [{\n                \"id\": \"1e83e291-690e-491e-84ee-e0d3e1397055\",\n                \"unit_id\": \"72154648-1f0d-4acc-a74d-81c7926e4483\",\n                \"name\": \"Очередное ТО\",\n                \"description\": \"\",\n                \"isactiveKm\": 1,\n                \"intervalKm\": 10000,\n                \"lastkm\": 45000,\n                \"isActiveDays\": 1,\n                \"intervalDays\": 60,\n                \"lastDays\": \"2019-05-14 05:00:00\",\n                \"isActiveMotohours\": true,\n                \"intervalMotohours\": 1200,\n                \"lastMotohours\": 18600,\n        }],\n        \"sensors\": [{\n                \"id\": \"3c5b7072-abd5-4095-8be7-02d4b75751c0\",\n                \"unit_id\": \"72154648-1f0d-4acc-a74d-81c7926e4483\",\n                \"name\": \"Зажигание\",.\n                \"typekey\": \"ignition\",\n                \"param1\":{ \n                    \"param_key\": \"dut_485_1\",\n                    \"calibrationABlist\": \n                        [{ \"fromValue\": 1.0, \"a\": 2.0, \"b\": 3.0 }], \n                    \"calibrationXYlist\": \n                        [{ \"x\": 1.0, \"y\": 5.0 }]\n                }, \n                \"param2\":{ \n                    \"param_key\": \"dut_485_2\", \n                    \"calibrationABlist\": \n                        [{ \"fromValue\": 1.0, \"a\": 1.0, \"b\": 1.0 }], \n                    \"calibrationXYlist\":\n                        [{ \"x\": 1.0, \"y\": 2.0 }]\n                },\n                \"formula\": \"S1\",\n                \"hide_in_reports\": false,\n                \"hide_in_monitoring\": false\n        }]\n}]\n\n</code></pre>","urlObject":{"path":["api_v1","units"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8d9df07b-752a-4b59-ac91-219b25539c4e"},{"name":"/units?ids=:ids","id":"036b6ec5-8333-4a8f-8e96-488c58c5afca","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/units?ids=","description":"<p><strong>Поиск объектов по ID (через запятую)</strong></p>\n<hr />\n<p>Возвращает массив объектов.<br />Если параметр 'ids' пустой (т.е. запрос = 'GET /units', без параметра), то вернётся список всех объектов по всем компаниям пользователя, из которого исключаются удаленные юниты. Если ids не пустой (т.е. запрос = 'GET /units?ids=00215-54021..,25541-454754-4513..'), то вернётся список только из запрошенных юнитов.</p>\n<p>Если в параметре ids содержится только один id, то вернется НЕ массив из 1 элемента, а конкретный объект.</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[  \n   {  \n      \"id\":\"2bcd95c4-d520-4203-89fc-b0d3a76a7d6b\",\n      \"name\":\"testName-1\",\n      \"type\":{  \n         \"key\":\"farm_equipment\",\n         \"type\":\"unit_type\",\n         \"value\":\"Сельхозтехника\"\n      },\n      \"terminal_type\":{  \n         \"key\":\"navtelecom\",\n         \"type\":\"terminal_type\",\n         \"value\":\"navtelecom\"\n      },\n      \"imei\":\"743b075b-3006-4450-83f8-46d80b13586b\",\n      \"phonenumber\":\"8(914)3333333\",\n      \"units_groups_names\": \"ТЕст123, НОДГП-1 (НОДГП-1 Кокшетау), Ntcn, все тест, Новая, НЖС-1 (ЭЧ-8 Астана)\",\n      \"icon\":{  \n         \"key\":\"bus\",\n         \"type\":\"unit_icon\",\n         \"value\":\"Автобус\"\n      },\n      \"services\":[  \n         {  \n            \"id\":\"e257e819-5d09-4da2-8ee4-9c072fef6de0\",\n            \"unit_id\":\"2bcd95c4-d520-4203-89fc-b0d3a76a7d6b\",\n            \"name\":\"testService\",\n            \"description\":\"dumb service for test\",\n            \"isActiveKm\":true,\n            \"intervalKm\":10000,\n            \"lastKm\":45000,\n            \"isActiveDays\":true,\n            \"intervalDays\":300,\n            \"lastDays\":\"2019-06-03\",\n            \"activeKm\":true,\n            \"activeDays\":true\n         }\n      ],\n      \"sensors\":[  \n         {  \n            \"id\":\"49d91500-6582-4a8c-a341-215fe2e11279\",\n            \"unit_id\":\"2bcd95c4-d520-4203-89fc-b0d3a76a7d6b\",\n            \"name\":\"testSensor\",\n            \"type\":{  \n               \"key\":\"ignition\",\n               \"type\":\"sensor_type\",\n               \"value\":\"translate.sensor_type.ignition\"\n            },\n            \"param1\":{ \n                    \"param_key\": \"dut_485_1\",\n                    \"calibrationABlist\": \n                        [{ \"fromValue\": 1.0, \"a\": 2.0, \"b\": 3.0 }], \n                    \"calibrationXYlist\": \n                        [{ \"x\": 1.0, \"y\": 5.0 }]\n                }, \n                \"param2\":{ \n                    \"param_key\": \"dut_485_2\", \n                    \"calibrationABlist\": \n                        [{ \"fromValue\": 1.0, \"a\": 1.0, \"b\": 1.0 }], \n                    \"calibrationXYlist\":\n                        [{ \"x\": 1.0, \"y\": 2.0 }]\n                },\n            \"formula\": \"S1\"\n         }\n      ],\n      \"custom_fields\":[  \n         {\"key\": limit\", \"value\": \"123\"},\n         {\"key\": \"power\", \"value\": \"123kw\"}\n      ]\n   },\n   {  \n      \"id\":\"3f64e76d-0ff6-46ec-90dc-baadb89733f0\",\n      \"name\":\"testName-2\",\n      \"type\":{  \n         \"key\":\"farm_equipment\",\n         \"type\":\"unit_type\",\n         \"value\":\"Сельхозтехника\"\n      },\n      \"terminal_type\":{  \n         \"key\":\"navtelecom\",\n         \"type\":\"terminal_type\",\n         \"value\":\"navtelecom\"\n      },\n      \"imei\":\"1406dfa0-1a6b-4cce-be8e-5d41d1eb71c9\",\n      \"phonenumber\":\"8(914)3333333\",\n      \"icon\":{  \n         \"key\":\"bus\",\n         \"type\":\"unit_icon\",\n         \"value\":\"Автобус\"\n      },\n      \"services\":[  \n         {  \n            \"id\":\"f19f6da9-d010-4ffe-87cc-3fa9c40667cc\",\n            \"unit_id\":\"3f64e76d-0ff6-46ec-90dc-baadb89733f0\",\n            \"name\":\"testService\",\n            \"description\":\"dumb service for test\",\n            \"isActiveKm\":true,\n            \"intervalKm\":10000,\n            \"lastKm\":45000,\n            \"isActiveDays\":true,\n            \"intervalDays\":300,\n            \"lastDays\":\"2019-06-03\",\n            \"activeKm\":true,\n            \"activeDays\":true\n         }\n      ],\n      \"sensors\":[  \n         {  \n            \"id\":\"bd41f2a6-56c6-46b7-97f1-1ac1096ad81b\",\n            \"unit_id\":\"3f64e76d-0ff6-46ec-90dc-baadb89733f0\",\n            \"name\":\"testSensor\",\n            \"type\":{  \n               \"key\":\"ignition\",\n               \"type\":\"sensor_type\",\n               \"value\":\"translate.sensor_type.ignition\"\n            },\n            \"param1\":\"voltage_main\",\n            \"param2\":\"speedkph\",\n            \"formula\":\"S\",\n            \"calibrations\":[  \n               {  \n                  \"id\":\"b2a45781-f05f-4553-be86-9320334ce864\",\n                  \"sensor_id\":\"bd41f2a6-56c6-46b7-97f1-1ac1096ad81b\",\n                  \"fromValue\":3.0,\n                  \"a\":1.5,\n                  \"b\":2.0,\n                  \"param_key\":\"speedkph\"\n               }\n            ]\n         }\n      ],\n      \"custom_fields\":[  \n            {\"name\":\"Игнорировать сообщения после начала движения\",\"key\":\"fuel_fillings_msgignorestart\",\"value\":60.0},\n                {\"name\":\"Мин. время остановки для определения слива\",\"key\":\"fuel_fillings_minstaytheft\",\"value\":60.0},\n                {\"name\":\"Минимальный объем слива\",\"key\":\"fuel_fillings_minitheft\",\"value\":10.0}\n      ]\n   }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","units"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"036b6ec5-8333-4a8f-8e96-488c58c5afca"},{"name":"/units/:unit_id","id":"acd40524-9445-4e06-b161-8b69b081917a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"1058bb08-618d-493e-95bd-862dfe36989b\",\n    \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n    \"name\": \"Hitachi XXXX\",\n    \"type\": {\n        \"key\": \"special_equipment\",\n        \"type\": \"unit_type\",\n        \"value\": \"Спецтехника\"\n    },\n    \"terminal_type\": {\n        \"key\": \"navtelecom\",\n        \"type\": \"terminal_type\",\n        \"value\": \"Navtelecom\"\n    },\n    \"imei\": \"12121212\",\n    \"phonenumber\": \"+71231231212\",\n    \"phonenumber2\": \"+73453435343\",\n    \"icon\": {\n        \"key\": \"excavator_green\",\n        \"type\": \"unit_icon\",\n        \"value\": \"Иконка\"\n    },\n    \"services\": [],\n    \"sensors\": [\n        {\n            \"id\": \"3e40dece-4d43-42f9-a997-16a8352e5e6a\",\n            \"unit\": {\n                \"id\": \"1058bb08-618d-493e-95bd-862dfe36989b\"\n            },\n            \"name\": \"ДУТ-1\",\n            \"type\": {\n                \"key\": \"fuelsensor\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик топлива\"\n            },\n            \"param1\": {\n                \"param_key\": \"dut_485_1\",\n                \"min_valid\": 1.0,\n                \"max_valid\": 4096.0,\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [\n                    {\n                        \"fromValue\": 0.0,\n                        \"a\": 0.087,\n                        \"b\": 0.0\n                    },\n                    {\n                        \"fromValue\": 115.0,\n                        \"a\": 0.0282,\n                        \"b\": 6.7606\n                    },\n                    {\n                        \"fromValue\": 470.0,\n                        \"a\": 0.0312,\n                        \"b\": 5.3583\n                    },\n                    {\n                        \"fromValue\": 791.0,\n                        \"a\": 0.0332,\n                        \"b\": 3.7209\n                    },\n                    {\n                        \"fromValue\": 1092.0,\n                        \"a\": 0.0383,\n                        \"b\": -1.8391\n                    },\n                    {\n                        \"fromValue\": 1353.0,\n                        \"a\": 0.0394,\n                        \"b\": -3.2677\n                    },\n                    {\n                        \"fromValue\": 1607.0,\n                        \"a\": 0.0413,\n                        \"b\": -6.405\n                    },\n                    {\n                        \"fromValue\": 1849.0,\n                        \"a\": 0.0412,\n                        \"b\": -6.0905\n                    },\n                    {\n                        \"fromValue\": 2092.0,\n                        \"a\": 0.0403,\n                        \"b\": -4.3548\n                    },\n                    {\n                        \"fromValue\": 2216.0,\n                        \"a\": 0.0403,\n                        \"b\": -4.3548\n                    },\n                    {\n                        \"fromValue\": 2340.0,\n                        \"a\": 0.042,\n                        \"b\": -8.3193\n                    },\n                    {\n                        \"fromValue\": 2459.0,\n                        \"a\": 0.0403,\n                        \"b\": -4.1532\n                    },\n                    {\n                        \"fromValue\": 2583.0,\n                        \"a\": 0.0389,\n                        \"b\": -0.5058\n                    },\n                    {\n                        \"fromValue\": 2840.0,\n                        \"a\": 0.045,\n                        \"b\": -17.9279\n                    },\n                    {\n                        \"fromValue\": 3062.0,\n                        \"a\": 0.0398,\n                        \"b\": -1.992\n                    },\n                    {\n                        \"fromValue\": 3313.0,\n                        \"a\": 0.0405,\n                        \"b\": -4.1295\n                    },\n                    {\n                        \"fromValue\": 3560.0,\n                        \"a\": 0.0426,\n                        \"b\": -11.4893\n                    },\n                    {\n                        \"fromValue\": 3983.0,\n                        \"a\": 0.0625,\n                        \"b\": -90.9375\n                    },\n                    {\n                        \"fromValue\": 4095.0,\n                        \"a\": 0.0625,\n                        \"b\": -90.9375\n                    }\n                ],\n                \"calibrationXYlist\": [\n                    {\n                        \"x\": 0.0,\n                        \"y\": 0.0\n                    },\n                    {\n                        \"x\": 115.0,\n                        \"y\": 10.0\n                    },\n                    {\n                        \"x\": 470.0,\n                        \"y\": 20.0\n                    },\n                    {\n                        \"x\": 791.0,\n                        \"y\": 30.0\n                    },\n                    {\n                        \"x\": 1092.0,\n                        \"y\": 40.0\n                    },\n                    {\n                        \"x\": 1353.0,\n                        \"y\": 50.0\n                    },\n                    {\n                        \"x\": 1607.0,\n                        \"y\": 60.0\n                    },\n                    {\n                        \"x\": 1849.0,\n                        \"y\": 70.0\n                    },\n                    {\n                        \"x\": 2092.0,\n                        \"y\": 80.0\n                    },\n                    {\n                        \"x\": 2216.0,\n                        \"y\": 85.0\n                    },\n                    {\n                        \"x\": 2340.0,\n                        \"y\": 90.0\n                    },\n                    {\n                        \"x\": 2459.0,\n                        \"y\": 95.0\n                    },\n                    {\n                        \"x\": 2583.0,\n                        \"y\": 100.0\n                    },\n                    {\n                        \"x\": 2840.0,\n                        \"y\": 110.0\n                    },\n                    {\n                        \"x\": 3062.0,\n                        \"y\": 120.0\n                    },\n                    {\n                        \"x\": 3313.0,\n                        \"y\": 130.0\n                    },\n                    {\n                        \"x\": 3560.0,\n                        \"y\": 140.0\n                    },\n                    {\n                        \"x\": 3983.0,\n                        \"y\": 158.0\n                    },\n                    {\n                        \"x\": 4095.0,\n                        \"y\": 165.0\n                    }\n                ]\n            },\n            \"param2\": {\n                \"param_key\": \"skif_text\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"formula\": \"S1\",\n            \"hide_in_reports\": false,\n            \"invalid\": false\n        },\n        {\n            \"id\": \"cb49b8d4-b8c1-42f8-9764-4d09f7ebc7fc\",\n            \"unit\": {\n                \"id\": \"1058bb08-618d-493e-95bd-862dfe36989b\"\n            },\n            \"name\": \"Зажигание\",\n            \"type\": {\n                \"key\": \"ignition\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик зажигания\"\n            },\n            \"param1\": {\n                \"param_key\": \"voltage_main\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [\n                    {\n                        \"fromValue\": 26500.0,\n                        \"a\": 0.0,\n                        \"b\": 1.0\n                    }\n                ],\n                \"calibrationXYlist\": [\n                    {\n                        \"x\": 26500.0,\n                        \"y\": 1.0\n                    }\n                ]\n            },\n            \"param2\": {\n                \"param_key\": \"skif_text\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"formula\": \"S1\",\n            \"hide_in_reports\": false,\n            \"invalid\": false\n        },\n        {\n            \"id\": \"c73c964e-2f94-4568-8bde-ea577b00791f\",\n            \"unit\": {\n                \"id\": \"1058bb08-618d-493e-95bd-862dfe36989b\"\n            },\n            \"name\": \"Пробег\",\n            \"type\": {\n                \"key\": \"mileage\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик пробега\"\n            },\n            \"param1\": {\n                \"param_key\": \"mileage_cur\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"param2\": {\n                \"param_key\": \"skif_text\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"formula\": \"S1\",\n            \"hide_in_reports\": false,\n            \"invalid\": false\n        },\n        {\n            \"id\": \"791d40fd-9d1e-463c-93a3-e602729c3ef1\",\n            \"unit\": {\n                \"id\": \"1058bb08-618d-493e-95bd-862dfe36989b\"\n            },\n            \"name\": \"Напряжение [mV]\",\n            \"type\": {\n                \"key\": \"power\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик напряжения\"\n            },\n            \"param1\": {\n                \"param_key\": \"voltage_main\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"param2\": {\n                \"param_key\": \"skif_text\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"formula\": \"S1\",\n            \"hide_in_reports\": false,\n            \"invalid\": false\n        }\n    ],\n    \"units_groups_names\": \"1\",\n    \"units_groups_ids\": \"92223530-e77c-4b51-aeac-0534de0276a5\",\n    \"custom_fields\": [\n        {\n            \"name\": \"S-2551\",\n            \"key\": \"S-2551\",\n            \"value\": \"#31\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_mileagekey\",\n            \"key\": \"counters_mileagekey\",\n            \"value\": \"gps_mileage\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_mileagecurr\",\n            \"key\": \"counters_mileagecurr\",\n            \"value\": \"0\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_mileageauto\",\n            \"key\": \"counters_mileageauto\",\n            \"value\": \"false\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_engienecurr\",\n            \"key\": \"counters_engienecurr\",\n            \"value\": \"0\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_gprscurr\",\n            \"key\": \"counters_gprscurr\",\n            \"value\": \"0\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_gprsauto\",\n            \"key\": \"counters_gprsauto\",\n            \"value\": \"false\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.advanced_speedlimit\",\n            \"key\": \"advanced_speedlimit\",\n            \"value\": \"130\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.advanced_urbspeedlimit\",\n            \"key\": \"advanced_urbspeedlimit\",\n            \"value\": \"60\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.advanced_dailyengine\",\n            \"key\": \"advanced_dailyengine\",\n            \"value\": \"0\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.tripdetector_movedetectkey\",\n            \"key\": \"tripdetector_movedetectkey\",\n            \"value\": \"speed\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.tripdetector_gpscorrect\",\n            \"key\": \"tripdetector_gpscorrect\",\n            \"value\": \"false\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.tripdetector_minsatellites\",\n            \"key\": \"tripdetector_minsatellites\",\n            \"value\": \"3\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.tripdetector_mintipdist\",\n            \"key\": \"tripdetector_mintipdist\",\n            \"value\": \"100\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_fillings_fillingstop\",\n            \"key\": \"fuel_fillings_fillingstop\",\n            \"value\": \"false\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_fillings_ignorefiltration\",\n            \"key\": \"fuel_fillings_ignorefiltration\",\n            \"value\": \"false\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_sensors_mergenameslevel\",\n            \"key\": \"fuel_sensors_mergenameslevel\",\n            \"value\": \"false\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_sensors_mergenamesconsum\",\n            \"key\": \"fuel_sensors_mergenamesconsum\",\n            \"value\": \"false\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_sensors_timelevel\",\n            \"key\": \"fuel_sensors_timelevel\",\n            \"value\": \"false\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_sensors_filtervalues\",\n            \"key\": \"fuel_sensors_filtervalues\",\n            \"value\": \"false\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_math_idling\",\n            \"key\": \"fuel_math_idling\",\n            \"value\": \"2\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_math_urbcycle\",\n            \"key\": \"fuel_math_urbcycle\",\n            \"value\": \"0\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_math_suburbcycle\",\n            \"key\": \"fuel_math_suburbcycle\",\n            \"value\": \"0\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_levelsensors\",\n            \"key\": \"fuel_level_levelsensors\",\n            \"value\": \"false\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_repivalid\",\n            \"key\": \"fuel_level_repivalid\",\n            \"value\": \"true\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_impulsefuel\",\n            \"key\": \"fuel_level_impulsefuel\",\n            \"value\": \"false\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_maximpulse\",\n            \"key\": \"fuel_level_maximpulse\",\n            \"value\": \"0\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_skipfirstzero\",\n            \"key\": \"fuel_level_skipfirstzero\",\n            \"value\": \"false\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_absolutefuel\",\n            \"key\": \"fuel_level_absolutefuel\",\n            \"value\": \"false\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_instantfuel\",\n            \"key\": \"fuel_level_instantfuel\",\n            \"value\": \"false\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Мин. время стоянки (сек)\",\n            \"key\": \"tripdetector_minparktime\",\n            \"value\": \"600\",\n            \"group\": \"cf_trips\",\n            \"sort\": 1,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Мин. объем заправки\",\n            \"key\": \"fuel_fillings_minfilling\",\n            \"value\": \"20\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 1,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Расход летом (л/100км.)\",\n            \"key\": \"fuel_consumption_summerconsump\",\n            \"value\": \"0\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 1,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Аналитик\",\n            \"key\": \"analyst\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 1,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Коэф. пробега\",\n            \"key\": \"advanced_mileagecoeff\",\n            \"value\": \"1.0\",\n            \"group\": \"cf_trips\",\n            \"sort\": 2,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Игнор-ть сообщ-я после начала движения\",\n            \"key\": \"fuel_fillings_msgignorestart\",\n            \"value\": \"60\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 2,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Расход зимой (л/100км.)\",\n            \"key\": \"fuel_consumption_winterconsump\",\n            \"value\": \"0\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 2,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Установщик\",\n            \"key\": \"installer\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 2,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Мин. скорость движ-я (км/ч)\",\n            \"key\": \"tripdetector_minmovespeed\",\n            \"value\": \"1\",\n            \"group\": \"cf_trips\",\n            \"sort\": 3,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Мин. время остановки для опр-ия слива\",\n            \"key\": \"fuel_fillings_minstaytheft\",\n            \"value\": \"60\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 3,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"На холостом ходу летом (л./час.)\",\n            \"key\": \"fuel_math_idlingsummer\",\n            \"value\": \"0\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 3,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Мин. объем слива\",\n            \"key\": \"fuel_fillings_minitheft\",\n            \"value\": \"25\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 4,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Дата установки(формат год-месяц-день, например 2019-03-07)\",\n            \"key\": \"install_date\",\n            \"value\": \"16.07.2019\",\n            \"group\": \"cf_etc\",\n            \"sort\": 4,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"На холостом ходу зимой (л./час.)\",\n            \"key\": \"fuel_math_idlingwinter\",\n            \"value\": \"0\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 4,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Мин. расст-ие поездки (м)\",\n            \"key\": \"tripdetector_mintripdist\",\n            \"value\": \"100\",\n            \"group\": \"cf_trips\",\n            \"sort\": 4,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Макс. интервал между сообщ-ми (сек)\",\n            \"key\": \"advanced_maxintervalmsg\",\n            \"value\": \"3600\",\n            \"group\": \"cf_trips\",\n            \"sort\": 5,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Коэф. при движении под нагрузкой\",\n            \"key\": \"fuel_math_coeffunderload\",\n            \"value\": \"0\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 5,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Место установки в ТС\",\n            \"key\": \"install_place\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 5,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Макс. расст-ие между сообщ-ми (м)\",\n            \"key\": \"tripdetector_maxdistancemsg\",\n            \"value\": \"1000\",\n            \"group\": \"cf_trips\",\n            \"sort\": 6,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Первый месяц зимы (январь-1)\",\n            \"key\": \"fuel_consumption_winterfrom\",\n            \"value\": \"11\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 6,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Серийный номер терминала\",\n            \"key\": \"serial_number\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 6,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Мин. время поездки (сек)\",\n            \"key\": \"tripdetector_mintriptime\",\n            \"value\": \"300\",\n            \"group\": \"cf_trips\",\n            \"sort\": 7,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Последний месяц зимы (январь-1)\",\n            \"key\": \"fuel_consumption_winterto\",\n            \"value\": \"3\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 7,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Серийный номер ДУТ\",\n            \"key\": \"serial_number_dut\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 7,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Стоимость (1 л.)\",\n            \"key\": \"fuel_price\",\n            \"value\": \"45\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 8,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Опр-ие движ-я\",\n            \"key\": \"key_tripdetector_movedetect\",\n            \"value\": \"speedkph\",\n            \"group\": \"cf_trips\",\n            \"sort\": 8,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Серийный номер пломбы ДУТ\",\n            \"key\": \"dut_seal_serial_number\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 8,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Определение пробега\",\n            \"key\": \"tripdetector_mileagedetect\",\n            \"value\": \"mileage_GPS\",\n            \"group\": \"cf_trips\",\n            \"sort\": 9,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Гос номер\",\n            \"key\": \"license_plate_number\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 9,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Определение моточасов\",\n            \"key\": \"key_motohourdetector\",\n            \"value\": \"ignition\",\n            \"group\": \"cf_motohours\",\n            \"sort\": 10,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Норма часов в день\",\n            \"key\": \"hours_rate\",\n            \"value\": \"8\",\n            \"group\": \"cf_etc\",\n            \"sort\": 10,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Дата блокировки(формат год-месяц-день, например 2019-03-07)\",\n            \"key\": \"block_date\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 11,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"КП\",\n            \"key\": \"kp\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 12,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"ДУТ\",\n            \"key\": \"dut\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 13,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Вторая sim\",\n            \"key\": \"second_sim\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 14,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Серийный номер ДУТ 1\",\n            \"key\": \"serial_number_dut_1\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 15,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Серийный номер ДУТ 2\",\n            \"key\": \"serial_number_dut_2\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 16,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Марка машины\",\n            \"key\": \"brand_name\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 17,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Вид топлива (бенз., д/т)\",\n            \"key\": \"fuel_type\",\n            \"value\": \"\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 18,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Марка горючего\",\n            \"key\": \"fuel_mark\",\n            \"value\": \"\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 19,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Код марки\",\n            \"key\": \"brand_code\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 20,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Видео устройство\",\n            \"key\": \"video_device_name\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 21,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"ID-видео устройства\",\n            \"key\": \"video_device_id\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 22,\n            \"show_in_monitoring\": false\n        },\n        {\n            \"name\": \"Камеры\",\n            \"key\": \"video_cameras\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 23,\n            \"show_in_monitoring\": false\n        }\n    ],\n    \"drivers\": [\n        {\n            \"id\": \"1e5e4b2e-8fc6-405f-bed4-db5742327d4b\",\n            \"unit\": {\n                \"id\": \"1058bb08-618d-493e-95bd-862dfe36989b\",\n                \"name\": \"Hitachi XXXX\"\n            },\n            \"user_id\": \"bd3b26b7-506d-4cc6-8ab6-bf4cd1b9a39c\",\n            \"user\": {\n                \"id\": \"bd3b26b7-506d-4cc6-8ab6-bf4cd1b9a39c\"\n            },\n            \"date_from\": \"2022-10-03 03:00:00\",\n            \"date_to\": \"2022-10-04 03:00:00\",\n            \"custom_fields\": []\n        },\n        {\n            \"id\": \"292a5e8d-970c-4dd5-97fb-c436f4767adb\",\n            \"unit\": {\n                \"id\": \"1058bb08-618d-493e-95bd-862dfe36989b\",\n                \"name\": \"Hitachi XXXX\"\n            },\n            \"user_id\": \"bd3b26b7-506d-4cc6-8ab6-bf4cd1b9a39c\",\n            \"user\": {\n                \"id\": \"bd3b26b7-506d-4cc6-8ab6-bf4cd1b9a39c\"\n            },\n            \"date_from\": \"2022-10-05 03:00:00\",\n            \"date_to\": \"2022-10-10 03:00:00\",\n            \"custom_fields\": []\n        }\n    ],\n    \"trailers\": [\n        {\n            \"id\": \"4a6ed58d-ac43-4cfa-918a-8a9e2959e728\",\n            \"unit\": {\n                \"id\": \"1058bb08-618d-493e-95bd-862dfe36989b\"\n            },\n            \"trailer\": {\n                \"id\": \"fcaf9265-5a5b-4d35-8b00-ee146b8dc8f6\",\n                \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n                \"name\": \"Прицеп123\",\n                \"code\": \"tas\",\n                \"description\": \"Сеялка\",\n                \"width\": 200.0,\n                \"custom_fields\": [\n                    {\n                        \"name\": \"1\",\n                        \"key\": \"1\",\n                        \"value\": \"1\",\n                        \"group\": \"custom\",\n                        \"sort\": 0,\n                        \"show_in_monitoring\": false\n                    }\n                ]\n            },\n            \"date_from\": \"2022-10-03 03:00:00\",\n            \"date_to\": \"2022-10-04 03:00:00\"\n        },\n        {\n            \"id\": \"b3b3731c-c1dd-40b4-9812-0658b4b4429b\",\n            \"unit\": {\n                \"id\": \"1058bb08-618d-493e-95bd-862dfe36989b\"\n            },\n            \"trailer\": {\n                \"id\": \"d0bc0903-702b-4d96-826a-e26860681356\",\n                \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n                \"name\": \"Прицеп567\",\n                \"code\": \"1\",\n                \"description\": \"1111\",\n                \"width\": 1.0,\n                \"custom_fields\": []\n            },\n            \"date_from\": \"2022-10-05 03:00:00\",\n            \"date_to\": \"2022-10-10 03:00:00\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units/:unit_id","description":"<p><strong>Обновление объекта</strong></p>\n<hr />\n<p>Дерево объекта должно быть полным (с обновленными полями). Поля, которые будут отсутствовать в запросе, затрутся на null.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Тот же, что и при <a href=\"https://documenter.getpostman.com/view/13147/RztmtVLV?version=latest#8d9df07b-752a-4b59-ac91-219b25539c4e\">GET /units</a> - возвращает обновленное дерево объекта.</p>\n","urlObject":{"path":["api_v1","units",":unit_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID объекта</p>\n","type":"text/plain"},"type":"any","value":"","key":"unit_id"}]}},"response":[],"_postman_id":"acd40524-9445-4e06-b161-8b69b081917a"},{"name":"/units/:id","id":"046603ef-c541-41eb-ab46-234e6424bee5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n\t\"custom_fields\": [{\n\t\t\t\"key\": \"video_device_name\",\n\t\t\t\"value\": \"CARVIS\"\n\t\t},\n\t\t{\n\t\t\t\"key\": \"brand_code\",\n\t\t\t\"value\": \"123432\"\n\t\t},\n\t\t{\n\t\t\t\"key\": \"tripdetector_mintriptime\",\n\t\t\t\"value\": 70\n\t\t}\n\t]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units/:id","description":"<p><strong>Обновление указанных полей объекта</strong></p>\n<hr />\n<p>Пока можно указать только custom_fields</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong><br />PATCH /units/836db03e-7475-4628-9323-0ca506e2061f</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"custom_fields\": [{\n            \"key\": \"video_device_name\",\n            \"value\": \"CARVIS\"\n        },\n        {\n            \"key\": \"brand_code\",\n            \"value\": \"123432\"\n        },\n        {\n            \"key\": \"tripdetector_mintriptime\",\n            \"value\": 70\n        }\n    ]\n}\n\n</code></pre><p>Список все возможных custom_fields <a href=\"https://documenter.getpostman.com/view/13147/RztmtVLV?version=latest#05ee6204-6755-48ec-aeac-ba53f1041e9e\">GET /custom_fields</a></p>\n<p>Для пользовательских полей передавайте одинаковые key и name</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Тот же, что и при <a href=\"https://documenter.getpostman.com/view/13147/RztmtVLV?version=latest#8d9df07b-752a-4b59-ac91-219b25539c4e\">GET /units</a> - возвращает обновленное дерево объекта.</p>\n","urlObject":{"path":["api_v1","units",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID объекта</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"046603ef-c541-41eb-ab46-234e6424bee5"},{"name":"/units/recovery/:unit_id","id":"2c2fb52a-9d60-497b-8d29-4e85ff63ebd1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"{{base_url}}/api_v1/units/recovery/:unit_id","description":"<p><strong>Восстанавливает ранее удаленный юнит</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong><br />200 OK</p>\n","urlObject":{"path":["api_v1","units","recovery",":unit_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID объекта</p>\n","type":"text/plain"},"type":"any","value":"","key":"unit_id"}]}},"response":[],"_postman_id":"2c2fb52a-9d60-497b-8d29-4e85ff63ebd1"},{"name":"/units/:unit_id","id":"479ceb7b-7d64-4d82-812c-ea51940f8f1d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/units/:unit_id","description":"<p><strong>Удаление объекта</strong></p>\n<hr />\n<p>Физически объект не удаляется из базы - флаг is_delete переводится в состояние true (необходимо для возможного восстановления объекта).</p>\n<hr />\n<p><strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p>В случае успеха - ответ '200'</p>\n","urlObject":{"path":["api_v1","units",":unit_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID объекта</p>\n","type":"text/plain"},"type":"any","value":"","key":"unit_id"}]}},"response":[],"_postman_id":"479ceb7b-7d64-4d82-812c-ea51940f8f1d"},{"name":"/units/physical/:unit_id","id":"0ed3b299-94d2-4809-b27c-071f208c49f4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/units/physical/:unit_id","description":"<p><strong>Удаление объекта безвозвратно</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p>В случае успеха - ответ '200'</p>\n","urlObject":{"path":["api_v1","units","physical",":unit_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID объекта</p>\n","type":"text/plain"},"type":"any","value":"","key":"unit_id"}]}},"response":[],"_postman_id":"0ed3b299-94d2-4809-b27c-071f208c49f4"},{"name":"/units?ids=ids","id":"bd682aa6-069b-426c-8bd3-5a3e8aa26200","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/units?ids=","description":"<p><strong>Планирование удаления объектов</strong></p>\n<hr />\n<p>Планирование удаления нескольких объектов, в ids указать список идентификаторов удаляемых объектов.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong><br />DELETE /units?ids=eece8fbc-0bad-4a2d-ac24-62573860dda0,fd848416-bf81-4a92-9c01-922b2da4dd5a</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<p>В случае успеха - ответ '200', в теле ответа ID задачи удаления, с помощью которого можно отменить удаление.<br />В случае ошибки - ответ 422, в теле текст ошибки.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"ace239ee-b7ab-42ee-9d57-d749a23987c6\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","units"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"bd682aa6-069b-426c-8bd3-5a3e8aa26200"},{"name":"/units","id":"3c053642-a54a-43c1-926b-c9749f7883f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"{\n    \"ids\": [\"30d19f34-2f60-406c-897f-2083ba44e993\"]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units","description":"<p><strong>Планирование удаления объектов</strong></p>\n<hr />\n<p>Планирование удаления нескольких объектов, в поле ids в теле запроса необходимо указать список идентификаторов удаляемых объектов.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong><br />DELETE /units</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"ids\": [\"eece8fbc-0bad-4a2d-ac24-62573860dda0\",\"fd848416-bf81-4a92-9c01-922b2da4dd5a\"]\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<p>В случае успеха - ответ 200, в теле ответа ID задачи удаления, с помощью которого можно отменить удаление.<br />В случае ошибки - ответ 422, в теле текст ошибки.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"ace239ee-b7ab-42ee-9d57-d749a23987c6\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","units"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3c053642-a54a-43c1-926b-c9749f7883f6"},{"name":"/units/services?ids=:ids","id":"6dce08c8-6982-4b3e-b8fb-34fe9aca5790","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/units/services?ids=","description":"<p><strong>Поиск сервисов по ID (через запятую)</strong></p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Возвращает массив найденных сервисов. Если параметр unit_id пустой, значит данный сервис не привязан к какому-либо юниту.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>    [  \n         {  \n            \"id\":\"e257e819-5d09-4da2-8ee4-9c072fef6de0\",\n            \"unit_id\":\"2bcd95c4-d520-4203-89fc-b0d3a76a7d6b\",\n            \"name\":\"testService\",\n            \"description\":\"dumb service for test\",\n            \"isActiveKm\":true,\n            \"intervalKm\":10000,\n            \"lastKm\":45000,\n            \"isActiveDays\":true,\n            \"intervalDays\":300,\n            \"lastDays\":\"2019-06-03\",\n            \"activeKm\":true,\n            \"activeDays\":true\n         },\n         {...}\n    ]\n\n</code></pre><hr />\n<p>﻿<strong>Роль:</strong> Читатель и выше.</p>\n","urlObject":{"path":["api_v1","units","services"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"6dce08c8-6982-4b3e-b8fb-34fe9aca5790"},{"name":"/units/:unit_id/services","id":"b114d108-11f0-433f-8e58-40d4ae7d6c58","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/units/:unit_id/services","description":"<p><strong>Поиск всех сервисов юнита</strong></p>\n<hr />\n<p>Возвращает все привязанные к юниту сервисы.</p>\n<p>Ответ аналогичный <a href=\"https://documenter.getpostman.com/view/13147/RztmtVLV?version=latest#6dce08c8-6982-4b3e-b8fb-34fe9aca5790\">GET /units/services?ids=:ids</a></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Читатель и выше.</p>\n","urlObject":{"path":["api_v1","units",":unit_id","services"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID объекта</p>\n","type":"text/plain"},"type":"any","value":"","key":"unit_id"}]}},"response":[],"_postman_id":"b114d108-11f0-433f-8e58-40d4ae7d6c58"},{"name":"/units/:unit_id/services","id":"b1ffc9b0-1783-41ca-bf97-a6227919c280","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"testService\",\n    \"description\": \"dumb service for test\",\n    \"isActiveKm\": \"true\",\n    \"intervalKm\": \"10000\",\n    \"lastKm\": \"45000\",\n    \"isActiveDays\": \"true\",\n    \"intervaldays\": \"300\",\n    \"lastdays\": \"2019-06-13\"\n}"},"url":"{{base_url}}/api_v1/units/:unit_id/services","description":"<p><strong>Отдельное создание сервиса (с привязкой к юниту)</strong></p>\n<hr />\n<p>Данный вариант создания сервиса позволяет создать сервис для юнита через отдельный функционал и привязать их друг к другу, используя json форму только сервиса.</p>\n<p>Также его можно создать при создании юнита (<a href=\"https://documenter.getpostman.com/view/13147/RztmtVLV?version=latest#8d9df07b-752a-4b59-ac91-219b25539c4e\">POST /units</a>), заполнив в json'е юнита поле 'services', без указания id сервиса. Это позовлит создать и юнит и привязанный к нему сервис одномоментно.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p>Пример создания сервиса для юнита с id = '4ca6ed64-3b58-493c-9ac9-862fe1a01f88' по УРЛу /units/4ca6ed64-3b58-493c-9ac9-862fe1a01f88/services:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"name\": \"testService\" // наименование сервиса,\n    \"description\": \"dumb service for test\" // описание,\n    \"isActiveKm\": \"true\" // активно или нет по км,\n    \"intervalKm\": \"10000\" // периодичность по км,\n    \"lastKm\": \"45000\" // последний раз по км,\n    \"isActiveDays\": \"true\" // активно или нет по дням,\n    \"intervaldays\": \"300\" // периодичность по дням,\n    \"lastdays\": \"2019-06-13\" // последний раз по дням (Формат yyyy-MM-dd)\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>   {  \n      \"id\":\"2c705ae1-d99c-4be3-b564-8db5ac387caf\",\n      \"unit_id\":\"4ca6ed64-3b58-493c-9ac9-862fe1a01f88\",\n      \"name\":\"testService\",\n      \"description\":\"dumb service for test\",\n      \"isActiveKm\":true,\n      \"intervalKm\":10000,\n      \"lastKm\":45000,\n      \"isActiveDays\":true,\n      \"intervalDays\":300,\n      \"lastDays\":\"2019-06-03\"\n   }\n\n</code></pre>","urlObject":{"path":["api_v1","units",":unit_id","services"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID объекта</p>\n","type":"text/plain"},"type":"any","value":"","key":"unit_id"}]}},"response":[],"_postman_id":"b1ffc9b0-1783-41ca-bf97-a6227919c280"},{"name":"/units/services","id":"3b7ade96-3cc0-4f96-b90b-2935f1ace7d1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"{{base_url}}/api_v1/units/services","description":"<p><strong>Отдельное создание сервиса (без привязки к юниту)</strong></p>\n<hr />\n<p>То же самое, что и метод (POST /units/:unit_id/services), но без привязки к какому-то конкретному объекту.</p>\n<p>Ответ будет аналогичен методу выше (POST /units/:unit_id/services), но поле 'unit_id' будет пустым.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","units","services"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3b7ade96-3cc0-4f96-b90b-2935f1ace7d1"},{"name":"/units/sensors?ids=:ids","id":"862c1e9e-5ac4-4145-a9bf-66b5644fa8f8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/units/sensors?ids=","description":"<p><strong>Поиск датчиков по ID (через запятую)</strong></p>\n<hr />\n<p>То же самое что и в Сервисах <a href=\"https://documenter.getpostman.com/view/13147/RztmtVLV?version=latest#6dce08c8-6982-4b3e-b8fb-34fe9aca5790\">GET /units/services?ids=:ids</a></p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[{\n                \"id\": \"3c5b7072-abd5-4095-8be7-02d4b75751c0\",\n                \"unit_id\": \"72154648-1f0d-4acc-a74d-81c7926e4483\",\n                \"name\": \"Зажигание\",.\n                \"typekey\": \"ignition\",\n                \"param1\":{ \n                    \"param_key\": \"dut_485_1\",\n                    \"calibrationABlist\": \n                        [{ \"fromValue\": 1.0, \"a\": 2.0, \"b\": 3.0 }], \n                    \"calibrationXYlist\": \n                        [{ \"x\": 1.0, \"y\": 5.0 }]\n                }, \n                \"param2\":{ \n                    \"param_key\": \"dut_485_2\", \n                    \"calibrationABlist\": \n                        [{ \"fromValue\": 1.0, \"a\": 1.0, \"b\": 1.0 }], \n                    \"calibrationXYlist\":\n                        [{ \"x\": 1.0, \"y\": 2.0 }]\n                },\n                \"formula\": \"S1\"\n        },\n        {...}\n        ]\n\n</code></pre>","urlObject":{"path":["api_v1","units","sensors"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"862c1e9e-5ac4-4145-a9bf-66b5644fa8f8"},{"name":"/units/:unit_id/sensors","id":"292ccc1d-1711-4e27-aad8-b42cb6a43085","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/units/:unit_id/sensors","description":"<p><strong>Поиск всех датчиков объекта</strong></p>\n<hr />\n<p>То же самое, что и в Сервисах <a href=\"https://documenter.getpostman.com/view/13147/RztmtVLV?version=latest#b114d108-11f0-433f-8e58-40d4ae7d6c58\">GET /units/:unit_id/services</a></p>\n<p>Ответ аналогичный методу выше <a href=\"https://documenter.getpostman.com/view/13147/RztmtVLV?version=latest#862c1e9e-5ac4-4145-a9bf-66b5644fa8f8\">GET /units/sensors?ids=:ids</a></p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n","urlObject":{"path":["api_v1","units",":unit_id","sensors"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID объекта</p>\n","type":"text/plain"},"type":"any","value":"","key":"unit_id"}]}},"response":[],"_postman_id":"292ccc1d-1711-4e27-aad8-b42cb6a43085"},{"name":"/units/:unit_id/sensors","id":"1be6ba1c-a91a-44d1-b892-2e618c64d889","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"{{base_url}}/api_v1/units/:unit_id/sensors","description":"<p><strong>Отдельное создание датчика (с привязкой к объекту)</strong></p>\n<hr />\n<p>Аналогично <a href=\"https://documenter.getpostman.com/view/13147/RztmtVLV?version=latest#b1ffc9b0-1783-41ca-bf97-a6227919c280\">POST /units/:unit_id/services</a></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"name\": \"Зажигание\" // Название датчика ,\n    \"type\": {\"key\":\"ignition\"} // тип датчика (из dictrionary, все ключи с типом \"sensor_type\"),\n    \"param1\":{ // Параметр №1 сенсора. Под примером доп.инфа.\n            \"param_key\": \"dut_485_1\", // ключ параметрa, должен быть в списке разрешенных ключей для конкретного терминала (/units/sensors/params)\n            \"calibrationABlist\": // Лист калибровок AB\n                [{\n                    \"fromValue\": 1.0, // нижняя граница\n                    \"a\": 2.0,    // коэффициент А\n                    \"b\": 3.0    // коэффициент B\n                }], \n            \"calibrationXYlist\": // Лист калибровок AB\n                [{\n                    \"x\": 1.0,    // коэффициент X\n                    \"y\": 5.0    // коэффициент Y\n                }]\n    }, \n    \"param2\":{ // Параметр №2 сенсора. Под примером доп.инфа.\n            \"param_key\": \"dut_485_2\", \n            \"calibrationABlist\": \n                [{\n                    \"fromValue\": 1.0,\n                    \"a\": 1.0, \n                    \"b\": 1.0\n                }], \n            \"calibrationXYlist\":\n                [{\n                    \"x\": 1.0,\n                    \"y\": 2.0\n                }]\n    }, \n    \"formula\": \"EXPR\" // формула связки параметра 1 и параметра 2.         Полный список возможных значений лежит в Dictionaries по ключу \"formula\". \n    \"expression\": \"$param + ${Пробег} / 100\"// выражения формулы, это поле нужно только в случае formula=EXPR и имеет следующие синтаксисы 1) обращение к значениям любого параметра из сырых данных -  #param333 (обращение к параметру param333)\n2) обращение к параметру текущего датчика - $param\nконстанты - 1000 (константа 1000)\n3) обращение к значению других датчиков ${Название датчика}\n4) арифметические операции - + * / ^(степень)\nскобки - ( или ) \n}\n\n</code></pre><p>Описание param1, param2 сенсора: Данные параметры являются опциональными и если пользователь их не заполнил, то передавать их вообще не надо. Перед сохранением param1 и param2 происходит пересчет их внутренних калибровочных листов (калибровкиAB и КалибровкиXY). Лист КалибровокAB и лист калибровокXY у конкретного параметра взаимосвязаны и порождают друг друга по определенным формулам, т.е. из листа калибровок XY можно вычислить лист калибровок AB и наоборот.</p>\n<p>В связи с этим РЕКОМЕНДУЕТСЯ перед тем, как сделать запрос, предварительно использовать метод <a href=\"https://documenter.getpostman.com/view/13147/RztmtVLV?version=latest#e6cca9ca-c162-4c2a-ae5b-a762aa3a6500\">POST /units/sensors/recalc</a> для пересчета этих листов и передавать в calibrationABlist и calibrationXYlist результат работы этого метода.</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n                \"id\": \"3c5b7072-abd5-4095-8be7-02d4b75751c0\",\n                \"unit_id\": \"72154648-1f0d-4acc-a74d-81c7926e4483\",\n                \"name\": \"Зажигание\",.\n                \"typekey\": \"ignition\",\n                \"param1\":{ \n                    \"param_key\": \"dut_485_1\",\n                    \"calibrationABlist\": \n                        [{ \"fromValue\": 1.0, \"a\": 2.0, \"b\": 3.0 }], \n                    \"calibrationXYlist\": \n                        [{ \"x\": 1.0, \"y\": 5.0 }]\n                }, \n                \"param2\":{ \n                    \"param_key\": \"dut_485_2\", \n                    \"calibrationABlist\": \n                        [{ \"fromValue\": 1.0, \"a\": 1.0, \"b\": 1.0 }], \n                    \"calibrationXYlist\":\n                        [{ \"x\": 1.0, \"y\": 2.0 }]\n                },\n                \"formula\": \"S1\"\n        }\n\n</code></pre>","urlObject":{"path":["api_v1","units",":unit_id","sensors"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID объекта</p>\n","type":"text/plain"},"type":"any","value":"","key":"unit_id"}]}},"response":[],"_postman_id":"1be6ba1c-a91a-44d1-b892-2e618c64d889"},{"name":"/units/sensors","id":"1ab2dbd6-e391-4ca2-b9ca-aac4a11bf975","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"{{base_url}}/api_v1/units/sensors","description":"<p><strong>Отдельное создание датчика (без привязки к объекту)</strong></p>\n<hr />\n<p>Аналогично <a href=\"https://documenter.getpostman.com/view/13147/RztmtVLV?version=latest#3b7ade96-3cc0-4f96-b90b-2935f1ace7d1\">POST /units/services</a></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","units","sensors"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"1ab2dbd6-e391-4ca2-b9ca-aac4a11bf975"},{"name":"/units/:id/files?url=:url","id":"b7505f8f-caa1-4905-a8ea-226ca56334ba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/units/files?url=/home/mih/photos/photos/359633107825189/2021_09/2021_09_08_06_52_50_0.jpg","description":"<p><strong>Получение файла объекта по URL</strong></p>\n<hr />\n<p><strong>Параметры:</strong><br />id - ID объекта<br />url - URL файла</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n","urlObject":{"path":["api_v1","units","files"],"host":["{{base_url}}"],"query":[{"key":"url","value":"/home/mih/photos/photos/359633107825189/2021_09/2021_09_08_06_52_50_0.jpg"}],"variable":[]}},"response":[],"_postman_id":"b7505f8f-caa1-4905-a8ea-226ca56334ba"},{"name":"/units/sensors/recalc","id":"e6cca9ca-c162-4c2a-ae5b-a762aa3a6500","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"[\n    {\n        \"x\": 11,\n        \"y\": 22\n    },\n    {\n        \"x\": 33,\n        \"y\": 5\n    },\n    {\n        \"x\": 55,\n        \"y\": 77\n    },\n    {\n        \"x\": 1011,\n        \"y\": 2022\n    }\n]","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units/sensors/recalc","description":"<p><strong>Пересчет calibrationABlist или calibrationXYlist</strong></p>\n<hr />\n<p>Метод для пересчета calibrationABlist или calibrationXYlist. ДАННЫЕ НИГДЕ НЕ СОХРАНЯЮТСЯ. Метод изолированный, создан как вспомогательный.<br />В теле запроса передается массив, либо calibrationABlist, либо calibrationXYlist</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p>Пример запроса с calibrationABlist:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"[\n    {'fromValue':5.0, 'a': 3.0, 'b': 12.0}, \n    {'fromValue':1.0, 'a': 0.0, 'b': 1.0}, \n    {'fromValue':38.0, 'a': 1.0, 'b': 0.0}\n]\"\n\n</code></pre><p>Пример запроса с calibrationXYlist:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"[\n    {'x': 3.0, 'y': 12.0}, \n    {'x': 0.0, 'y': 1.0}, \n    {'x': 1.0, 'y': 0.0}\n]\"\n\n</code></pre><hr />\n<p>Ответ всегда одного типа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>    \"{\n        \"calibrationABlist\":\n        [\n            {\"fromValue\":1.0,\"a\":0.0,\"b\":1.0}, \n            {\"fromValue\":5.0,\"a\":3.0,\"b\":12.0}, \n            {\"fromValue\":38.0,\"a\":1.0,\"b\":0.0}\n        ],\n        \"calibrationXYlist\":\n        [\n            {\"x\":1.0,\"y\":1.0}, \n            {\"x\":5.0,\"y\":27.0}, \n            {\"x\":38.0,\"y\":38.0}\n        ]\n    }\"\n\n</code></pre><p>либо, если ошибка, со статусом 422.</p>\n","urlObject":{"path":["api_v1","units","sensors","recalc"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e6cca9ca-c162-4c2a-ae5b-a762aa3a6500"},{"name":"/units/sensors/validate?terminal_type=<terminal_type_key>","id":"cdecd673-880c-4aaa-bdbf-bd6b88398571","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"[\n    {\n\t\t\"name\": \"dasd\",\n\t\t\"type\": {\n\t\t\t\"key\": \"abs_motohours\",\n\t\t\t\"type\": \"sensor_type\",\n\t\t\t\"value\": \"Абсолютные моточасы\"\n\t\t},\n\t\t\"param1\": {\n\t\t\t\"param_key\": \"acc_x\",\n\t\t\t\"smoothing\": 0.0,\n\t\t\t\"calibrationABlist\": [],\n\t\t\t\"calibrationXYlist\": []\n\t\t},\n\t\t\"param2\": {\n\t\t\t\"param_key\": \"\",\n\t\t\t\"smoothing\": 0.0,\n\t\t\t\"calibrationABlist\": [],\n\t\t\t\"calibrationXYlist\": []\n\t\t},\n\t\t\"formula\": \"S1\",\n\t\t\"hide_in_reports\": false,\n\t\t\"invalid\": false\n\t}, {\n\t\t\"name\": \"XXXX\",\n\t\t\"type\": {\n\t\t\t\"key\": \"abs_motohours\",\n\t\t\t\"type\": \"sensor_type\",\n\t\t\t\"value\": \"Абсолютные моточасы\"\n\t\t},\n\t\t\"param1\": {\n\t\t\t\"param_key\": \"acc_y\",\n\t\t\t\"smoothing\": 0.0,\n\t\t\t\"calibrationABlist\": [],\n\t\t\t\"calibrationXYlist\": []\n\t\t},\n\t\t\"param2\": {\n\t\t\t\"param_key\": \"ewqeqwewqe\",\n\t\t\t\"smoothing\": 0.0,\n\t\t\t\"calibrationABlist\": [],\n\t\t\t\"calibrationXYlist\": []\n\t\t},\n\t\t\"formula\": \"EXPR\",\n\t\t\"expression\": \"$param1 + #fdsfdsf\",\n\t\t\"hide_in_reports\": false\n\t}\n]","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units/sensors/validate?terminal_type=","description":"<p><strong>Валидация списка датчиков</strong></p>\n<hr />\n<p>В запросе отправляется массив датчиков .<br />terminal_type - ключ терминала объекта.</p>\n<p>В ответе, если всё успешно, возвращается статус <code>200</code> с пустым телом. В случае ошибки возвращается соответствующий код ошибки и её описание.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"name\": \"Sensor1\",\n        \"type\": {\n            \"key\": \"abs_motohours\",\n            \"type\": \"sensor_type\",\n            \"value\": \"Абсолютные моточасы\"\n        },\n        \"param1\": {\n            \"param_key\": \"acc_x\",\n            \"smoothing\": 0.0,\n            \"calibrationABlist\": [],\n            \"calibrationXYlist\": []\n        },\n        \"param2\": {\n            \"param_key\": \"\",\n            \"smoothing\": 0.0,\n            \"calibrationABlist\": [],\n            \"calibrationXYlist\": []\n        },\n        \"formula\": \"S1\",\n        \"hide_in_reports\": false,\n        \"invalid\": false\n    }, {\n        \"name\": \"Sensor2\",\n        \"type\": {\n            \"key\": \"abs_motohours\",\n            \"type\": \"sensor_type\",\n            \"value\": \"Абсолютные моточасы\"\n        },\n        \"param1\": {\n            \"param_key\": \"acc_y\",\n            \"smoothing\": 0.0,\n            \"calibrationABlist\": [],\n            \"calibrationXYlist\": []\n        },\n        \"param2\": {\n            \"param_key\": \"ewqeqwewqe\",\n            \"smoothing\": 0.0,\n            \"calibrationABlist\": [],\n            \"calibrationXYlist\": []\n        },\n        \"formula\": \"EXPR\",\n        \"expression\": \"$param1 + #fdsfdsf\",\n        \"hide_in_reports\": false\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","units","sensors","validate"],"host":["{{base_url}}"],"query":[{"key":"terminal_type","value":""}],"variable":[]}},"response":[],"_postman_id":"cdecd673-880c-4aaa-bdbf-bd6b88398571"},{"name":"/units/sensors/params","id":"44a8a2ca-871e-4193-8713-961a7d048801","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/units/sensors/params","description":"<p><strong>Получение списка параметров датчика по каждой марке терминала</strong></p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"[{\n  \"navtelecom\":\"stamp, datepoint, imei_md5, latlon, bytes_out, bytes_in, speedkph, satellites, angle, altitude, pwr_ext, out_1_st\"\n },\n {\n  \"mtstracker\":\"stamp, datepoint, imei_md5, latlon, bytes_out, bytes_in, speedkph, satellites, angle, mileage_cur, navi_sensor_st_rec, navi_sensor_st_valid, acc_x, acc_y, acc_z, acc_max_minus, \n\"}]\"\n\n</code></pre>","urlObject":{"path":["api_v1","units","sensors","params"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"44a8a2ca-871e-4193-8713-961a7d048801"},{"name":"/point","id":"3d679dae-ca3e-458a-9645-0c334f42d5d3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"units\": [ {\"id\": \"9e86f2e9-3429-4674-945e-9519404451c0\"} ],\n    \"from\": \"2020-01-06 13:26:42\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/point","description":"<p><strong>Метод возвращает информацию о конкретной точке объекта (аннотация точки).</strong></p>\n<hr />\n<p>Аннотация содержит в себе краткую информацию о точке:<br />datepoint - время данной точки.<br />speed - скорость в этой точке.<br />_marker_latlon - координата в формате [longitude, latitude].<br />&lt;...далее идут все датчики юнита, со своими показаниями, пересчитанными по формуле. key - id датчика, name - имя...&gt;</p>\n<p>Параметр \"from\" опциональный. При его отсутствии будет возвращена последняя точка юнита.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{  \n    'units': [ {'id': '9e86f2e9-3429-4674-945e-9519404451c0'} ], // берется только первый в массиве id, поэтому передавать несколько id не имеет смысла.\n    'from': '2020-01-06 13:26:42'\n}\n\n</code></pre><p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"columns\": [\n        {\n            \"key\": \"datepoint\",\n            \"name\": \"datepoint\",\n            \"value\": \"2019-07-22 08:19:35\"\n        },\n        {\n            \"key\": \"speed\",\n            \"name\": \"speed\",\n            \"value\": 0\n        },\n        {\n            \"key\": \"_marker_latlon\",\n            \"name\": \"_marker_latlon\",\n            \"value\": [\n                63.534103,\n                53.1473\n            ]\n        },\n        {\n            \"key\": \"43eb314b-2eba-4f3f-aff8-2178a8d2431c\",\n            \"name\": \"Топливо\",\n            \"value\": 21505.1559\n        },\n        {\n            \"key\": \"7bbd2122-7078-4b5e-91b1-a1cfc84480cd\",\n            \"name\": \"Напряжение\",\n            \"value\": 24.05\n        },\n        {\n            \"key\": \"b4274fde-2f64-4144-9cfb-3a1223ba0ceb\",\n            \"name\": \"Зажигание\",\n            \"value\": 0.0\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","point"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3d679dae-ca3e-458a-9645-0c334f42d5d3"},{"name":"/units/list","id":"f2c54875-552f-4f9b-b54d-406ff0c944af","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"fields\": [\"name\", \"custom_fields.fuel_fillings_minfilling\", \"custom_fields.serial_number\", \"custom_fields.tripdetector_minparktime\", \"custom_fields.tripdetector_minmovespeed\"],\n    \"conditions\": [\n        {\n            \"field\": \"name\",\n            \"value\": \"НОДГП\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units/list","description":"<p><strong>Получение объектов по фильтру</strong></p>\n<hr />\n<p>Аналогично запросу POST /users/list</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>from - с какого найденного элемента выдавать результат.</p>\n<p>count - максимальное число элементов.</p>\n<p>sortField - поле сортировки, возможные значения:<br />[\"name\", \"created\", \"type.key\", \"terminal_type.key\"]</p>\n<p>sortDesc - сортировка по убыванию? значения \"true\", \"false\".</p>\n<p>conditions - условие отбора в виде массива [ {\"field\":\"значение\", \"value\":\"значение\"}, {... и т.д. ...} ].<br />значения для field - name (можно искать по неполному слову),<br />\"phonenumber\" - часть номера телефона,<br />\"imei\" - часть IMEI,<br />\"type.key\" - ключ тип объекта,<br />\"terminal_type.key\" - ключ тип терминала,<br />\"custom_fields\" - ,<br />\"sensors.name\" - название датчика,<br />\"sensors.param\" - параметр датчика,<br />\"sensors.type.key\" - ключ тип датчика,<br />\"events\" - события</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Получить первые 10 объектов, отсортированные по возрастанию по имени</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 10,\n    \"sortField\": \"name\",\n    \"sortDesc\": \"false\",\n    \"fields\": [\"name\",  \"custom_fields.fuel_fillings_minfilling\", \"custom_fields.serial_number\"],\n    \"conditions\": [\n        {\n            \"field\": \"name\",\n            \"value\": \"НОДГП\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 150,\n    \"list\": [\n         {\n            \"id\": \"55e41fea-614d-4103-9a82-887d15f76013\",\n            \"name\": \"НОДГП-1 (НОДГП-1) Toyota Camry 110 АТ 03 Кокшетау\",\n            \"services\": [],\n            \"sensors\": [],\n            \"custom_fields\": [\n                {\n                    \"name\": \"Мин. объем заправки\",\n                    \"key\": \"fuel_fillings_minfilling\",\n                    \"value\": \"10\",\n                    \"group\": \"cf_fuel\",\n                    \"sort\": 1,\n                    \"show_in_monitoring\": false\n                },\n                {\n                    \"name\": \"Мин. время стоянки (сек)\",\n                    \"key\": \"tripdetector_minparktime\",\n                    \"value\": \"300\",\n                    \"group\": \"cf_trips\",\n                    \"sort\": 1,\n                    \"show_in_monitoring\": false\n                },\n                {\n                    \"name\": \"Мин. скорость движ-я (км/ч)\",\n                    \"key\": \"tripdetector_minmovespeed\",\n                    \"value\": \"3\",\n                    \"group\": \"cf_trips\",\n                    \"sort\": 3,\n                    \"show_in_monitoring\": false\n                },\n                {\n                    \"name\": \"Серийный номер терминала\",\n                    \"key\": \"serial_number\",\n                    \"value\": \"265100022886\",\n                    \"group\": \"cf_etc\",\n                    \"sort\": 6,\n                    \"show_in_monitoring\": false\n                }\n            ]\n        },\n        ...\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","units","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"f2c54875-552f-4f9b-b54d-406ff0c944af"},{"name":"/units/validate","id":"e38af77e-9d17-45be-9fe6-25e3c3ca2709","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"Hitachi XXXX\",\n    \"type\": {\n        \"key\": \"special_equipment\",\n        \"type\": \"unit_type\",\n        \"value\": \"Спецтехника\"\n    },\n    \"terminal_type\": {\n        \"key\": \"navtelecom\",\n        \"type\": \"terminal_type\",\n        \"value\": \"Navtelecom\"\n    },\n    \"imei\": \"123412312\",\n    \"phonenumber\": \"+71231231223\",\n    \"phonenumber2\": \"+34324343443\",\n    \"icon\": {\n        \"key\": \"excavator_green\",\n        \"type\": \"unit_icon\",\n        \"value\": \"Иконка\"\n    },\n    \"services\": [],\n    \"sensors\": [\n        {\n            \"name\": \"ДУТ-1\",\n            \"type\": {\n                \"key\": \"fuelsensor\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик топлива\"\n            },\n            \"param1\": {\n                \"param_key\": \"dut_485_1\",\n                \"min_valid\": 1.0,\n                \"max_valid\": 4096.0,\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [\n                    {\n                        \"fromValue\": 0.0,\n                        \"a\": 0.087,\n                        \"b\": 0.0\n                    },\n                    {\n                        \"fromValue\": 115.0,\n                        \"a\": 0.0282,\n                        \"b\": 6.7606\n                    },\n                    {\n                        \"fromValue\": 470.0,\n                        \"a\": 0.0312,\n                        \"b\": 5.3583\n                    },\n                    {\n                        \"fromValue\": 791.0,\n                        \"a\": 0.0332,\n                        \"b\": 3.7209\n                    },\n                    {\n                        \"fromValue\": 1092.0,\n                        \"a\": 0.0383,\n                        \"b\": -1.8391\n                    },\n                    {\n                        \"fromValue\": 1353.0,\n                        \"a\": 0.0394,\n                        \"b\": -3.2677\n                    },\n                    {\n                        \"fromValue\": 1607.0,\n                        \"a\": 0.0413,\n                        \"b\": -6.405\n                    },\n                    {\n                        \"fromValue\": 1849.0,\n                        \"a\": 0.0412,\n                        \"b\": -6.0905\n                    },\n                    {\n                        \"fromValue\": 2092.0,\n                        \"a\": 0.0403,\n                        \"b\": -4.3548\n                    },\n                    {\n                        \"fromValue\": 2216.0,\n                        \"a\": 0.0403,\n                        \"b\": -4.3548\n                    },\n                    {\n                        \"fromValue\": 2340.0,\n                        \"a\": 0.042,\n                        \"b\": -8.3193\n                    },\n                    {\n                        \"fromValue\": 2459.0,\n                        \"a\": 0.0403,\n                        \"b\": -4.1532\n                    },\n                    {\n                        \"fromValue\": 2583.0,\n                        \"a\": 0.0389,\n                        \"b\": -0.5058\n                    },\n                    {\n                        \"fromValue\": 2840.0,\n                        \"a\": 0.045,\n                        \"b\": -17.9279\n                    },\n                    {\n                        \"fromValue\": 3062.0,\n                        \"a\": 0.0398,\n                        \"b\": -1.992\n                    },\n                    {\n                        \"fromValue\": 3313.0,\n                        \"a\": 0.0405,\n                        \"b\": -4.1295\n                    },\n                    {\n                        \"fromValue\": 3560.0,\n                        \"a\": 0.0426,\n                        \"b\": -11.4893\n                    },\n                    {\n                        \"fromValue\": 3983.0,\n                        \"a\": 0.0625,\n                        \"b\": -90.9375\n                    },\n                    {\n                        \"fromValue\": 4095.0,\n                        \"a\": 0.0625,\n                        \"b\": -90.9375\n                    }\n                ],\n                \"calibrationXYlist\": [\n                    {\n                        \"x\": 0.0,\n                        \"y\": 0.0\n                    },\n                    {\n                        \"x\": 115.0,\n                        \"y\": 10.0\n                    },\n                    {\n                        \"x\": 470.0,\n                        \"y\": 20.0\n                    },\n                    {\n                        \"x\": 791.0,\n                        \"y\": 30.0\n                    },\n                    {\n                        \"x\": 1092.0,\n                        \"y\": 40.0\n                    },\n                    {\n                        \"x\": 1353.0,\n                        \"y\": 50.0\n                    },\n                    {\n                        \"x\": 1607.0,\n                        \"y\": 60.0\n                    },\n                    {\n                        \"x\": 1849.0,\n                        \"y\": 70.0\n                    },\n                    {\n                        \"x\": 2092.0,\n                        \"y\": 80.0\n                    },\n                    {\n                        \"x\": 2216.0,\n                        \"y\": 85.0\n                    },\n                    {\n                        \"x\": 2340.0,\n                        \"y\": 90.0\n                    },\n                    {\n                        \"x\": 2459.0,\n                        \"y\": 95.0\n                    },\n                    {\n                        \"x\": 2583.0,\n                        \"y\": 100.0\n                    },\n                    {\n                        \"x\": 2840.0,\n                        \"y\": 110.0\n                    },\n                    {\n                        \"x\": 3062.0,\n                        \"y\": 120.0\n                    },\n                    {\n                        \"x\": 3313.0,\n                        \"y\": 130.0\n                    },\n                    {\n                        \"x\": 3560.0,\n                        \"y\": 140.0\n                    },\n                    {\n                        \"x\": 3983.0,\n                        \"y\": 158.0\n                    },\n                    {\n                        \"x\": 4095.0,\n                        \"y\": 165.0\n                    }\n                ]\n            },\n            \"param2\": {\n                \"param_key\": \"skif_text\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"formula\": \"S1\",\n            \"hide_in_reports\": false,\n            \"invalid\": false\n        },\n        {\n            \"name\": \"Зажигание\",\n            \"type\": {\n                \"key\": \"ignition\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик зажигания\"\n            },\n            \"param1\": {\n                \"param_key\": \"voltage_main\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [\n                    {\n                        \"fromValue\": 26500.0,\n                        \"a\": 0.0,\n                        \"b\": 1.0\n                    }\n                ],\n                \"calibrationXYlist\": [\n                    {\n                        \"x\": 26500.0,\n                        \"y\": 1.0\n                    }\n                ]\n            },\n            \"param2\": {\n                \"param_key\": \"skif_text\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"formula\": \"S1\",\n            \"hide_in_reports\": false,\n            \"invalid\": false\n        },\n        {\n            \"name\": \"Пробег\",\n            \"type\": {\n                \"key\": \"mileage\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик пробега\"\n            },\n            \"param1\": {\n                \"param_key\": \"mileage_cur\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"param2\": {\n                \"param_key\": \"skif_text\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"formula\": \"S1\",\n            \"hide_in_reports\": false,\n            \"invalid\": false\n        },\n        {\n            \"name\": \"Напряжение [mV]\",\n            \"type\": {\n                \"key\": \"power\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик напряжения\"\n            },\n            \"param1\": {\n                \"param_key\": \"voltage_main\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"param2\": {\n                \"param_key\": \"skif_text\",\n                \"smoothing\": 0.0,\n                \"calibrationABlist\": [],\n                \"calibrationXYlist\": []\n            },\n            \"formula\": \"S1\",\n            \"hide_in_reports\": false,\n            \"invalid\": false\n        }\n    ],\n    \"custom_fields\": [\n        {\n            \"name\": \"S-2551\",\n            \"key\": \"S-2551\",\n            \"value\": \"#31\",\n            \"group\": \"cf_custom\",\n            \"sort\": 0\n        },\n        {\n            \"name\": \"Мин. время стоянки (сек)\",\n            \"key\": \"tripdetector_minparktime\",\n            \"value\": \"600\",\n            \"group\": \"cf_trips\",\n            \"sort\": 1\n        },\n        {\n            \"name\": \"Мин. объем заправки\",\n            \"key\": \"fuel_fillings_minfilling\",\n            \"value\": \"20\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 1\n        },\n        {\n            \"name\": \"Расход летом (л/100км.)\",\n            \"key\": \"fuel_consumption_summerconsump\",\n            \"value\": \"0\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 1\n        },\n        {\n            \"name\": \"Аналитик\",\n            \"key\": \"analyst\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 1\n        },\n        {\n            \"name\": \"Коэф. пробега\",\n            \"key\": \"advanced_mileagecoeff\",\n            \"value\": \"1.0\",\n            \"group\": \"cf_trips\",\n            \"sort\": 2\n        },\n        {\n            \"name\": \"Игнор-ть сообщ-я после начала движения\",\n            \"key\": \"fuel_fillings_msgignorestart\",\n            \"value\": \"60\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 2\n        },\n        {\n            \"name\": \"Расход зимой (л/100км.)\",\n            \"key\": \"fuel_consumption_winterconsump\",\n            \"value\": \"0\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 2\n        },\n        {\n            \"name\": \"Установщик\",\n            \"key\": \"installer\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 2\n        },\n        {\n            \"name\": \"Мин. скорость движ-я (км/ч)\",\n            \"key\": \"tripdetector_minmovespeed\",\n            \"value\": \"1\",\n            \"group\": \"cf_trips\",\n            \"sort\": 3\n        },\n        {\n            \"name\": \"Мин. время остановки для опр-ия слива\",\n            \"key\": \"fuel_fillings_minstaytheft\",\n            \"value\": \"60\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 3\n        },\n        {\n            \"name\": \"На холостом ходу летом (л./час.)\",\n            \"key\": \"fuel_math_idlingsummer\",\n            \"value\": \"0\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 3\n        },\n        {\n            \"name\": \"Мин. объем слива\",\n            \"key\": \"fuel_fillings_minitheft\",\n            \"value\": \"25\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 4\n        },\n        {\n            \"name\": \"Дата установки\",\n            \"key\": \"install_date\",\n            \"value\": \"16.07.2019\",\n            \"group\": \"cf_etc\",\n            \"sort\": 4\n        },\n        {\n            \"name\": \"На холостом ходу зимой (л./час.)\",\n            \"key\": \"fuel_math_idlingwinter\",\n            \"value\": \"0\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 4\n        },\n        {\n            \"name\": \"Мин. расст-ие поездки (м)\",\n            \"key\": \"tripdetector_mintripdist\",\n            \"value\": \"100\",\n            \"group\": \"cf_trips\",\n            \"sort\": 4\n        },\n        {\n            \"name\": \"Макс. интервал между сообщ-ми (сек)\",\n            \"key\": \"advanced_maxintervalmsg\",\n            \"value\": \"3600\",\n            \"group\": \"cf_trips\",\n            \"sort\": 5\n        },\n        {\n            \"name\": \"Коэф. при движении под нагрузкой\",\n            \"key\": \"fuel_math_coeffunderload\",\n            \"value\": \"0\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 5\n        },\n        {\n            \"name\": \"Место установки в ТС\",\n            \"key\": \"install_place\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 5\n        },\n        {\n            \"name\": \"Макс. расст-ие между сообщ-ми (м)\",\n            \"key\": \"tripdetector_maxdistancemsg\",\n            \"value\": \"1000\",\n            \"group\": \"cf_trips\",\n            \"sort\": 6\n        },\n        {\n            \"name\": \"Первый месяц зимы (январь-1)\",\n            \"key\": \"fuel_consumption_winterfrom\",\n            \"value\": \"11\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 6\n        },\n        {\n            \"name\": \"Серийный номер терминала\",\n            \"key\": \"serial_number\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 6\n        },\n        {\n            \"name\": \"Мин. время поездки (сек)\",\n            \"key\": \"tripdetector_mintriptime\",\n            \"value\": \"300\",\n            \"group\": \"cf_trips\",\n            \"sort\": 7\n        },\n        {\n            \"name\": \"Последний месяц зимы (январь-1)\",\n            \"key\": \"fuel_consumption_winterto\",\n            \"value\": \"3\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 7\n        },\n        {\n            \"name\": \"Серийный номер ДУТ\",\n            \"key\": \"serial_number_dut\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 7\n        },\n        {\n            \"name\": \"Стоимость (1 л.)\",\n            \"key\": \"fuel_price\",\n            \"value\": \"45\",\n            \"group\": \"cf_fuel\",\n            \"sort\": 8\n        },\n        {\n            \"name\": \"Опр-ие движ-я\",\n            \"key\": \"key_tripdetector_movedetect\",\n            \"value\": \"speedkph\",\n            \"group\": \"cf_trips\",\n            \"sort\": 8\n        },\n        {\n            \"name\": \"Серийный номер пломбы ДУТ\",\n            \"key\": \"dut_seal_serial_number\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 8\n        },\n        {\n            \"name\": \"Определение пробега\",\n            \"key\": \"tripdetector_mileagedetect\",\n            \"value\": \"mileage_GPS\",\n            \"group\": \"cf_trips\",\n            \"sort\": 9\n        },\n        {\n            \"name\": \"Гос номер\",\n            \"key\": \"license_plate_number\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 9\n        },\n        {\n            \"name\": \"Определение моточасов\",\n            \"key\": \"key_motohourdetector\",\n            \"value\": \"ignition\",\n            \"group\": \"cf_motohours\",\n            \"sort\": 10\n        },\n        {\n            \"name\": \"Норма часов в день\",\n            \"key\": \"hours_rate\",\n            \"value\": \"8\",\n            \"group\": \"cf_etc\",\n            \"sort\": 10\n        },\n        {\n            \"name\": \"Дата блокировки(yyyy-MM-dd)\",\n            \"key\": \"block_date\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 11\n        },\n        {\n            \"name\": \"КП\",\n            \"key\": \"kp\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 12\n        },\n        {\n            \"name\": \"ДУТ\",\n            \"key\": \"dut\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 13\n        },\n        {\n            \"name\": \"Вторая sim\",\n            \"key\": \"second_sim\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 14\n        },\n        {\n            \"name\": \"Серийный номер ДУТ 1\",\n            \"key\": \"serial_number_dut_1\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 15\n        },\n        {\n            \"name\": \"Серийный номер ДУТ 2\",\n            \"key\": \"serial_number_dut_2\",\n            \"value\": \"\",\n            \"group\": \"cf_etc\",\n            \"sort\": 16\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_mileagekey\",\n            \"key\": \"counters_mileagekey\",\n            \"value\": \"gps_mileage\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_mileagecurr\",\n            \"key\": \"counters_mileagecurr\",\n            \"value\": \"0\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_mileageauto\",\n            \"key\": \"counters_mileageauto\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_engienecurr\",\n            \"key\": \"counters_engienecurr\",\n            \"value\": \"0\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_gprscurr\",\n            \"key\": \"counters_gprscurr\",\n            \"value\": \"0\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.counters_gprsauto\",\n            \"key\": \"counters_gprsauto\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.advanced_speedlimit\",\n            \"key\": \"advanced_speedlimit\",\n            \"value\": \"130\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.advanced_urbspeedlimit\",\n            \"key\": \"advanced_urbspeedlimit\",\n            \"value\": \"60\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.advanced_dailyengine\",\n            \"key\": \"advanced_dailyengine\",\n            \"value\": \"0\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.tripdetector_movedetectkey\",\n            \"key\": \"tripdetector_movedetectkey\",\n            \"value\": \"speed\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.tripdetector_gpscorrect\",\n            \"key\": \"tripdetector_gpscorrect\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.tripdetector_minsatellites\",\n            \"key\": \"tripdetector_minsatellites\",\n            \"value\": \"3\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.tripdetector_mintipdist\",\n            \"key\": \"tripdetector_mintipdist\",\n            \"value\": \"100\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_fillings_fillingstop\",\n            \"key\": \"fuel_fillings_fillingstop\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_fillings_ignorefiltration\",\n            \"key\": \"fuel_fillings_ignorefiltration\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_sensors_mergenameslevel\",\n            \"key\": \"fuel_sensors_mergenameslevel\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_sensors_mergenamesconsum\",\n            \"key\": \"fuel_sensors_mergenamesconsum\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_sensors_timelevel\",\n            \"key\": \"fuel_sensors_timelevel\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_sensors_filtervalues\",\n            \"key\": \"fuel_sensors_filtervalues\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_math_idling\",\n            \"key\": \"fuel_math_idling\",\n            \"value\": \"2\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_math_urbcycle\",\n            \"key\": \"fuel_math_urbcycle\",\n            \"value\": \"0\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_math_suburbcycle\",\n            \"key\": \"fuel_math_suburbcycle\",\n            \"value\": \"0\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_levelsensors\",\n            \"key\": \"fuel_level_levelsensors\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_repivalid\",\n            \"key\": \"fuel_level_repivalid\",\n            \"value\": \"true\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_impulsefuel\",\n            \"key\": \"fuel_level_impulsefuel\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_maximpulse\",\n            \"key\": \"fuel_level_maximpulse\",\n            \"value\": \"0\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_skipfirstzero\",\n            \"key\": \"fuel_level_skipfirstzero\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_absolutefuel\",\n            \"key\": \"fuel_level_absolutefuel\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        },\n        {\n            \"name\": \"translate.custom_fields.name.fuel_level_instantfuel\",\n            \"key\": \"fuel_level_instantfuel\",\n            \"value\": \"false\",\n            \"group\": \"cf_hidden\",\n            \"sort\": 1000\n        }\n    ],\n    \"drivers\": [\n        {\n            \"user\": {\n                \"id\": \"bd3b26b7-506d-4cc6-8ab6-bf4cd1b9a39c\"\n            },\n            \"date_from\": \"2022-10-03 00:00:00\",\n            \"date_to\": \"2022-10-04 00:00:00\"\n        },\n        {\n            \"user\": {\n                \"id\": \"bd3b26b7-506d-4cc6-8ab6-bf4cd1b9a39c\"\n            },\n            \"date_from\": \"2022-10-05 00:00:00\",\n            \"date_to\": \"2022-10-10 00:00:00\"\n        }\n    ],\n    \"trailers\": [\n        {\n            \"trailer\": {\n                \"id\": \"fcaf9265-5a5b-4d35-8b00-ee146b8dc8f6\"\n            },\n            \"date_from\": \"2022-10-03 00:00:00\",\n            \"date_to\": \"2022-10-04 00:00:00\"\n        },\n        {\n            \"trailer\": {\n                \"id\": \"d0bc0903-702b-4d96-826a-e26860681356\"\n            },\n            \"date_from\": \"2022-10-05 00:00:00\",\n            \"date_to\": \"2022-10-10 00:00:00\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units/validate","description":"<p><strong>Валидация всех полей объекта</strong></p>\n<hr />\n<p>API для валидации всех полей объекта, без сохранения. При этом ошибка может быть в разных полях\\сущностях объекта.<br />Тело запроса, как при создании POST /units, и при обновлении PUT /units/:id</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n","urlObject":{"path":["api_v1","units","validate"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e38af77e-9d17-45be-9fe6-25e3c3ca2709"}],"id":"53900e41-6d7c-4916-8731-4dfb58ed963b","description":"<p>API по работе с Объектами</p>\n","_postman_id":"53900e41-6d7c-4916-8731-4dfb58ed963b"},{"name":"Группы объектов","item":[{"name":"/unitsgroup?ids=:ids","id":"56cf5a8e-3b22-48bf-846b-5cef8309241f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/unitsgroup?ids=","description":"<p><strong>Получение групп объектов</strong></p>\n<hr />\n<p>Параметр 'ids' опциональный - в случае его отсутствия получим все группы по текущей активной компании.</p>\n<p>Если в параметре ids указаны конкретные id групп (через запятую), то получим только их.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[ \n   { \n      \"id\":\"1a48c7d0-8ca7-4790-b001-7cc92075dabe\",\n      \"company_id\":\"11111111-1111-1111-1111-111111111111\",\n      \"name\":\"testGroup\",\n      \"units\":[ \n         { \n            \"id\":\"ccea7542-6016-4e77-b61b-31e957300de6\",\n            \"company_id\":\"11111111-1111-1111-1111-111111111111\",\n            \"name\":\"testName-0\",\n            \"type\":{ \n               \"key\":\"farm_equipment\",\n               \"type\":\"unit_type\",\n               \"value\":\"Сельхозтехника\"\n            },\n            \"terminal_type\":{ \n               \"key\":\"navtelecom\",\n               \"type\":\"terminal_type\",\n               \"value\":\"navtelecom\"\n            },\n            \"imei\":\"4690f00d-64a6-4326-95dd-acf64bbf02d9\",\n            \"phonenumber\":\"8(914)3333333\",\n            \"icon\":{ \n               \"key\":\"school-bus_orange\",\n               \"type\":\"unit_icon\",\n               \"value\":\"иконка\"\n            },\n            \"services\":[ \n            ],\n            \"sensors\":[ \n            ],\n            \"custom_fields\":[ \n               { \n                  \"key\":\"limit\",\n                  \"value\":\"123\"\n               },\n               { \n                  \"key\":\"power\",\n                  \"value\":\"123w\"\n               }\n            ]\n         },\n         { \n            \"id\":\"df2415f9-7533-436e-9f93-78dbeacd8e29\",\n            \"company_id\":\"11111111-1111-1111-1111-111111111111\",\n            \"name\":\"testName-1\",\n            \"type\":{ \n               \"key\":\"farm_equipment\",\n               \"type\":\"unit_type\",\n               \"value\":\"Сельхозтехника\"\n            },\n            \"terminal_type\":{ \n               \"key\":\"navtelecom\",\n               \"type\":\"terminal_type\",\n               \"value\":\"navtelecom\"\n            },\n            \"imei\":\"225abdec-9f2d-4b98-89c7-a83993f97beb\",\n            \"phonenumber\":\"8(914)3333333\",\n            \"icon\":{ \n               \"key\":\"school-bus_orange\",\n               \"type\":\"unit_icon\",\n               \"value\":\"иконка\"\n            },\n            \"services\":[ \n            ],\n            \"sensors\":[ \n            ],\n            \"custom_fields\":[ \n               { \n                  \"key\":\"limit\",\n                  \"value\":\"123\"\n               },\n               { \n                  \"key\":\"power\",\n                  \"value\":\"123w\"\n               }\n            ]\n         }\n      ]\n   }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","unitsgroup"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"56cf5a8e-3b22-48bf-846b-5cef8309241f"},{"name":"/unitsgroup","id":"e8a831b3-b0c9-408e-b2b1-9e580335ed9c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"testGroup\",\n    \"units\": [\n        {\n            \"id\": \"286e35d1-0d2e-481a-89b7-91755aabef54\"\n        },\n        {\n            \"id\": \"abdb4866-1128-489d-8a2f-179533fd5971\"\n        }\n    ]\n}"},"url":"{{base_url}}/api_v1/unitsgroup","description":"<p><strong>Создание группы</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>\"name\" - Имя группы. НЕ МОЖЕТ быть пустым или отсутствовать!<br />\"units\" - Массив существующих объектов, достаточно передать только id. Может быть пустым, либо вообще отсутствовать.<br />hide_in_lists, true если нужно \"Скрыть в списках\"</p>\n<p>all_units_included, true если это группа Все объекты в которую автоматически попадают все создаваемые и копируемые объекты</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"name\": \"testGroup\", // \n    \"units\": [             // Массив существующих id объектов\n        {\n            \"id\": \"286e35d1-0d2e-481a-89b7-91755aabef54\"\n        },\n        {\n            \"id\": \"abdb4866-1128-489d-8a2f-179533fd5971\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{ \n   \"id\":\"b6d098f8-dd71-48e0-b812-8460eadf7b2e\",\n   \"company_id\":\"11111111-1111-1111-1111-111111111111\",\n   \"name\":\"testGroup\",\n   \"units\":[ \n      { \n         \"id\":\"2ecbc434-c05c-4e8b-9905-ffa554fd18e0\",\n         \"company_id\":\"11111111-1111-1111-1111-111111111111\",\n         \"name\":\"testName-0\",\n      },\n      { \n         \"id\":\"8e42b82c-62bf-4678-b26e-b0636c9d7e66\",\n         \"company_id\":\"11111111-1111-1111-1111-111111111111\",\n         \"name\":\"testName-1\"\n      }\n   ],\n}\n\n</code></pre>","urlObject":{"path":["api_v1","unitsgroup"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e8a831b3-b0c9-408e-b2b1-9e580335ed9c"},{"name":"/unitsgroup/list","id":"5c5377a3-6cee-4184-88e2-ab401101c6ab","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"testGroup\",\n    \"units\": [\n        {\n            \"id\": \"286e35d1-0d2e-481a-89b7-91755aabef54\"\n        },\n        {\n            \"id\": \"abdb4866-1128-489d-8a2f-179533fd5971\"\n        }\n    ]\n}"},"url":"{{base_url}}/api_v1/unitsgroup/list","description":"<p><strong>Получение списка групп</strong></p>\n<hr />\n<p>Аналогично запросу POST /users/list</p>\n<hr />\n<p><strong>Запрос:</strong></p>\n<p>В fields указать нужные поля.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>\"id\"- Id группы</p>\n<p>\"name\" - Имя группы.<br />\"units\" - Массив объектов в группе<br />\"users\" - Массив пользователей имеющий доступ в эту группу. Пустой, если группа не общедоступна внутри компании</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\"fields\":[\"id\",\"name\",\"units.id\",\"units.name\",\"users.id\",\"units.imei\"]}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 2,\n    \"list\": [\n        {\n            \"id\": \"c6608022-7d69-4531-b8c5-190afc4aade1\",\n            \"name\": \"Группа1\",\n            \"units\": [\n                {\n                    \"id\": \"b1c87520-e0b0-469f-baf7-4ec446679867\",\n                    \"name\": \"Ford Р024РХ790\",\n                    \"imei\": \"866854052110916\"\n                },\n                {\n                    \"id\": \"c5f41d3c-4388-47bc-b7d0-928415591218\",\n                    \"name\": \"МАЗ 606 TTA 03\",\n                    \"imei\": \"8628430418651631\"\n                },\n                {\n                    \"id\": \"cdac02c5-ac08-46bd-968d-91da19732784\",\n                    \"name\": \"IVECO 606 TВA 0323\",\n                    \"imei\": \"862843041865163\"\n                }\n            ],\n            \"users\": [\n                {\n                    \"id\": \"ec8dc446-f72e-4524-88be-2980c960706a\"\n                },\n                {\n                    \"id\": \"202cf740-d05d-4661-aaa9-c80e6a38c09a\"\n                },\n                {\n                    \"id\": \"c9bb3e9c-d02d-4ead-930b-2dd174da2f11\"\n                }\n            ]\n        },\n        {\n            \"id\": \"3dfbed67-c6b1-4a2c-9781-db54f627bad8\",\n            \"name\": \"Группа2\",\n            \"units\": [\n                {\n                    \"id\": \"8d09c650-d870-4677-9c22-a9977c347e49\",\n                    \"name\": \"С550ТК799 (#938)\",\n                    \"imei\": \"866854052154401\"\n                },\n                {\n                    \"id\": \"a9f4bd65-f56c-45ab-865f-9c36d04ce2c2\",\n                    \"name\": \"Ford Р024РХ790\",\n                    \"imei\": \"866854052110916\"\n                },\n                {\n                    \"id\": \"cfb99142-b07e-40ee-97f0-be19a99db46e\",\n                    \"name\": \"Кран Урал 676 STA 03\",\n                    \"imei\": \"860906049720870\"\n                }\n            ],\n            \"users\": [\n                {\n                    \"id\": \"7ddd3ef0-ea36-4000-997e-30a7954fc0bf\"\n                },\n                {\n                    \"id\": \"c69be66f-5bad-49cf-bdf6-53983eb9d234\"\n                },\n                {\n                    \"id\": \"28500618-ad5d-46d8-8f60-f3534d7af1d2\"\n                }\n            ]\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","unitsgroup","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"5c5377a3-6cee-4184-88e2-ab401101c6ab"},{"name":"/unitsgroup/:unitsgroup_id ","id":"ca7af71a-1e30-47e2-a925-099232a724af","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/unitsgroup/:unitsgroup_id","description":"<p><strong>Удаление группы</strong></p>\n<hr />\n<p>Группа удаляется физически.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>пустая строка (при этом response status = 200)\n\n</code></pre>","urlObject":{"path":["api_v1","unitsgroup",":unitsgroup_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"unitsgroup_id"}]}},"response":[],"_postman_id":"ca7af71a-1e30-47e2-a925-099232a724af"},{"name":"/unitsgroup?ids=:ids","id":"9ae0543d-2948-4335-916d-1a7187cf5db4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/unitsgroup?ids=","description":"<p><strong>Планирование удаления группы объектов</strong></p>\n<hr />\n<p>см. DELETE /units?ids=:ids</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","unitsgroup"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"9ae0543d-2948-4335-916d-1a7187cf5db4"},{"name":"/unitsgroup","id":"bedd5cd5-54c6-4be5-ba2f-3e74db531691","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/unitsgroup","description":"<p>Планирование удаления группы объектов</p>\n<hr />\n<p>см. DELETE /units</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","unitsgroup"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"bedd5cd5-54c6-4be5-ba2f-3e74db531691"},{"name":"/unitsgroup/:unitsgroup_id ","id":"7bdb346f-157d-4887-b983-1a33131e1749","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"testGroup\",\n    \"units\": [\n        {\n            \"id\": \"286e35d1-0d2e-481a-89b7-91755aabef54\"\n        }\n    ]\n}"},"url":"{{base_url}}/api_v1/unitsgroup/:unitsgroup_id","description":"<p><strong>Изменение группы</strong></p>\n<hr />\n<p>Cписок units заменяется полностью.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","unitsgroup",":unitsgroup_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"unitsgroup_id"}]}},"response":[],"_postman_id":"7bdb346f-157d-4887-b983-1a33131e1749"}],"id":"05d84ab9-038c-4621-b852-56bda566853f","_postman_id":"05d84ab9-038c-4621-b852-56bda566853f","description":""},{"name":"Смены","item":[{"name":"/units_drivers","id":"733b1fad-eaf8-4f5f-882f-d685fa4a81c9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"unit\" : {\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"user\" : {\n        \"id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\"\n    },\n    \"date_from\": \"2020-10-01 10:00:00\",\n    \"date_to\": \"2020-11-01 18:00:00\"\n}"},"url":"{{base_url}}/api_v1/units_drivers","description":"<p><strong>Создание смены</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"unit\": {\"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"} указать ID объекта в unit.id, обязательно\n\"user\": {\"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\"}, указать ID водителя(пользователя) в user.id, необязательно\n\"date_from\": \"2020-10-01 10:00:00\", дата и время от, обязательно\n\"date_to\": \"2020-11-01 18:00:00\", дата и время до, не обязательно\n\"custom_fields\": [ // пользовательские доп поля: // смотри GET /custom_fields\n    {\"name\": \"цвет\", 'key': 'цвет', \"value\": \"синий\"},\n    {\"name\": \"масса\", \"key\": \"масса\", \"value\": \"20 т\"}\n]\n\n</code></pre><hr />\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"unit\" : {\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"user\" : {\n        \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\"\n    },\n    \"date_from\": \"2020-10-01 10:00:00\",\n    \"date_to\": \"2020-11-01 18:00:00\",\n    \"custom_fields\": [\n    {\"name\": \"цвет\", 'key': 'цвет', \"value\": \"синый\"},\n    {\"name\": \"масса\", \"key\": \"масса\", \"value\": \"20 т\"}\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Возвращается созданная смена</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"da47b5da-d030-44f0-acc4-a43107dbb090\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"unit\": {\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"user\": {\n        \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\"\n    },\n    \"date_from\": \"2020-10-01 10:00:00\",\n    \"date_to\": \"2020-11-01 18:00:00\",\n    \"custom_fields\": [\n    {\"name\": \"цвет\", 'key': 'цвет', \"value\": \"синый\"},\n    {\"name\": \"масса\", \"key\": \"масса\", \"value\": \"20 т\"}\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","units_drivers"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"733b1fad-eaf8-4f5f-882f-d685fa4a81c9"},{"name":"/units_drivers_bulk","id":"4724fa8c-e72e-4018-a611-8ff1b040e48c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"unit\" : {\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"user\" : {\n        \"id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\"\n    },\n    \"date_from\": \"2020-10-01 10:00:00\",\n    \"date_to\": \"2020-11-01 18:00:00\"\n}"},"url":"{{base_url}}/api_v1/units_drivers_bulk","description":"<p><strong>Создание нескольких смен</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"unit\": {\"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"} указать ID объекта в unit.id, обязательно\n\"user\": {\"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\"}, указать ID водителя(пользователя) в user.id, необязательно\n\"dates\" : [\n    {\n        \"date_from\": \"2021-02-01 18:00:00\",\n        \"date_to\": \"2021-02-02 04:00:00\"\n    },\n    {\n        \"date_from\": \"2021-02-03 18:00:00\",\n        \"date_to\": \"2021-02-04 04:00:00\"\n    },\n    {\n        \"date_from\": \"2021-02-10 18:00:00\",\n        \"date_to\": \"2021-02-11 04:00:00\"\n    }\n] // даты и время смены, date_from -  начала, date_to - окончания\n\"custom_fields\": [ // пользовательские доп поля: // смотри GET /custom_fields\n    {\"name\": \"цвет\", 'key': 'цвет', \"value\": \"синый\"},\n    {\"name\": \"масса\", \"key\": \"масса\", \"value\": \"20 т\"}\n]\n\n</code></pre><hr />\n<p><strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"unit\" : {\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"user\" : {\n        \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\"\n    },\n    \"date_from\": \"2020-10-01 10:00:00\",\n    \"date_to\": \"2020-11-01 18:00:00\",\n    \"dates\" : [\n        {\n            \"date_from\": \"2021-02-01 18:00:00\",\n            \"date_to\": \"2021-02-02 04:00:00\"\n        },\n        {\n            \"date_from\": \"2021-02-03 09:00:00\",\n            \"date_to\": \"2021-02-03 18:00:00\"\n        }\n    ]\n    \"custom_fields\": [\n    {\"name\": \"цвет\", 'key': 'цвет', \"value\": \"синый\"},\n    {\"name\": \"масса\", \"key\": \"масса\", \"value\": \"20 т\"}\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Возвращается созданные смены в виде массива - одна запись для каждой даты.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n{\n    \"id\": \"da47b5da-d030-44f0-acc4-a43107dbb090\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"unit\": {\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"user\": {\n        \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\"\n    },\n    \"date_from\": \"2021-02-01 18:00:00\",\n    \"date_to\": \"2021-02-02 04:00:00\",\n    \"custom_fields\": [\n    {\"name\": \"цвет\", 'key': 'цвет', \"value\": \"синый\"},\n    {\"name\": \"масса\", \"key\": \"масса\", \"value\": \"20 т\"}\n    ]\n},\n{\n    \"id\": \"ed47b5da-d030-44f0-acc4-a43107dbb090\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"unit\": {\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"user\": {\n        \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\"\n    },\n    \"date_from\": \"2021-02-03 09:00:00\",\n    \"date_to\": \"2021-02-03 18:00:00\",\n    \"custom_fields\": [\n    {\"name\": \"цвет\", 'key': 'цвет', \"value\": \"синый\"},\n    {\"name\": \"масса\", \"key\": \"масса\", \"value\": \"20 т\"}\n    ]\n}\n]\n\n</code></pre>","urlObject":{"path":["api_v1","units_drivers_bulk"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"4724fa8c-e72e-4018-a611-8ff1b040e48c"},{"name":"/units_drivers?ids=:ids","id":"cf8eb102-47e4-46c3-ac40-f13d510a4496","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/units_drivers?ids=","description":"<p><strong>Поиск смен по ID (через запятую)</strong></p>\n<hr />\n<p>Возвращает массив смен.<br />Если параметр 'ids' пустой (т.е. запрос = 'GET /units_drivers', без параметра), то вернётся список всех связей всех компаний пользователя, из которого исключаются удаленные связи. Если ids не пустой (т.е. запрос = 'GET /units_drivers?ids=00215-54021..,25541-454754-4513..'), то вернётся список только из запрошенных связей.</p>\n<p>Если в параметре ids содержится только один id, то вернется НЕ массив из 1 элемента, а конкретная смена.</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>/units_drivers?ids=da47b5da-d030-44f0-acc4-a43107dbb090\n\n</code></pre><p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"da47b5da-d030-44f0-acc4-a43107dbb090\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"unit\": {\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"user\": {\n        \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\"\n    },\n    \"date_from\": \"2020-10-01 10:00:00\",\n    \"date_to\": \"2020-11-01 18:00:00\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","units_drivers"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"cf8eb102-47e4-46c3-ac40-f13d510a4496"},{"name":"/units_drivers/:id","id":"05faa359-ee58-4637-813e-70b5d36aaf6f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"62184dd3-38c0-4476-a549-cc371199eb27\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"unit\": {\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"user\": {\n        \"id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\"\n    },\n    \"date_from\": \"2020-10-01 10:00:00\",\n    \"date_to\": \"2020-11-01 18:00:00\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units_drivers/:id","description":"<p><strong>Обновить данные смены</strong></p>\n<hr />\n<p>Обновляет переданные параметры</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>см метод POST /units_drivers</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Аналогичен одному объекту из ответа метода GET /units_drivers?ids=:id</p>\n","urlObject":{"path":["api_v1","units_drivers",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID смены</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"05faa359-ee58-4637-813e-70b5d36aaf6f"},{"name":"/units_drivers/:id","id":"23d31c61-f83e-4cad-bec7-f98b492462f5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/units_drivers/:id","description":"<p><strong>Удаление смены по ее id</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id смены</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong> 200</p>\n<p>Если смена с таким id не найдена, то возвращается ошибка 422</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 422,\n    \"field\": \"id\",\n    \"message\": \"Параметр не найден в базе\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","units_drivers",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID смены</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"23d31c61-f83e-4cad-bec7-f98b492462f5"},{"name":"/units_drivers?ids=:ids","id":"82f99b7f-ca26-4a42-8a7f-c45d562e31a3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/units_drivers?ids=","description":"<p><strong>Планирование удаления связи объект-водитель</strong></p>\n<hr />\n<p>см. DELETE /units?ids=:ids</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","units_drivers"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"82f99b7f-ca26-4a42-8a7f-c45d562e31a3"},{"name":"/units_drivers","id":"02b7fd84-84ee-4b25-90a7-88b032c2971b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units_drivers","description":"<p><strong>Планирование удаления связи объект-водитель</strong></p>\n<hr />\n<p>см. DELETE /units</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","units_drivers"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"02b7fd84-84ee-4b25-90a7-88b032c2971b"},{"name":"/units_drivers/list","id":"73cb4862-116a-484c-9e73-e9001188be60","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true}},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": 0,\n    \"count\": 10,\n    \"sortField\": \"date_from\",\n    \"sortDesc\": \"false\",\n    \"conditions\": [\n        {\n            \"field\": \"unit.id\",\n            \"value\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units_drivers/list","description":"<p><strong>Получить смены по фильтру</strong></p>\n<hr />\n<p>Аналогично запросу POST /users/list</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>from - с какого найденного элемента выдавать результат.</p>\n<p>count - максимальное число элементов.</p>\n<p>sortField - поле сортировки, значения<br />[date_from, date_to, created, is_delete]</p>\n<p>sortDesc - сортировка по убыванию? значения \"true\", \"false\".</p>\n<p>conditions - условие отбора в виде массива [ {\"field\":\"значение\", \"value\":\"значение\"}, {... и т.д. ...} ].<br />значения для field - unit.id, user.id, date_from, date_to<br />Если использованы date_from, date_to тогда выбирается смены которые пересекаются с [date_from, date_to] интервалом.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Получить первые 10 смен, отсортированные по возрастанию даты начала, связанные с объектом с ID 7e1aaba2-625a-4a4c-b765-9934bec5a096 и в октябре 2020 года</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 10,\n    \"sortField\": \"date_from\",\n    \"sortDesc\": \"false\",\n    \"conditions\": [\n        {\n            \"field\": \"unit.id\",\n            \"value\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n        },\n        {\n            \"field\": \"date_from\",\n            \"value\": \"2020-10-01 00:00:00\"\n        },\n        {\n            \"field\": \"date_to\",\n            \"value\": \"2020-11-01 00:00:00\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 2,\n    \"list\": [\n        {\n            \"id\": \"da47b5da-d030-44f0-acc4-a43107dbb090\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"unit\": {\n                \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n            },\n            \"user\": {\n                \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\"\n            },\n            \"date_from\": \"2020-09-05 10:00:00\",\n            \"date_to\": \"2020-10-05 18:00:00\"\n        },\n        {\n            \"id\": \"d604452b-9e9d-4e01-817d-b0d391138569\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"unit\": {\n                \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n            },\n            \"user\": {\n                \"id\": \"22ae4a3c-f742-460c-9479-63f08c81b5c3\"\n            },\n            \"date_from\": \"2020-10-15 10:00:00\",\n            \"date_to\": \"2020-11-21 18:00:00\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Еще один пример запроса:</strong></p>\n<p>Получить первые 10 смен, отсортированные по возрастанию даты окончания по убыванию, связанные с водителем (пользователь) с ID 22ae4a3c-f742-460c-9479-63f08c81b5c3</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 10,\n    \"sortField\": \"date_to\",\n    \"sortDesc\": \"true\",\n    \"conditions\": [\n        {\n            \"field\": \"user.id\",\n            \"value\": \"22ae4a3c-f742-460c-9479-63f08c81b5c3\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 3,\n    \"list\": [\n        {\n            \"id\": \"f9c60641-0393-4345-aa2a-aadb869db3c9\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"unit\": {\n                \"id\": \"cc1c4c33-5895-4fec-9295-020ffcee9372\"\n            },\n            \"user\": {\n                \"id\": \"22ae4a3c-f742-460c-9479-63f08c81b5c3\"\n            },\n            \"date_from\": \"2021-01-01 10:00:00\"\n        },\n        {\n            \"id\": \"d604452b-9e9d-4e01-817d-b0d391138569\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"unit\": {\n                \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n            },\n            \"user\": {\n                \"id\": \"22ae4a3c-f742-460c-9479-63f08c81b5c3\"\n            },\n            \"date_from\": \"2020-11-01 10:00:00\",\n            \"date_to\": \"2020-12-01 18:00:00\"\n        },\n        {\n            \"id\": \"5acc2fd1-e63a-4c10-95d0-22eaf59439ae\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"unit\": {\n                \"id\": \"cc1c4c33-5895-4fec-9295-020ffcee9372\"\n            },\n            \"user\": {\n                \"id\": \"22ae4a3c-f742-460c-9479-63f08c81b5c3\"\n            },\n            \"date_from\": \"2020-09-01 10:00:00\",\n            \"date_to\": \"2020-10-01 18:00:00\"\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","units_drivers","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"73cb4862-116a-484c-9e73-e9001188be60"}],"id":"de9a1990-30f1-4d5d-9162-08dc313d2e21","description":"<p>API по работе со сменами</p>\n","_postman_id":"de9a1990-30f1-4d5d-9162-08dc313d2e21"},{"name":"Прицепы объектов","item":[{"name":"/units_trailers","id":"fc48b76d-7bc0-4463-9135-85444080ca7b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"unit\" : {\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"trailer\" : {\n        \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\"\n    },\n    \"date_from\": \"2020-10-01 10:00:00\",\n    \"date_to\": \"2020-11-01 18:00:00\"\n}"},"url":"{{base_url}}/api_v1/units_trailers","description":"<p><strong>Связать объект и прицеп на определенный период</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"unit\": {\"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"} указать ID объекта в unit.id, обязательно\n\"trailer\": {\"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\"}, указать ID прицепа в trailer.id, обязательно\n\"date_from\": \"2020-10-01 10:00:00\", дата и время от, обязательно\n\"date_to\": \"2020-11-01 18:00:00\", дата и время до, необязательно,\n\"min_speed\": 1.5, Мин. скорость в км/ч, необязательно,\n\"max_speed\": 10.5, Макс. скорость в км/ч, необязательно,\n\"work_type\": \"Обработка поля\" Тип работ, необязательно,\n\n</code></pre><hr />\n<p><strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"unit\" : {\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"trailer\" : {\n        \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\"\n    },\n    \"date_from\": \"2020-10-01 10:00:00\",\n    \"date_to\": \"2020-11-01 18:00:00\",\n    \"min_speed\": 1.5,\n    \"max_speed\": 10.5,\n    \"work_type\": \"Обработка поля\"\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Возвращается созданная связь</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"da47b5da-d030-44f0-acc4-a43107dbb090\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"unit\": {\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"trailer\": {\n        \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\"\n    },\n    \"date_from\": \"2020-10-01 10:00:00\",\n    \"date_to\": \"2020-11-01 18:00:00\",\n    \"min_speed\": 1.5,\n    \"max_speed\": 10.5,\n    \"work_type\": \"Обработка поля\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","units_trailers"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"fc48b76d-7bc0-4463-9135-85444080ca7b"},{"name":"/units_trailers?ids=:ids","id":"94bf2ec3-9f1c-4559-9463-ea9cbd793ec8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}api_v1/units_trailers?ids=","description":"<p><strong>Поиск связей по ID (через запятую)</strong></p>\n<hr />\n<p>Возвращает массив связей объектов и прицепов.<br />Если параметр 'ids' пустой (т.е. запрос = 'GET /units_trailers', без параметра), то вернётся список всех связей всех компаний пользователей, из которого исключаются удаленные связи. Если ids не пустой (т.е. запрос = 'GET /trailers?ids=00215-54021..,25541-454754-4513..'), то вернётся список только из запрошенных связей.</p>\n<p>Если в параметре ids содержится только один id, то вернется НЕ массив из 1 элемента, а конкретная связь.</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>/units_trailers?ids=da47b5da-d030-44f0-acc4-a43107dbb090\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"da47b5da-d030-44f0-acc4-a43107dbb090\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"unit\": {\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"trailer\": {\n        \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\"\n    },\n    \"date_from\": \"2020-10-01 10:00:00\",\n    \"date_to\": \"2020-11-01 18:00:00\",\n    \"min_speed\": 1.5,\n    \"max_speed\": 10.5,\n    \"work_type\": \"Обработка поля\"\n}\n\n</code></pre>","urlObject":{"path":["units_trailers"],"host":["{{base_url}}api_v1"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"94bf2ec3-9f1c-4559-9463-ea9cbd793ec8"},{"name":"/units_trailers/:id","id":"55f8ee4c-fb91-4305-9385-501d7d9c0c0e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"da47b5da-d030-44f0-acc4-a43107dbb090\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"unit\": {\n        \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n    },\n    \"trailer\": {\n        \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\"\n    },\n    \"date_from\": \"2020-10-05 10:00:00\",\n    \"date_to\": \"2020-11-05 18:00:00\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units_trailers/:id","description":"<p><strong>Обновить данные связи</strong></p>\n<hr />\n<p>Обновляет переданные параметры</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>см метод POST /units_trailers</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Аналогичен одному объекту из ответа метода GET /units_trailers?ids=:id</p>\n","urlObject":{"path":["api_v1","units_trailers",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID связи</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"55f8ee4c-fb91-4305-9385-501d7d9c0c0e"},{"name":"/units_trailers/:id","id":"27b512ee-711b-4e75-8cd7-96da577efaf5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/units_trailers/:id","description":"<p><strong>Удаление связи по его ID</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id связи</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>200</p>\n<p>Если связь с таким id не найдена, то возвращается ошибка 422</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 422,\n    \"field\": \"id\",\n    \"message\": \"Параметр не найден в базе\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","units_trailers",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID связи</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"27b512ee-711b-4e75-8cd7-96da577efaf5"},{"name":"/units_trailers?ids=:ids","id":"268ec600-8b3f-4944-981b-dde3ce3502d8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/units_trailers?ids=","description":"<p><strong>Планирование удаления связи прицепы-объекты</strong></p>\n<hr />\n<p>см. DELETE /units?ids=:ids</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","units_trailers"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"268ec600-8b3f-4944-981b-dde3ce3502d8"},{"name":"/units_trailers","id":"378fed60-7406-4334-9cbf-a84f2878b456","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units_trailers","description":"<p><strong>Планирование удаления связи прицепы-объекты</strong></p>\n<hr />\n<p>см. DELETE /units</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","units_trailers"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"378fed60-7406-4334-9cbf-a84f2878b456"},{"name":"/units_trailes/list","id":"dfbce730-7461-4a24-ab44-c4de8c64ab63","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true}},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": 0,\n    \"count\": 11,\n    \"sortField\": \"date_from\",\n    \"sortDesc\": \"false\",\n    \"conditions\": [\n        {\n            \"field\": \"unit.id\",\n            \"value\": \"7e1aaba2-625a-4a4c-b765-9934bec5a097\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units_trailers/list","description":"<p><strong>Получить связи объектов и прицепов по фильтру</strong></p>\n<hr />\n<p>Аналогично запросу POST /users/list</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>from - с какого найденного элемента выдавать результат.</p>\n<p>count - максимальное число элементов.</p>\n<p>sortField - поле сортировки, значения<br />[date_from, date_to, created, is_delete]</p>\n<p>sortDesc - сортировка по убыванию? значения \"true\", \"false\".</p>\n<p>conditions - условие отбора в виде массива [ {\"field\":\"значение\", \"value\":\"значение\"}, {... и т.д. ...} ].<br />значения для field - unit.id, trailer.id</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Получить первые 10 связей, отсортированные по возрастанию даты начала, связанные с объектом с ID 7e1aaba2-625a-4a4c-b765-9934bec5a096</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 10,\n    \"sortField\": \"date_from\",\n    \"sortDesc\": \"false\",\n    \"conditions\": [\n        {\n            \"field\": \"unit.id\",\n            \"value\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 2,\n    \"list\": [\n        {\n            \"id\": \"da47b5da-d030-44f0-acc4-a43107dbb090\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"unit\": {\n                \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n            },\n            \"trailer\": {\n                \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\"\n            },\n            \"date_from\": \"2020-10-05 10:00:00\",\n            \"date_to\": \"2020-11-05 18:00:00\"\n        },\n        {\n            \"id\": \"d604452b-9e9d-4e01-817d-b0d391138569\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"unit\": {\n                \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n            },\n            \"trailer\": {\n                \"id\": \"22ae4a3c-f742-460c-9479-63f08c81b5c3\"\n            },\n            \"date_from\": \"2020-11-01 10:00:00\",\n            \"date_to\": \"2020-12-01 18:00:00\",\n             \"min_speed\": 1.5,\n            \"max_speed\": 10.5,\n            \"work_type\": \"Обработка поля\"\n        }\n    ]\n}\n\n</code></pre><p><strong>Еще один пример запроса:</strong></p>\n<p>Получить первые 10 связей, отсортированные по возрастанию даты окончания, по убыванию, связанные с прицепом с ID 22ae4a3c-f742-460c-9479-63f08c81b5c3</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 10,\n    \"sortField\": \"date_to\",\n    \"sortDesc\": \"true\",\n    \"conditions\": [\n        {\n            \"field\": \"trailer.id\",\n            \"value\": \"22ae4a3c-f742-460c-9479-63f08c81b5c3\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 3,\n    \"list\": [\n        {\n            \"id\": \"f9c60641-0393-4345-aa2a-aadb869db3c9\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"unit\": {\n                \"id\": \"cc1c4c33-5895-4fec-9295-020ffcee9372\"\n            },\n            \"trailer\": {\n                \"id\": \"22ae4a3c-f742-460c-9479-63f08c81b5c3\"\n            },\n            \"date_from\": \"2021-01-01 10:00:00\"\n        },\n        {\n            \"id\": \"d604452b-9e9d-4e01-817d-b0d391138569\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"unit\": {\n                \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n            },\n            \"trailer\": {\n                \"id\": \"22ae4a3c-f742-460c-9479-63f08c81b5c3\"\n            },\n            \"date_from\": \"2020-11-01 10:00:00\",\n            \"date_to\": \"2020-12-01 18:00:00\"\n        },\n        {\n            \"id\": \"5acc2fd1-e63a-4c10-95d0-22eaf59439ae\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"unit\": {\n                \"id\": \"cc1c4c33-5895-4fec-9295-020ffcee9372\"\n            },\n            \"trailer\": {\n                \"id\": \"22ae4a3c-f742-460c-9479-63f08c81b5c3\"\n            },\n            \"date_from\": \"2020-09-01 10:00:00\",\n            \"date_to\": \"2020-10-01 18:00:00\"\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","units_trailers","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"dfbce730-7461-4a24-ab44-c4de8c64ab63"}],"id":"f7fc0736-a5ea-458b-b2c8-b1317c045a7d","description":"<p>API по работе со связью прицепов и объектов</p>\n","_postman_id":"f7fc0736-a5ea-458b-b2c8-b1317c045a7d"},{"name":"Состояния объекта","item":[{"name":"/units_states/:unit_id","id":"f6563bc6-1fa4-46dc-9696-8ea516eaa3db","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"{{base_url}}/api_v1/units_states/:unit_id","description":"<p><strong>Добавление нового состояния объекта</strong></p>\n<hr />\n<p>Параметр запроса <strong>unit_id</strong> - ID объекта</p>\n<p><strong>Тело запроса JSON:</strong></p>\n<p>name - название состояния, обязательная строка.</p>\n<p>from_date - дата состояния, обязательное в формате yyyy-MM-dd.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST /units_states/897c7708-6758-4da0-92f7-208d8caa2f07</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"name\": \"Терминал Navtelecom\",\n    \"date_from\": \"2022-10-09\"\n}\n\n</code></pre>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<p>В ответ приходят все состояния объекта, как в запросе GET /units_states/:unit_id</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": \"fab2f033-15de-46a4-ad7b-5ae422c0c9a2\",\n        \"name\": \"Терминал Navtelecom\",\n        \"date_from\": \"2022-10-09\",\n        \"state_unit\": {\n            \"id\": \"897c7708-6758-4da0-92f7-208d8caa2f07\",\n            \"terminal_type\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            },\n            \"imei\": \"862273040906299\"\n        }\n    },\n    {\n        \"id\": \"57814be3-d38f-4540-b155-184204a0fe27\",\n        \"name\": \"Начальное состояние\",\n        \"date_from\": \"2020-12-09\",\n        \"state_unit\": {\n            \"id\": \"9d34e736-4565-4d1c-b83f-fab119b44e6f\",\n            \"terminal_type\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            },\n            \"imei\": \"862273040906299\"\n        }\n    }\n]\n\n</code></pre>\n","urlObject":{"path":["api_v1","units_states",":unit_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID объекта</p>\n","type":"text/plain"},"type":"any","value":"","key":"unit_id"}]}},"response":[],"_postman_id":"f6563bc6-1fa4-46dc-9696-8ea516eaa3db"},{"name":"/units_states/:id","id":"d6176aa6-e0be-45bc-9711-4ad099c30b77","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"fab2f033-15de-46a4-ad7b-5ae422c0c9a2\",\n    \"name\": \"Терминал Gelileo\",\n    \"date_from\": \"2022-10-10\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units_states/:id","description":"<p><strong>Обновление состояния объекта</strong></p>\n<hr />\n<p>Параметр запроса id - ID состояния</p>\n<p><strong>Тело запроса JSON:</strong></p>\n<p>name - название состояния, обязательная строка.</p>\n<p>from_date - дата состояния, обязательное в формате yyyy-MM-dd</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>PUT /units_states/fab2f033-15de-46a4-ad7b-5ae422c0c9a2</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"fab2f033-15de-46a4-ad7b-5ae422c0c9a2\",\n    \"name\": \"Терминал Gelileo\",\n    \"date_from\": \"2022-10-10\"\n}\n\n</code></pre>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<p>В ответ приходят все состояния объекта, как в запросе GET /units_states/:unit_id</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": \"fab2f033-15de-46a4-ad7b-5ae422c0c9a2\",\n        \"name\": \"Терминал Gelileo\",\n        \"date_from\": \"2022-10-10\",\n        \"state_unit\": {\n            \"id\": \"04e234d4-1a35-402b-ad4b-16d0969e389e\",\n            \"terminal_type\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            },\n            \"imei\": \"862273040906299\"\n        }\n    },\n    {\n        \"id\": \"57814be3-d38f-4540-b155-184204a0fe27\",\n        \"name\": \"Начальное состояние\",\n        \"date_from\": \"2020-12-09\",\n        \"state_unit\": {\n            \"id\": \"9d34e736-4565-4d1c-b83f-fab119b44e6f\",\n            \"terminal_type\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            },\n            \"imei\": \"862273040906299\"\n        }\n    }\n]\n\n</code></pre>\n","urlObject":{"path":["api_v1","units_states",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID состояния</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"d6176aa6-e0be-45bc-9711-4ad099c30b77"},{"name":"/units_states/:id/copy","id":"5b6db0b6-4d5b-4eb9-a71d-dade9f665e4b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units_states/:id/copy","description":"<p><strong>Копирование состояния объекта</strong></p>\n<hr />\n<p>Параметр запроса id - ID состояния</p>\n<p>Без тела запроса.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST /units_states/fab2f033-15de-46a4-ad7b-5ae422c0c9a2/copy</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<p>В ответ приходят все состояния объекта, как в запросе GET /units_states/:unit_id</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": \"5ec2659e-b05d-4907-9d6c-2ae595e361f0\",\n        \"name\": \"Копия: Начальное состояние\",\n        \"date_from\": \"2024-01-18\",\n        \"state_unit\": {\n            \"id\": \"04e234d4-1a35-402b-ad4b-16d0969e389e\",\n            \"terminal_type\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            },\n            \"imei\": \"862273040906299\"\n        }\n    },\n    {\n        \"id\": \"57814be3-d38f-4540-b155-184204a0fe27\",\n        \"name\": \"Начальное состояние\",\n        \"date_from\": \"2020-12-09\",\n        \"state_unit\": {\n            \"id\": \"0efe7ee0-4748-4f9c-a1b6-0d7c70afa628\",\n            \"terminal_type\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            },\n            \"imei\": \"862273040906299\"\n        }\n    }\n]\n\n</code></pre>\n","urlObject":{"path":["api_v1","units_states",":id","copy"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID состояния</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"5b6db0b6-4d5b-4eb9-a71d-dade9f665e4b"},{"name":"/units_states/:id","id":"1357ac6f-048e-4b11-ae00-11fdf94a8a35","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"fab2f033-15de-46a4-ad7b-5ae422c0c9a2\",\n    \"name\": \"Терминал Gelileo\",\n    \"date_from\": \"2022-10-10\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units_states/:id","description":"<p><strong>Удаление состояния объекта</strong></p>\n<hr />\n<p>Параметр запроса id - ID состояния</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>DELETE /units_states/fab2f033-15de-46a4-ad7b-5ae422c0c9a2</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<p>В ответ приходят все состояния объекта, как в запросе GET /units_states/:unit_id</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": \"57814be3-d38f-4540-b155-184204a0fe27\",\n        \"name\": \"Начальное состояние\",\n        \"date_from\": \"2020-12-09\",\n        \"state_unit\": {\n            \"id\": \"9d34e736-4565-4d1c-b83f-fab119b44e6f\",\n            \"terminal_type\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            },\n            \"imei\": \"862273040906299\"\n        }\n    }\n]\n\n</code></pre>\n","urlObject":{"path":["api_v1","units_states",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID состояния</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"1357ac6f-048e-4b11-ae00-11fdf94a8a35"},{"name":"/units_states/:unit_id","id":"15bc39a8-0654-4f5d-9423-5d744340cecf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/units_states/:unit_id","description":"<p><strong>Получение состояний объекта</strong></p>\n<hr />\n<p>Параметр запроса <strong>unit_id</strong> - ID объекта</p>\n<p>Запрос без тела</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>GET /units_states/897c7708-6758-4da0-92f7-208d8caa2f07</p>\n<hr />\n<p>Пример ответа:</p>\n<p>В ответ приходят все состояния объекта в порядке убывания даты (date_from).</p>\n<p><strong>Поля:</strong></p>\n<p>id - ID состояния.</p>\n<p>name - имя состояния.</p>\n<p>date_from - дата состояния.</p>\n<p>state_unit - Короткая информация об объекте в этом состоянии, имеет следующие поля:</p>\n<p>id - объекта. При нажатии на редактирование необходимо открыть объект по этому ID.</p>\n<p>terminal_type - тип терминала</p>\n<p>imei - IMEI</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": \"fab2f033-15de-46a4-ad7b-5ae422c0c9a2\",\n        \"name\": \"Терминал Navtelecom\",\n        \"date_from\": \"2022-10-09\",\n        \"state_unit\": {\n            \"id\": \"897c7708-6758-4da0-92f7-208d8caa2f07\",\n            \"terminal_type\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            },\n            \"imei\": \"862273040906299\"\n        }\n    },\n    {\n        \"id\": \"57814be3-d38f-4540-b155-184204a0fe27\",\n        \"name\": \"Начальное состояние\",\n        \"date_from\": \"2020-12-09\",\n        \"state_unit\": {\n            \"id\": \"9d34e736-4565-4d1c-b83f-fab119b44e6f\",\n            \"terminal_type\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            },\n            \"imei\": \"862273040906299\"\n        }\n    }\n]\n\n</code></pre>\n","urlObject":{"path":["api_v1","units_states",":unit_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID объекта</p>\n","type":"text/plain"},"type":"any","value":"","key":"unit_id"}]}},"response":[],"_postman_id":"15bc39a8-0654-4f5d-9423-5d744340cecf"},{"name":"/units_states_count","id":"3a53fde0-a906-4542-8372-4fb799faacd7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": \"2022-10-10 00:00:00\",\n    \"to\": \"2024-11-10 00:00:00\",\n    \"groups\": [\n        {\"id\": \"6c39623d-9d91-45c6-8754-aba1de05ea5e\"}\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units_states_count","description":"<p><strong>Получение количества состояний объектов в группе на интервале</strong></p>\n<hr />\n<p>Тела запроса JSON:</p>\n<p>from - дата и время начала интервала.</p>\n<p>to - дата и время окончания интервала.</p>\n<p>groups - группа объектов.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"from\": \"2022-10-10 00:00:00\",\n    \"to\": \"2024-11-10 00:00:00\",\n    \"groups\": [\n        {\"id\": \"6c39623d-9d91-45c6-8754-aba1de05ea5e\"}\n    ]\n}\n\n</code></pre>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Возвращается JSON массив в формате элементов :&lt;количество состояний&gt;</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"216ee2cf-38d8-4ecc-a08f-c111a61ddf61\": 4\n    },\n    {\n        \"20470514-e2b9-49b9-9470-e2a34cf8c1b4\": 1\n    }\n]\n\n</code></pre>\n","urlObject":{"path":["api_v1","units_states_count"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3a53fde0-a906-4542-8372-4fb799faacd7"}],"id":"a7d4a26b-4249-4ed3-8f5b-07cacc64fc48","description":"<p>Архив состояний объекта</p>\n","_postman_id":"a7d4a26b-4249-4ed3-8f5b-07cacc64fc48"},{"name":"Прицепы","item":[{"name":"/trailers","id":"8ba2dcfd-6db6-4397-b46f-ba54f68a7716","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"XYZ111222333\",\n    \"name\": \"Прецеп2\",\n    \"description\": \"Описания прецепа2\",\n    \"custom_fields\": [\n        {\n            \"name\": \"масса\",\n            \"key\": \"масса\",\n            \"value\": \"20 т\"\n        },\n        {\n            \"name\": \"цвет\",\n            \"key\": \"цвет\",\n            \"value\": \"синый\"\n        }\n    ]\n}"},"url":"{{base_url}}/api_v1/trailers","description":"<p><strong>Создание прицепа</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"name\": строка, номер, наименование прецепа,\n\"code\": строка, уникальный код прицепа\n\"description\": строка, описания прицепа\n\"width\": число, ширина прицепа\n\"custom_fields\": [ // пользовательские доп поля: // смотри GET /custom_fields\n    {\"name\": \"цвет\", 'key': 'цвет', \"value\": \"синый\"},\n    {\"name\": \"масса\", \"key\": \"масса\", \"value\": \"20 т\"}\n\n</code></pre><hr />\n<p><strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p>Пример запроса:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": \"XYZ111222333\",\n    \"name\": \"Прецеп1\",\n    \"description\": \"Описания прецепа1\",\n    \"width\": 2.5,\n    \"custom_fields\": [\n        {\n            \"name\": \"масса\",\n            \"key\": \"масса\",\n            \"value\": \"20 т\"\n        },\n        {\n            \"name\": \"цвет\",\n            \"key\": \"цвет\",\n            \"value\": \"синый\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p>Пример ответа:</p>\n<p>Возвращается созданный прицеп</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"name\": \"Прецеп1\",\n    \"code\": \"XYZ111222333\",\n    \"description\": \"Описания прецепа1\",\n    \"width\": 2.5,\n    \"custom_fields\": [\n        {\n            \"name\": \"масса\",\n            \"key\": \"масса\",\n            \"value\": \"20 т\",\n            \"group\": \"custom\"\n        },\n        {\n            \"name\": \"цвет\",\n            \"key\": \"цвет\",\n            \"value\": \"синый\",\n            \"group\": \"custom\"\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","trailers"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8ba2dcfd-6db6-4397-b46f-ba54f68a7716"},{"name":"/trailers?ids=:ids","id":"ff56a69a-14fe-4d4e-ada1-7fee4738577b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/trailers?ids=","description":"<p><strong>Поиск прицепов по ID (через запятую)</strong></p>\n<hr />\n<p>Возвращает массив прицепов.<br />Если параметр 'ids' пустой (т.е. запрос = 'GET /trailers', без параметра), то вернётся список всех прицепов по всем компаниям пользователя, из которого исключаются удаленные прицепы.</p>\n<p>Если ids не пустой (т.е. запрос = 'GET /trailers?ids=00215-54021..,25541-454754-4513..'), то вернётся список только из запрошенных прицепов.</p>\n<p>Если в параметре ids содержится только один id, то вернется НЕ массив из 1 элемента, а конкретный прицеп.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>/trailers?ids=7c4253d5-4bc6-4885-bf25-985a75919fb4&amp;\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"name\": \"Прецеп1\",\n    \"code\": \"XYZ111222333\",\n    \"description\": \"Описания прецепа1\",\n    \"width\": 2.5,\n    \"custom_fields\": [\n        {\n            \"name\": \"масса\",\n            \"key\": \"масса\",\n            \"value\": \"20 т\",\n            \"group\": \"custom\"\n        },\n        {\n            \"name\": \"цвет\",\n            \"key\": \"цвет\",\n            \"value\": \"синый\",\n            \"group\": \"custom\"\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","trailers"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"ff56a69a-14fe-4d4e-ada1-7fee4738577b"},{"name":"/trailers/:trailer_id","id":"3dd87c86-a445-4661-a9e2-aa03a75b48dd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"name\": \"Прецеп1 новая названия\",\n    \"code\": \"XYZ111222333\",\n    \"description\": \"новая описания прецепа1\",\n    \"custom_fields\": [\n        {\n            \"name\": \"масса\",\n            \"key\": \"масса\",\n            \"value\": \"19 т\",\n            \"group\": \"custom\"\n        },\n        {\n            \"name\": \"цвет\",\n            \"key\": \"цвет\",\n            \"value\": \"красный\",\n            \"group\": \"custom\"\n        },\n        {\n            \"name\": \"123\",\n            \"key\": \"123\",\n            \"value\": \"456\",\n            \"group\": \"custom\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/trailers/:trailer_id","description":"<p><strong>Обновление данных прицепа</strong></p>\n<hr />\n<p>Обновляет переданные параметры</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>см метод POST /trailers</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Аналогичен одному объекту из ответа метода GET /trailers?ids=:trailer_id</p>\n","urlObject":{"path":["api_v1","trailers",":trailer_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID прицепа</p>\n","type":"text/plain"},"type":"any","value":"","key":"trailer_id"}]}},"response":[],"_postman_id":"3dd87c86-a445-4661-a9e2-aa03a75b48dd"},{"name":"/trailers/:trailer_id","id":"39e382b8-f19d-4105-8172-eafdfcac585b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/trailers/:trailer_id","description":"<p>Удаление прицепа по его id</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id прицепа</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong> 200</p>\n<p>Если прицеп с таким id не найден возвращается ошибка 422</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 422,\n    \"field\": \"id\",\n    \"message\": \"Параметр не найден в базе\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","trailers",":trailer_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID прицепа</p>\n","type":"text/plain"},"type":"any","value":"","key":"trailer_id"}]}},"response":[],"_postman_id":"39e382b8-f19d-4105-8172-eafdfcac585b"},{"name":"/trailers?ids=:ids","id":"acf28abc-79d8-437b-abd8-eeea8b78e3c1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/trailers?ids=","description":"<p><strong>Планирование удаления прицепов</strong></p>\n<hr />\n<p>см. DELETE /units?ids=:ids</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","trailers"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"acf28abc-79d8-437b-abd8-eeea8b78e3c1"},{"name":"/trailers","id":"44462c72-b47e-40bf-a3be-0bcc42d61410","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/trailers","description":"<p><strong>Планирование удаления прицепов</strong></p>\n<hr />\n<p>см. DELETE /units</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","trailers"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"44462c72-b47e-40bf-a3be-0bcc42d61410"},{"name":"/trailes/list","id":"885d3b2c-b5ff-422c-ba06-bd84f24326cb","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true}},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": 0,\n    \"count\": 10,\n    \"sortField\": \"name\",\n    \"sortDesc\": \"false\",\n    \"conditions\": [\n        {\n            \"field\": \"name\",\n            \"value\": \"Прецеп1 новая названия\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/trailers/list","description":"<p><strong>Получить прицепы по фильтру</strong></p>\n<hr />\n<p>Аналогично запросу POST /users/list</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>from - с какого найденного элемента выдавать результат.</p>\n<p>count - максимальное число элементов.</p>\n<p>sortField - поле сортировки, значения<br />[name, created, is_delete]</p>\n<p>sortDesc - сортировка по убыванию? значения \"true\", \"false\".</p>\n<p>conditions - условие отбора в виде массива [ {\"field\":\"значение\", \"value\":\"значение\"}, {... и т.д. ...} ].<br />значения для field - name (можно искать по неполному слову), code, description</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Получить первые 10 прицепов, отсортированные по возрастанию, по имени, которые имеют ID прицепа 7e1aaba2-625a-4a4c-b765-9934bec5a096</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 10,\n    \"sortField\": \"name\",\n    \"sortDesc\": \"false\",\n    \"conditions\": [\n        {\n            \"field\": \"name\",\n            \"value\": \"Прицеп1 новое название\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 1,\n    \"list\": [\n        {\n            \"id\": \"7c4253d5-4bc6-4885-bf25-985a75919fb4\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"name\": \"Прицеп1 новое название\",\n            \"code\": \"XYZ111222333\",\n            \"description\": \"новое описание прецепа1\",\n            \"width\": 2.5,\n            \"custom_fields\": [\n                {\n                    \"name\": \"масса\",\n                    \"key\": \"масса\",\n                    \"value\": \"19 т\",\n                    \"group\": \"custom\"\n                },\n                {\n                    \"name\": \"цвет\",\n                    \"key\": \"цвет\",\n                    \"value\": \"красный\",\n                    \"group\": \"custom\"\n                },\n                {\n                    \"name\": \"123\",\n                    \"key\": \"123\",\n                    \"value\": \"456\",\n                    \"group\": \"custom\"\n                }\n            ]\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","trailers","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"885d3b2c-b5ff-422c-ba06-bd84f24326cb"}],"id":"3a6d58b8-f270-4a6d-89f8-f53f7e6760fe","description":"<p>API по работе с Прицепами</p>\n","_postman_id":"3a6d58b8-f270-4a6d-89f8-f53f7e6760fe"},{"name":"События","item":[{"name":"/events","id":"0d7c13ee-9a8d-4639-93fc-b2aa385be05c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"unit\" : {\n        \"id\": \"58acca5a-1f17-4418-9143-3e4c8a320f3a\"\n    },\n    \"datetime\": \"2020-01-02 12:30:00\",\n    \"type\": {\"key\": \"filling\"},\n    \"deviation_minutes\": 20,\n    \"filled\": 101.5\n}"},"url":"{{base_url}}/api_v1/events","description":"<p><strong>Создание события для объекта</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"unit\": {\"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"} указать ID объекта в unit.id, обязательно\n\"type\": {\"key\": \"filling\"} // ключ типа события. Список типов может быть получен по запросу GET /dictionaries. Необходимо выбрать те записи у которых type=event_type, возможные значения: filling, theft, accident, service, waybill, random\nlatitude: Координата широты на карте. Вещественное значение\nlongitude: Координата долготы на карте. Вещественное значение\n    latitude и longitude должны выбираться на стороне клиента для всех типов события, кроме \"путевые листы\" при смене даты с помощью метода POST /point.  \nОстальные поля зависят от типа события\n1) Заправка - type.key=filling\n\"datetime\": \"2020-01-01 12:30:00\", обязательное, дата и время события\n\"deviation_minutes\": 100, Отклонение, мин.:  (обязательное) - числовое поле от 0 до 1000\n\"filled\": 30.5 - Заправлено топлива, л:  (обязательное) - числовое поле больше 0\n\"price\": 3050.7 - Стоимость (необязательное): - числовое поле от 0.\n\"description\": \"some details\", Описание: (необязательное) - текстовое поле\n2) Слив - type.key=theft\n\"datetime\": \"2020-01-01 12:30:00\", Дата время; (Как и в Заправках)\n\"deviation_minutes\": 100, Отклонение, мин.;  (Как и в Заправках)\n\"stolen\": 20.8, Слито топлива, л;  (Как “Заправлено топлива” и в Заправках)\n\"description\": \"some details\", Описание:  (Как и в Заправках)\n3) ДТП - type.key=accident\n\"datetime\": \"2020-01-01 12:30:00\", Дата время; (Как и в Заправках)\n\"deviation_minutes\": 100, Отклонение, мин.;  (Как и в Заправках)\n\"description\": \"some details\", Описание:  (Как и в Заправках)\n4) Тех. обслуживание - type.key=service\n\"datetime\": \"2020-01-01 12:30:00\", Дата время; (Как и в Заправках)\n\"deviation_minutes\": 100, Отклонение, мин.;  (Как и в Заправках)\n\"service_name\": \"Установка ДУТ\", Название сервиса\n\"motohours\": 2345.5, Моточасы, ч: (необязательное) - числовое поле\n\"millage\": 23453.5, Пробег, км: (необязательное) - числовое поле. \n\"duration_hours\": 3.5, Длительность, ч: (необязательное) - числовое поле. \n\"price\": 3000.4, Стоимость:  (Как и в Заправках)\n\"guaranteed\": true, Гарантийный(обязательный): true/false.\n\"description\": \"some details\", Описание:  (Как и в Заправках)\nПри создании события ТО вызывается метод POST /point для получения координаты. \nОн также возвращает показания датчиков.\nПолучить моточасы из записи, где group=\"sensors\" и type=\"abs_motohours\". \nА для пробега group=\"sensors\" и type=\"mileage\". \n5) Путевой лист - type.key=waybill\n\"start_date\": \"2020-01-03 12:30:00\", Начало: дата и времемя (обязательное)\n\"finish_date\": \"2020-01-05 18:00:00\", Окончание: дата и времемя (обязательное)\n\"user_id\": ID Водителя, (необязатльное) - выбор из списка Пользователей с отметкой водитель\n\"motohours\": 2345.5, Моточасы, ч: (необязательное) - числовое поле\n\"millage\": 23453.5, Пробег, км: (необязательное) - числовое поле.\n\"filled\": 30.5 - Заправлено топлива, л:  (необязательное)\n6)Статус ТС - type.key=vehicle_status\n\"datetime\": \"2020-01-01 12:30:00\", Дата время; (Как и в Заправках)\n\"type_name\": \"В гараже\", Тип события (обязательное) текстовое поле\n\"description\": \"some details\", Описание:  (Как и в Заправках\n7)Произвольное событие - type.key=random\n\"datetime\": \"2020-01-01 12:30:00\", Дата время; (Как и в Заправках)\n\"deviation_minutes\": 100, Отклонение, мин.;  (Как и в Заправках)\n\"type_name\": \"Повышение скорости\", Тип события (обязательное) текстовое поле\n\"description\": \"some details\", Описание:  (Как и в Заправках)\n\n</code></pre><hr />\n<p>﻿<strong>Роль:</strong> Оператор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n\"unit\" : {\n\"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n},\n\"datetime\": \"2020-01-02 12:30:00\",\n\"type\": {\"key\": \"filling\"},\n\"deviation_minutes\": 20,\n\"filled\": 101.5,\n\"price\": \"3532.7\",\n\"description\": \"som details\",\n\"latitude\": 53.343243,\n\"longitude\": 33.56432\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Возвращается созданное событие</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n\"id\": \"da47b5da-d030-44f0-acc4-a43107dbb090\",\n\"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n\"datetime\": \"2020-01-02 12:30:00\",\n\"type\": {\"key\": \"filling\"},\n\"deviation_minutes\": 20,\n\"filled\": 101.5,\n\"price\": \"3532.7\",\n\"description\": \"som details\",\n\"latitude\": 53.343243,\n\"longitude\": 33.56432\n}\n\n</code></pre><hr />\n<p>К событиям можно добавлять фотографии. Максимальное количество 10 шт. Максимальный размер одной фотографии 10 мб.</p>\n<p>Перед отправкой события, фотографии должны быть загружены на сервер.<br />Загрузить фотографии нужно иcпользуя POST {{base_url}}/upload_photos/events.</p>\n<p>В этот запрос нужно положить одно фото в поле file.</p>\n<p>Запрос должен быть в формате multipart/form-data</p>\n<p>Пример ответа:</p>\n<p>Возвращается два поля в JSON small и original.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"small\": {\n        \"url\": \"/photos/events/fa3357f6-7ff5-4f4a-9840-99eaf3bf1de5_300.png\",\n        \"width\": 251,\n        \"height\": 300,\n        \"param_type\": \"events\"\n    },\n    \"original\": {\n        \"url\": \"/photos/events/fa3357f6-7ff5-4f4a-9840-99eaf3bf1de5_original.png\",\n        \"width\": 628,\n        \"height\": 749,\n        \"param_type\": \"events\"\n    }\n}\n\n</code></pre><p>small - для загрузки изображения в списке.</p>\n<p>original - для открытия оригинального фото с большим размером.</p>\n<p>Запросить нужное фото можно через роут {{base_url}}://api_v1/{url}.<br />Все добавленные фотографии необходимо отправлять в поле photos при создании и обновлении события.</p>\n<p><strong>Пример запроса:</strong><br />POST /api_v1/events</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"unit\": {\n        \"id\": \"2bd74bab-8173-4c06-8fd8-ad923d3ad7d3\"\n    },\n    \"type\": {\n        \"key\": \"accident\"\n    },\n    \"datetime\": \"2024-03-19 09:57:58\",\n    \"deviation_minutes\": 10,\n    \"description\": \"DPT\",\n    \"latitude\": 55.6558837890625,\n    \"longitude\": 37.83785629272461,\n    \"photos\": [\n        {\n            \"small\": {\n                \"url\": \"/photos/events/5e65cfe3-31e3-4bee-83ea-b7bf23ad6bd6_300.jpeg\",\n                \"width\": 300,\n                \"height\": 200,\n                \"param_type\": \"events\"\n            },\n            \"original\": {\n                \"url\": \"/photos/events/5e65cfe3-31e3-4bee-83ea-b7bf23ad6bd6_original.jpeg\",\n                \"width\": 5184,\n                \"height\": 3456,\n                \"param_type\": \"events\"\n            }\n        },\n        {\n            \"small\": {\n                \"url\": \"/photos/events/fa3357f6-7ff5-4f4a-9840-99eaf3bf1de5_300.png\",\n                \"width\": 251,\n                \"height\": 300,\n                \"param_type\": \"events\"\n            },\n            \"original\": {\n                \"url\": \"/photos/events/fa3357f6-7ff5-4f4a-9840-99eaf3bf1de5_original.png\",\n                \"width\": 628,\n                \"height\": 749,\n                \"param_type\": \"events\"\n            }\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","events"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"0d7c13ee-9a8d-4639-93fc-b2aa385be05c"},{"name":"/events/bulk","id":"ec502720-dba5-4631-b2c0-dec8044269a8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"[\n  {\n    \"unit\" : {\n        \"id\": \"58acca5a-1f17-4418-9143-3e4c8a320f3a\"\n    },\n    \"datetime\": \"2020-01-02 12:30:00\",\n    \"type\": {\"key\": \"filling\"},\n    \"deviation_minutes\": 20,\n    \"filled\": 101.5\n  }\n]"},"url":"{{base_url}}/api_v1/events/bulk","description":"<h3 id=\"массовое-создание-событий\">Массовое создание событий</h3>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>Тело запроса должно содержать массив объектов событий.<br /><strong>Общие поля (для каждого объекта в массиве):</strong></p>\n<ul>\n<li><p>\"unit\": {\"id\": \"UUID\"} — (обязательное) ID объекта, для которого создается событие.</p>\n</li>\n<li><p>\"type\": {\"key\": \"string\"} — (обязательное) Ключ типа события. Возможные значения: filling, theft, accident, service, waybill, vehicle_status, random.</p>\n</li>\n<li><p>latitude: Координата широты на карте. Вещественное значение.</p>\n</li>\n<li><p>longitude: Координата долготы на карте. Вещественное значение.</p>\n<ul>\n<li>Примечание: latitude и longitude должны выбираться на стороне клиента для всех типов события, кроме \"путевые листы\" при смене даты с помощью метода POST /point.</li>\n</ul>\n</li>\n</ul>\n<p><strong>Остальные поля зависят от типа события (для каждого объекта в массиве):</strong></p>\n<p><strong>1) Заправка</strong> — type.key=filling</p>\n<ul>\n<li><p>\"datetime\": \"2020-01-01 12:30:00\" (обязательное) — дата и время события.</p>\n</li>\n<li><p>\"deviation_minutes\": 100 (обязательное) — Отклонение, мин. Числовое поле от 0 до 1000.</p>\n</li>\n<li><p>\"filled\": 30.5 (обязательное) — Заправлено топлива, л. Числовое поле больше 0.</p>\n</li>\n<li><p>\"price\": 3050.7 (необязательное) — Стоимость. Числовое поле от 0.</p>\n</li>\n<li><p>\"description\": \"some details\" (необязательное) — Описание. Текстовое поле.</p>\n</li>\n</ul>\n<p><strong>2) Слив</strong> — type.key=theft</p>\n<ul>\n<li><p>\"datetime\": \"2020-01-01 12:30:00\" (обязательное).</p>\n</li>\n<li><p>\"deviation_minutes\": 100 (обязательное).</p>\n</li>\n<li><p>\"stolen\": 20.8 (обязательное) — Слито топлива, л.</p>\n</li>\n<li><p>\"description\": \"some details\" (необязательное).</p>\n</li>\n</ul>\n<p><strong>3) ДТП</strong> — type.key=accident</p>\n<ul>\n<li><p>\"datetime\": \"2020-01-01 12:30:00\" (обязательное).</p>\n</li>\n<li><p>\"deviation_minutes\": 100 (обязательное).</p>\n</li>\n<li><p>\"description\": \"some details\" (необязательное).</p>\n</li>\n</ul>\n<p><strong>4) Тех. обслуживание</strong> — type.key=service</p>\n<ul>\n<li><p>\"datetime\": \"2020-01-01 12:30:00\" (обязательное).</p>\n</li>\n<li><p>\"deviation_minutes\": 100 (обязательное).</p>\n</li>\n<li><p>\"service_name\": \"Установка ДУТ\" (обязательное) — Название сервиса.</p>\n</li>\n<li><p>\"motohours\": 2345.5 (необязательное) — Моточасы, ч.</p>\n</li>\n<li><p>\"millage\": 23453.5 (необязательное) — Пробег, км.</p>\n</li>\n<li><p>\"duration_hours\": 3.5 (необязательное) — Длительность, ч.</p>\n</li>\n<li><p>\"price\": 3000.4 (необязательное) — Стоимость.</p>\n</li>\n<li><p>\"guaranteed\": true (обязательное) — Гарантийный: true/false.</p>\n</li>\n<li><p>\"description\": \"some details\" (необязательное).</p>\n</li>\n</ul>\n<p><strong>5) Путевой лист</strong> — type.key=waybill</p>\n<ul>\n<li><p>\"start_date\": \"2020-01-03 12:30:00\" (обязательное) — Начало: дата и время.</p>\n</li>\n<li><p>\"finish_date\": \"2020-01-05 18:00:00\" (обязательное) — Окончание: дата и время.</p>\n</li>\n<li><p>\"user_id\": ID Водителя (необязательное).</p>\n</li>\n<li><p>\"motohours\": 2345.5 (необязательное).</p>\n</li>\n<li><p>\"millage\": 23453.5 (необязательное).</p>\n</li>\n<li><p>\"filled\": 30.5 (необязательное).</p>\n</li>\n</ul>\n<p><strong>6) Статус ТС</strong> — type.key=vehicle_status</p>\n<ul>\n<li><p>\"datetime\": \"2020-01-01 12:30:00\" (обязательное).</p>\n</li>\n<li><p>\"type_name\": \"В гараже\" (обязательное) — Тип события, текстовое поле.</p>\n</li>\n<li><p>\"description\": \"some details\" (необязательное).</p>\n</li>\n</ul>\n<p><strong>7) Произвольное событие</strong> — type.key=random</p>\n<ul>\n<li><p>\"datetime\": \"2020-01-01 12:30:00\" (обязательное).</p>\n</li>\n<li><p>\"deviation_minutes\": 100 (обязательное).</p>\n</li>\n<li><p>\"type_name\": \"Повышение скорости\" (обязательное) — Тип события, текстовое поле.</p>\n</li>\n<li><p>\"description\": \"some details\" (необязательное).</p>\n</li>\n</ul>\n<p><strong>Роль:</strong> Оператор и выше.</p>\n<p><strong>Важно:</strong><br />Операция выполняется в одной транзакции. Если хотя бы одно событие в<br />списке не пройдет валидацию (или у пользователя нет доступа к указанному<br />объекту), ни одно событие не будет создано.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"unit\": {\n      \"id\": \"7547dfbc-4e2f-46a2-9f24-8e61a5cc646c\"\n    },\n    \"type\": {\n      \"key\": \"filling\"\n    },\n    \"datetime\": \"2026-01-15 15:18:10\",\n    \"deviation_minutes\": 23,\n    \"filled\": 232,\n    \"price\": 23,\n    \"description\": \"Заправка на трассе\",\n    \"latitude\": 53.13996,\n    \"longitude\": 26.06976\n  },\n  {\n    \"unit\": {\n      \"id\": \"f449dd65-412f-4e79-83a8-838d8f5dcab7\"\n    },\n    \"type\": {\n      \"key\": \"accident\"\n    },\n    \"datetime\": \"2026-01-15 15:20:10\",\n    \"deviation_minutes\": 32,\n    \"description\": \"ДТП\",\n    \"latitude\": 53.95149,\n    \"longitude\": 27.70800\n  }\n]\n\n</code></pre>\n<p><strong>Пример ответа:</strong></p>\n<p>Возвращается массив созданных событий.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": \"49bac727-0d5b-4e18-b71b-155437fe17a6\",\n        \"company_id\": \"5ed16b37-23a4-4f03-806e-5e175f08c9a9\",\n        \"unit\": {\n            \"id\": \"7547dfbc-4e2f-46a2-9f24-8e61a5cc646c\",\n            \"name\": \"unit name\"\n        },\n        \"type\": {\n            \"key\": \"filling\",\n            \"type\": null,\n            \"value\": null\n        },\n        \"datetime\": \"2026-01-15 18:47:43\",\n        \"deviation_minutes\": 123,\n        \"filled\": 123.0,\n        \"price\": 123.0,\n        \"description\": \"123\",\n        \"latitude\": 41.120174407958984,\n        \"longitude\": 44.842220306396484,\n        \"photos\": []\n    },\n    ...\n]\n\n</code></pre>\n<hr />\n<p><strong>Работа с фотографиями:</strong></p>\n<p>К событиям в массовом запросе также можно добавлять фотографии. Логика аналогична методу /create.</p>\n<ol>\n<li><p>Фотографии загружаются заранее через POST {{base_url}}/upload_photos/events.</p>\n</li>\n<li><p>Полученный JSON с small и original добавляется в массив photos нужного объекта события внутри общего списка.</p>\n</li>\n</ol>\n<p><strong>Пример части запроса с фото:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"unit\": { \"id\": \"...\" },\n    \"type\": { \"key\": \"filling\" },\n    ...\n    \"photos\": [\n        {\n            \"small\": {\n                \"url\": \"/photos/events/fa3357f6..._300.png\",\n                \"width\": 251,\n                \"height\": 300,\n                \"param_type\": \"events\"\n            },\n            \"original\": {\n                \"url\": \"/photos/events/fa3357f6..._original.png\",\n                \"width\": 628,\n                \"height\": 749,\n                \"param_type\": \"events\"\n            }\n        }\n    ]\n  },\n  {\n    \"unit\": { \"id\": \"...\" },\n    ...\n  }\n]\n\n</code></pre>\n","urlObject":{"path":["api_v1","events","bulk"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"ec502720-dba5-4631-b2c0-dec8044269a8"},{"name":"/events?ids=:ids","id":"4aeb7861-dbec-4b19-8ba1-c83de82bc0ea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/events?ids=","description":"<p><strong>Поиск событий по ID (через запятую)</strong></p>\n<hr />\n<p>Возвращает массив событий.<br />Если параметр 'ids' пустой (т.е. запрос = 'GET /events', без параметра), то вернётся список всех событий всех компаний пользователя, из которого исключаются удаленные связи. Если ids не пустой (т.е. запрос = 'GET /events?ids=00215-54021..,25541-454754-4513..'), то вернётся список только из запрошенных событий.</p>\n<p>Если в параметре ids содержится только один id, то вернется НЕ массив из 1 элемента, а конкретное собитие.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>/events?ids=da47b5da-d030-44f0-acc4-a43107dbb090\n\n</code></pre><p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"da47b5da-d030-44f0-acc4-a43107dbb090\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"datetime\": \"2020-01-02 12:30:00\",\n    \"type\": {\"key\": \"filling\"},\n    \"deviation_minutes\": 20,\n    \"filled\": 101.5,\n    \"price\": \"3532.7\",\n    \"description\": \"som details\",\n    \"latitude\": 53.343243,\n    \"longitude\": 33.56432\n}\n\n</code></pre>","urlObject":{"path":["api_v1","events"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"4aeb7861-dbec-4b19-8ba1-c83de82bc0ea"},{"name":"/events/:id","id":"56bb4b56-b77f-4013-8e7c-a873d27e1e6e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"b193f468-f0cf-4551-ad0a-8615f1f0dd7a\",\n    \"company_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\n    \"unit\": {\n        \"id\": \"58acca5a-1f17-4418-9143-3e4c8a320f3a\"\n    },\n    \"type\": {\n        \"key\": \"filling\",\n        \"type\": \"event_type\",\n        \"value\": \"Заправка\"\n    },\n    \"datetime\": \"2020-01-02 12:30:00\",\n    \"deviation_minutes\": 20,\n    \"filled\": 102.5\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/events/:id","description":"<p><strong>Обновление данных события</strong></p>\n<hr />\n<p>Обновляет переданные параметры</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>см метод POST /events</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Оператор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Аналогичен одному событию из ответа метода GET /events?ids=:id</p>\n","urlObject":{"path":["api_v1","events",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID события</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"56bb4b56-b77f-4013-8e7c-a873d27e1e6e"},{"name":"/events/:id","id":"09f5c20b-4039-4b5c-b104-31aec253a4c1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/events/:id","description":"<p><strong>Удаление события по его id</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id события</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Оператор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong> 200</p>\n<p>Если событие с таким id не найдено, то возвращается ошибка 422</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 422,\n    \"field\": \"id\",\n    \"message\": \"Параметр не найден в базе\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","events",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID события</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"09f5c20b-4039-4b5c-b104-31aec253a4c1"},{"name":"/events?ids=:ids","id":"ed1e6cee-aeff-477a-8004-35f45c2370dd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/events?ids=","description":"<p><strong>Планирование удаления события</strong></p>\n<hr />\n<p>см. DELETE /units?ids=:ids</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Оператор и выше.</p>\n","urlObject":{"path":["api_v1","events"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"ed1e6cee-aeff-477a-8004-35f45c2370dd"},{"name":"/events","id":"b94fd795-0755-456a-aebc-513b3438e90d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/events","description":"<p><strong>Планирование удаления события</strong></p>\n<hr />\n<p>см. DELETE /units</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Оператор и выше.</p>\n","urlObject":{"path":["api_v1","events"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b94fd795-0755-456a-aebc-513b3438e90d"},{"name":"/events/list","id":"fd8ab6f1-036e-47f5-8541-ea5d4a274a4b","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true}},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": 0,\n    \"count\": 10,\n    \"conditions\": [\n        {\n            \"field\": \"unit.id\",\n            \"value\": \"58acca5a-1f17-4418-9143-3e4c8a320f3a\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/events/list","description":"<p><strong>Получить события по фильтру</strong></p>\n<hr />\n<p>Аналогично запросу POST /users/list</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>from - с какого найденного элемента выдавать результат.</p>\n<p>count - максимальное число элементов.</p>\n<p>sortField - поле сортировки, значения<br />[type.key, unit.id]</p>\n<p>sortDesc - сортировка по убыванию? значения \"true\", \"false\".</p>\n<p>conditions - условие отбора в виде массива [ {\"field\":\"значение\", \"value\":\"значение\"}, {... и т.д. ...} ].<br />значения для field - unit.id, type.key</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Получить первые 10 событий от 2020-01-01 00:00:00 до 2020-01-10 00:00:00, отсортированные по возрастанию type.key, для объекта с ID 7e1aaba2-625a-4a4c-b765-9934bec5a096</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 10,\n    \"sortField\": \"type.key\",\n    \"sortDesc\": \"false\",\n    \"conditions\": [\n        {\n            \"field\": \"unit.id\",\n            \"value\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n        },\n        {\n            \"field\": \"date_from\",\n            \"value\": \"2020-01-01 00:00:00\"\n        },\n         {\n            \"field\": \"date_to\",\n            \"value\": \"2020-01-10 00:00:00\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 2,\n    \"list\": [\n        {\n            \"id\": \"da47b5da-d030-44f0-acc4-a43107dbb090\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"unit\": {\n                \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n            },\n           \"type\": {\n                \"key\": \"filling\"\n            },\n            \"datetime\": \"2020-01-02 12:30:00\",\n            \"deviation_minutes\": 20,\n            \"filled\": 102.5\n        },\n        {\n            \"id\": \"d604452b-9e9d-4e01-817d-b0d391138569\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"unit\": {\n                \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n            },\n           \"type\": {\n                \"key\": \"filling\"\n            },\n            \"datetime\": \"2020-01-03 14:10:00\",\n            \"deviation_minutes\": 20,\n            \"filled\": 101.5\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","events","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"fd8ab6f1-036e-47f5-8541-ea5d4a274a4b"},{"name":"/events/service_names","id":"cfd7c65b-ab0d-4ab6-b208-c85ab4989573","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true}},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/events/service_names","description":"<p>Получение всех названий ТО при создании события</p>\n<p>Воозврашает Осмотр, Замена терминала, Установка ДУТ, Замена ДУТ, Калибровка ДУТ и новые введенные сервисы внутри компании</p>\n<p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    \"Осмотр\",\n    \"Замена терминала\",\n    \"Установка ДУТ\",\n    \"Замена ДУТ\",\n    \"Калибровка ДУТ\",\n    \"21\",\n    \"Terminal replacement\",\n    \"Замена ремня ГРМ\",\n    \"Новый сервмс\",\n    \"Пищевая заправка\",\n    \"Предыдущий сервис\",\n]\n\n</code></pre><hr />\n","urlObject":{"path":["api_v1","events","service_names"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"cfd7c65b-ab0d-4ab6-b208-c85ab4989573"}],"id":"2d654a7c-7f01-4f05-a466-3c9b3f15af12","description":"<p>API по работе с событиями</p>\n","_postman_id":"2d654a7c-7f01-4f05-a466-3c9b3f15af12"},{"name":"Мониторинг","item":[{"name":"/messages","id":"29c9d8d4-e44d-4648-9ee8-001853e3d007","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"wss://{{base_url}}/messages","description":"<p><strong>Получение аннотаций по объектам компании</strong></p>\n<hr />\n<p>Используется один вебсокет для получения следующих данных:</p>\n<ol>\n<li><p>Последнего сообщения от объекта.</p>\n</li>\n<li><p>Уведомлений за последние сутки.</p>\n</li>\n<li><p>Новых уведомлений.</p>\n</li>\n<li><p>Изменения справочников.</p>\n</li>\n</ol>\n<p>Если сервер использует протокол HTTP, то вебсокет должен работать по протоколу WS. Аналогично, если сервер использует HTTPS, то вебсокет должен работать по протоколу WSS.</p>\n<p>Можно также передать параметр <code>?from_time=1628259485000</code>, где значение — это метка времени в формате Unix (в часовом поясе пользователя). Это нужно, если вы хотите получить данные, начиная с определённого момента времени. Например, если у вас уже есть закэшированные данные на клиенте, и вы хотите получить только новые сообщения, начиная с этого времени.</p>\n<hr />\n<p>Формат получения изменений справочников имеет следующий вид:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"notify\": {\n        \"time\": \"2020-10-16 17:03:16\", //время изменений\n        \"objects\": \"units\", //изменяемая сущность - \"users\", \"units\", \"notifications\" и т.д.\n        \"operation\": \"PUT\", // операция изменения - PUT,POST,DELETE,PATCH\n        \"id\": \"9eb8b795-dfb0-46e7-a35d-0fc43512ba66\", //id изменяемой сущности\n        \"msg\": \"Пользователь Mih обновил объект\" //сообщение \n    }\n}\n\n</code></pre><hr />\n<p>Последнее сообщение от объекта<br />Приходит массив, каждый элемент которого содержит информацию об одном объекте.<br />unit_id - ID объекта<br />unit_name - Имя объекта<br />company_id - ID компании</p>\n<p>В поле columns приходит информация со следующими текстовыми полями:<br />key - уникальный ключ<br />name - Имя поля<br />value - Значение поля<br />group -Группа, с помощью этого поля вы можете группировать данные при показе.</p>\n<p>Возможные значения:<br />main - Основные данные<br />gps - GPS данные<br />sensors - Значения датчиков<br />custom_fields - Допольнительные поля объекта<br />hidden - Скрытые поля</p>\n<p>name и value отображается для пользователя.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[{\n    \"unit_id\": \"a66563fd-8d3c-4de3-b8bb-25537f682dc7\",\n    \"unit_name\": \"JCB 5637НТ 77\",\n    \"company_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\n    \"columns\": [{\n        \"key\": \"unit_name\",\n        \"name\": \"Имя\",\n        \"value\": \"JCB 5637НТ 77\",\n        \"group\": \"main\"\n    }, {\n        \"key\": \"datepoint\",\n        \"name\": \"Был на связи\",\n        \"value\": \"2022-01-14 13:16:34\",\n        \"group\": \"main\"\n    }, {\n        \"key\": \"_datepoint\",\n        \"name\": \"_datepoint\",\n        \"value\": \"2022-01-14 13:16:34\",\n        \"group\": \"hidden\"\n    }, {\n        \"key\": \"speed\",\n        \"name\": \"Скорость\",\n        \"value\": 0,\n        \"group\": \"gps\"\n    }, {\n        \"key\": \"satellites\",\n        \"name\": \"Спутники\",\n        \"value\": 16,\n        \"group\": \"gps\"\n    }, {\n        \"key\": \"_angle\",\n        \"name\": \"Угол\",\n        \"value\": 161,\n        \"group\": \"hidden\"\n    }, {\n        \"key\": \"address\",\n        \"name\": \"Адрес\",\n        \"value\": \"Овражная  10, Щербинка, Москва\",\n        \"group\": \"gps\"\n    }, {\n        \"key\": \"_imei\",\n        \"name\": \"imei\",\n        \"value\": \"867459049507122\",\n        \"group\": \"hidden\"\n    }, {\n        \"key\": \"_marker_latlon\",\n        \"name\": \"_marker_latlon\",\n        \"group\": \"hidden\",\n        \"value\": [55.49406666666667, 37.555146666666666]\n    },  {\n        \"key\": \"4381edf7-2593-4ce7-abff-f1420460c64e\",\n        \"name\": \"ДУТ-1\",\n        \"value\": 48.806,\n        \"group\": \"sensors\"\n    }, {\n        \"key\": \"46ac6ed0-4eef-4d1e-ba73-1a3f45a85f33\",\n        \"name\": \"Зажигание\",\n        \"value\": \"Вкл\",\n        \"group\": \"sensors\"\n    },\n    {\n        \"key\": \"analytic\",\n        \"name\": \"Аналитик\",\n        \"value\": \"Иванов B.\",\n        \"group\": \"custom_fields\"\n    }]\n}]\n\n</code></pre>","urlObject":{"protocol":"wss","path":["messages"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"29c9d8d4-e44d-4648-9ee8-001853e3d007"},{"name":"/monitoring_extra","id":"d1a4aed1-17fa-4887-a1a1-08af5ccabad2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"units\": [\n        {\"id\": \"1478c4b7-464e-4f85-b962-afcc124755a2\"}\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/monitoring_extra","description":"<p><strong>Получение дополнительной информации по объекту в мониторинге</strong></p>\n<hr />\n<p>В теле запроса в units указать ID объектов.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"units\": [\n        {\"id\": \"1478c4b7-464e-4f85-b962-afcc124755a2\"}\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Возращает следующую информацию:</strong><br />Последнюю поездку - начало, конец, длительность, нач. адрес, кон. адрес.<br />Последнюю остановку\\стоянку - начало, конец, длительность, нач. адрес, кон. адрес.<br />Последнюю заправку - начало, заправка, кон. адрес.<br />Последний слив - начало, слив, кон. адрес.</p>\n<p>Ответ состоит из нескольких записей, каждое имеет поля key, name, value и columns. Каждый элемент в columns имеет поля key, name и value. Если нет информации, то column пустое.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"key\": \"last_trip\",\n        \"name\": \"Последняя поездка\",\n        \"value\": \"3:48:23\",\n        \"columns\": [\n            {\n                \"key\": \"first_datepoint\",\n                \"name\": \"Начало\",\n                \"value\": \"19/11/21 12:05\"\n            },\n            {\n                \"key\": \"last_datepoint\",\n                \"name\": \"Конец\",\n                \"value\": \"19/11/21 15:54\"\n            },\n            {\n                \"key\": \"sum_datepoint\",\n                \"name\": \"Длит-сть\",\n                \"value\": \"3:48:23\"\n            },\n            {\n                \"key\": \"first_address\",\n                \"name\": \"Нач. адрес\",\n                \"value\": \"56.509 67.5143\"\n            },\n            {\n                \"key\": \"last_address\",\n                \"name\": \"Кон. адрес\",\n                \"value\": \"57.0903 63.8347\"\n            }\n        ]\n    },\n    {\n        \"key\": \"last_stop\",\n        \"name\": \"Последняя остановка\",\n        \"value\": \"0:04:54\",\n        \"columns\": [\n            {\n                \"key\": \"first_datepoint\",\n                \"name\": \"Начало\",\n                \"value\": \"19/11/21 15:32\"\n            },\n            {\n                \"key\": \"last_datepoint\",\n                \"name\": \"Конец\",\n                \"value\": \"19/11/21 15:37\"\n            },\n            {\n                \"key\": \"sum_datepoint\",\n                \"name\": \"Длит-сть\",\n                \"value\": \"0:04:54\"\n            },\n            {\n                \"key\": \"last_address\",\n                \"name\": \"Кон. адрес\",\n                \"value\": \"57.0992 64.1719\"\n            }\n        ]\n    },\n    {\n        \"key\": \"last_filling\",\n        \"name\": \"Последняя заправка\",\n        \"value\": 186.49,\n        \"columns\": [\n            {\n                \"key\": \"first_datepoint\",\n                \"name\": \"Начало\",\n                \"value\": \"19/11/21 11:56\"\n            },\n            {\n                \"key\": \"stucked_fillings\",\n                \"name\": \"Заправки\",\n                \"value\": 186.49\n            },\n            {\n                \"key\": \"last_address\",\n                \"name\": \"Кон. адрес\",\n                \"value\": \"56.5107 67.4843\"\n            }\n        ]\n    },\n    {\n        \"key\": \"last_theft\",\n        \"name\": \"Последний слив\",\n        \"columns\": []\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","monitoring_extra"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d1a4aed1-17fa-4887-a1a1-08af5ccabad2"}],"id":"db447b39-d593-4b5b-a900-8fb0b6b5e601","_postman_id":"db447b39-d593-4b5b-a900-8fb0b6b5e601","description":""},{"name":"Отчеты","item":[{"name":"/report","id":"cad02f24-81ec-4c38-9bd1-fc5f92bc10bb","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"groups\": [\n        {\n            \"id\": \"a0c5076d-6f22-4326-86fb-89aa837a9ab5\"\n        }\n    ],\n    \"template_tables\": [\n        {\n            \"id\": \"800c0795-5b79-40cd-bdeb-ab309228534b\"\n        }\n    ],\n    \"from\": \"2022-05-04 10:03:00\",\n    \"to\": \"2022-07-03 11:00:11\",\n    \"max\": 100,\n    \"offset\": 0\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/report","description":"<p><strong>Запрос отчета</strong></p>\n<hr />\n<p>Запрос отчета содержит следующие параметры:</p>\n<ul>\n<li><p>units - массив id объектов, по которым требуется сделать отчет. Если отчет по группам, тогда groups - массив id групп объектов, по которым требуется сделать отчет.</p>\n</li>\n<li><p>geozones - список, который определяет геозоны используемые при генерации отчета. Если не передать, то используются все геозоны компании или геозоны указанные в таблице шаблона.</p>\n</li>\n<li><p>template_tables - массив id таблиц. Используется ТОЛЬКО первая таблица.</p>\n</li>\n<li><p>from - время начала отчета в формате yyyy-mm-dd hh:mm:ss</p>\n</li>\n<li><p>to - время конца отчета в формате yyyy-mm-dd hh:mm:ss</p>\n</li>\n<li><p>offset - опционально. Параметр для пагинации. Определяет количество пропущенных строк, начиная с нулевой строки. Если параметр отсутствует в запросе, то по дефолту он равен 0.</p>\n</li>\n<li><p>max - опционально. Параметр для пагинации. Определяет максимальное количество строк, выдаваемое в запросе. Если параметр отсутствует в запросе, то по дефолту он равен значению всех строк, которые удалось сформировать в отчете. (Для графика это количество максимальных точек в графике. Если не приходит или значение больше 5000, тогда по умолчанию выбирается 5000).</p>\n</li>\n<li><p>selected_columns - опционально. Только для графиков или для журналов (отчет с типом chart или journal), иначе просто игнорируется. Определяет набор данных (сырых или датчиков), которые будут возвращены, вместе с данными по датчикам. Выбирается из possible_columns. Например ('selected_columns': [{'key': '1a590afb-bfe5-44cf-8d78-f5137bfbb7ae', 'name': 'Напряжение', 'sensor': true},{'key': 'voltage_main', 'name': 'voltage_main', 'sensor': false}]).</p>\n</li>\n<li><p>only_totals - опционально. Логическое значение. Если параметр отсутствует в запросе, то по дефолту он равен false. Если true, то возвращается только итоговые строки отчета.</p>\n</li>\n<li><p>sortField - опционально. Строка. Ключ поля, по которому нужно сортировать результат.</p>\n</li>\n<li><p>sortDesc - опционально. Логическое значение. True, если нужно сортировать по убыванию.</p>\n</li>\n<li><p>time_group - Группировка по времени, моожно указать hour, day, week, month</p>\n</li>\n</ul>\n<p>Ограничения:</p>\n<ul>\n<li><p>Параметры offset и max следует использовать в паре.</p>\n</li>\n<li><p>Параметры sortField и sortDesc следует использовать в паре.</p>\n</li>\n<li><p>Колонки, ключи которых начинаются с \"_\", являются сервисными и не должны быть видимы на фронте, даже если у них случайно 'is_visible' = true.<br />  Типы сервисных колонок:</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  - '_start_latlon_%ключ отчета%' - начальная координата\n  - '_end_latlon_%ключ отчета%' - конечная координата\n  - '_start_time_%ключ отчета%' - время начала\n  - '_end_time_%ключ отчета%' - время конца\n  - '_marker_latlon_%ключ отчета%' - координата маркера\n  - '_is_total' - Определяет, является ли строка итоговой. Итоговые строки должны быть выделены жирным шрифтом.\n\n</code></pre><hr />\n<p><strong>Структура отчета:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"unit_id\": id объекта\n\"unit_name\": имя объекта\n\"report\": {\n  \"name\": //название отчета, заданное пользователем, либо, если таблица дефолтная - дефолтное имя\n  \"default_name\": //название дефолтной таблицы, если название таблицы отличается от название дефолтной таблицы.\n  \"key\": //ключ отчета. Ключ не может быть произвольным и, если таблица создана пользователем, всегда должен быть равен ключу дефолтной таблицы, на основе которой таблица создавалась. см. GET /report_templates?ids=:ids\n  \"possible_columns\": [ // список возможных полей, которые можно выбрать в журнале и графике\n      {'key': '1a590afb-bfe5-44cf-8d78-f5137bfbb7ae', 'name': 'Напряжение', 'sensor': true},\n      {'key': 'voltage_main', 'name': 'voltage_main'},\n      {'key': 'angle', 'name': 'angle'},\n      {'key': 'byte_in', 'name': 'byte_in'}\n  ]\n  \"columns\": [  //тех. информация о колонках отчета\n    {\n      \"key\": //тип колонки, определяет уникальность. Ключ заранее задается бэкендом.\n      \"name\": //имя колонки. Задается юзером в таблице перед построением отчета.\n      \"filter_min\": //мин. значение для фильтрации. Значения, не удовлетворяющие фильтру, не используются в построении отчета.\n      \"filter_max\": //мин. значение для фильтрации.\n      \"sort\": //порядковый номер колонки в отчете. Если у колонок совпадает sort, то очередность среди них определяется рандомно.\n      \"is_visible\": //видимость колонки для пользователя.\n      \"is_searchable\": //true, если можно фильтровать по этому полю.\n      \"is_sortable\": //true, если можно сортировать по этому полю.\n    }\n  ],\n  \"rows\": [ // строки отчета\n    {\n      \"№\": 1 //значение колонки, ассоциированное по принципу \"columns.key\":\"value\" \n      \"unit_name\": \"ДВД Актобе Уаз 186 КР 04\" //значение колонки, ассоциированное по принципу \"columns.key\":\"value\"\n      \"first_datepoint\": \"2020-01-01 06:07:59\" //значение колонки, ассоциированное по принципу \"columns.key\":\"value\"\n      \"last_datepoint\": \"2020-01-02 14:01:50\" //значение колонки, ассоциированное по принципу \"columns.key\":\"value\"\n      \"_is_total\": false //данное значение является сервисным.\n    }\n  ],\n  \"max_rows\": Общее количество строк отчета, которое было построено. Необходимо для пагинации. А для графика - это количество максимальных точек в терминале в указанном интервале времени запроса.\n\n</code></pre><p>Про дефолтные таблицы можно почитать здесь <a href=\"https://\">GET /report_templates?ids=:ids</a></p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{  \n    'units': [{'id': '712ceae4-f112-4714-9a4d-afe141e47bf7'}],\n    'template_tables': [{'id': '275c6ee8-2933-4dd3-8adf-9544e26bf98a'}],\n    'from': '2020-01-01 00:00:00',\n    'to': '2020-01-06 00:00:00',\n    'offset': 0,\n    'max': 50\n}\n\n</code></pre><p>Пример запроса с фильтром и сортировкой отчета:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"units\": [\n    {\n      \"id\": \"712ceae4-f112-4714-9a4d-afe141e47bf7\"\n    }\n  ],\n  \"template_tables\": [\n    {\n      \"id\": \"275c6ee8-2933-4dd3-8adf-9544e26bf98a\"\n    }\n  ],\n  \"from\": \"2020-01-01 00:00:00\",\n  \"to\": \"2020-01-06 00:00:00\",\n  \"offset\": 0,\n  \"max\": 50,\n  \"sortField\": \"first_datepoint\",\n  \"sortDesc\": true,\n  \"conditions\": [\n    {\n      \"field\": \"sum_fillings\",\n      \"value\": \"100\",\n      \"operator\": \"ge\"\n    }\n  ]\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n      \"unit_id\": \"712ceae4-f112-4714-9a4d-afe141e47bf7\",\n      \"unit_name\": \"ДВД Актобе Уаз 186 КР 04\",\n      \"report\": {\n        \"name\": \"Cтоянки\",\n        \"key\": \"stays\",\n        \"columns\": [\n          {\n            \"key\": \"№\",\n            \"name\": \"№\",\n            \"filter_min\": 0,\n            \"filter_max\": 0,\n            \"sort\": 0,\n            \"is_visible\": true\n          },\n          {\n            \"key\": \"unit_name\",\n            \"name\": \"Имя объекта\",\n            \"filter_min\": 0,\n            \"filter_max\": 1000,\n            \"sort\": 1,\n            \"is_visible\": true\n          },\n          {\n            \"key\": \"first_datepoint\",\n            \"name\": \"Начало\",\n            \"filter_min\": 0,\n            \"filter_max\": 1000,\n            \"sort\": 2,\n            \"is_visible\": true\n          },\n          {\n            \"key\": \"last_datepoint\",\n            \"name\": \"Конец\",\n            \"filter_min\": 0,\n            \"filter_max\": 1000,\n            \"sort\": 3,\n            \"is_visible\": true\n          },\n          {\n            \"key\": \"sum_datepoint\",\n            \"name\": \"Длительность\",\n            \"filter_min\": 0,\n            \"filter_max\": 1000,\n            \"sort\": 4,\n            \"is_visible\": true\n          },\n          {\n            \"key\": \"first_fillings_fuel\",\n            \"name\": \"first_fillings\",\n            \"filter_min\": 0,\n            \"filter_max\": 1000,\n            \"sort\": 5,\n            \"is_visible\": true\n          },\n          {\n            \"key\": \"last_address\",\n            \"name\": \"Конечный адрес\",\n            \"filter_min\": 0,\n            \"filter_max\": 1000,\n            \"sort\": 6,\n            \"is_visible\": true\n          },\n          {\n            \"key\": \"finish_fillings_fuel\",\n            \"name\": \"finish_fillings\",\n            \"filter_min\": 0,\n            \"filter_max\": 1000,\n            \"sort\": 7,\n            \"is_visible\": true\n          },\n          {\n            \"key\": \"stucked_fillings_fuel\",\n            \"name\": \"stucked_fillings\",\n            \"filter_min\": 0,\n            \"filter_max\": 1000,\n            \"sort\": 8,\n            \"is_visible\": true\n          },\n          {\n            \"key\": \"count_point\",\n            \"name\": \"Кол-во сообщений\",\n            \"filter_min\": 0,\n            \"filter_max\": 1000,\n            \"sort\": 10,\n            \"is_visible\": true\n          },\n          {\n            \"key\": \"sum_fillings_fuel\",\n            \"name\": \"расход\",\n            \"filter_min\": 0,\n            \"filter_max\": 1000,\n            \"sort\": 13,\n            \"is_visible\": true\n          },\n          {\n            \"key\": \"_is_total\",\n            \"name\": \"_is_total\",\n            \"filter_min\": 0,\n            \"filter_max\": 0,\n            \"sort\": 99999,\n            \"is_visible\": false\n          }\n        ],\n        \"rows\": [\n          {\n            \"№\": 1,\n            \"unit_name\": \"ДВД Актобе Уаз 186 КР 04\",\n            \"first_datepoint\": \"2020-01-01 06:07:59\",\n            \"last_datepoint\": \"2020-01-01 08:45:58\",\n            \"sum_datepoint\": \"2:37:59\",\n            \"first_fillings_fuel\": 263.61,\n            \"last_address\": \"[lat: 52.984060, lon: 63.235077]\",\n            \"finish_fillings_fuel\": 243.13,\n            \"stucked_fillings_fuel\": 0,\n            \"count_point\": 765,\n            \"sum_fillings_fuel\": 20.48,\n            \"_is_total\": false\n          },\n          {\n            \"№\": 2,\n            \"unit_name\": \"ДВД Актобе Уаз 186 КР 04\",\n            \"first_datepoint\": \"2020-01-01 08:47:39\",\n            \"last_datepoint\": \"2020-01-01 16:52:38\",\n            \"sum_datepoint\": \"8:04:59\",\n            \"first_fillings_fuel\": 243.15,\n            \"last_address\": \"[lat: 52.983917, lon: 63.235310]\",\n            \"finish_fillings_fuel\": 236.74,\n            \"stucked_fillings_fuel\": 0,\n            \"count_point\": 77,\n            \"sum_fillings_fuel\": 6.41,\n            \"_is_total\": false\n          },\n          {\n            \"№\": 3,\n            \"unit_name\": \"ДВД Актобе Уаз 186 КР 04\",\n            \"first_datepoint\": \"2020-01-01 16:59:20\",\n            \"last_datepoint\": \"2020-01-01 17:16:10\",\n            \"sum_datepoint\": \"0:16:50\",\n            \"first_fillings_fuel\": 234.81,\n            \"last_address\": \"[lat: 52.982044, lon: 63.230095]\",\n            \"finish_fillings_fuel\": 234.2,\n            \"stucked_fillings_fuel\": 0,\n            \"count_point\": 13,\n            \"sum_fillings_fuel\": 0.61,\n            \"_is_total\": false\n          },\n          {\n            \"№\": 4,\n            \"unit_name\": \"ДВД Актобе Уаз 186 КР 04\",\n            \"first_datepoint\": \"2020-01-01 18:47:38\",\n            \"last_datepoint\": \"2020-01-02 14:01:50\",\n            \"sum_datepoint\": \"19:14:12\",\n            \"first_fillings_fuel\": 218.77,\n            \"last_address\": \"[lat: 52.827972, lon: 62.642530]\",\n            \"finish_fillings_fuel\": 17697.64,\n            \"stucked_fillings_fuel\": 0,\n            \"count_point\": 82,\n            \"sum_fillings_fuel\": 0,\n            \"_is_total\": false\n          },\n          {\n            \"№\": 5,\n            \"unit_name\": \"ДВД Актобе Уаз 186 КР 04\",\n            \"first_datepoint\": \"2020-01-01 06:07:59\",\n            \"last_datepoint\": \"2020-01-02 14:01:50\",\n            \"sum_datepoint\": \"29:42:12\",\n            \"first_fillings_fuel\": 263.61,\n            \"last_address\": \"[lat: 52.827972, lon: 62.642530]\",\n            \"finish_fillings_fuel\": 17697.64,\n            \"stucked_fillings_fuel\": 0,\n            \"count_point\": 256,\n            \"sum_fillings_fuel\": 27.61,\n            \"_is_total\": true\n          }\n        ],\n        \"max_rows\": 4\n      }\n    }\n\n</code></pre><hr />\n<p><strong>Пример запроса с переопределением геозон</strong></p>\n<p>Запрос:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\"> {\n    \"from\": \"2022-08-02 00:00:00\",\n    \"to\": \"2022-09-02 23:59:59\",\n    \"templates\": [\n        \"0a7606c0-5b63-451f-b5a1-752e816c76d1\"\n    ],\n    \"template_tables\": [{\n        \"id\": \"275c6ee8-2933-4dd3-8adf-9544e26bf98a\"\n    }],\n    \"geozones\": [\n        {\"id\":\"401817fc-a8f1-4d2e-8b51-caaf453ee455\"}\n    ],\n    \"units\": [\n        {\"id\": \"350d511c-ed5f-424f-91f2-2b9259271ba6\"}\n    ],\n    \"offset\": 0,\n    \"max\": 50,\n    \"conditions\": [],\n    \"sortField\": \"descending\",\n    \"sortDesc\": false\n}\n\n</code></pre>\n<p>Ответ:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">\"unit_id\": id объекта\n\"unit_name\": имя объекта\n\"report\": {\n  \"name\": //название отчета, заданное пользователем, либо, если таблица дефолтная - дефолтное имя\n  \"default_name\": //название дефолтной таблицы, если название таблицы отличается от название дефолтной таблицы.\n  \"key\": //ключ отчета. Ключ не может быть произвольным и, если таблица создана пользователем, всегда должен быть равен ключу дефолтной таблицы, на основе которой таблица создавалась. см. GET /report_templates?ids=:ids\n  \"possible_columns\": [ // список возможных полей, которые можно выбрать в журнале и графике\n      {'key': '1a590afb-bfe5-44cf-8d78-f5137bfbb7ae', 'name': 'Напряжение', 'sensor': true},\n      {'key': 'voltage_main', 'name': 'voltage_main'},\n      {'key': 'angle', 'name': 'angle'},\n      {'key': 'byte_in', 'name': 'byte_in'}\n  ]\n  \"columns\": [  //тех. информация о колонках отчета\n    {\n      \"key\": //тип колонки, определяет уникальность. Ключ заранее задается бэкендом.\n      \"name\": //имя колонки. Задается юзером в таблице перед построением отчета.\n      \"filter_min\": //мин. значение для фильтрации. Значения, не удовлетворяющие фильтру, не используются в построении отчета.\n      \"filter_max\": //мин. значение для фильтрации.\n      \"sort\": //порядковый номер колонки в отчете. Если у колонок совпадает sort, то очередность среди них определяется рандомно.\n      \"is_visible\": //видимость колонки для пользователя.\n      \"is_searchable\": //true, если можно фильтровать по этому полю.\n      \"is_sortable\": //true, если можно сортировать по этому полю.\n    }\n  ],\n  \"rows\": [ // строки отчета\n    {\n      \"№\": 1 //значение колонки, ассоциированное по принципу \"columns.key\":\"value\" \n      \"unit_name\": \"ДВД Актобе Уаз 186 КР 04\" //значение колонки, ассоциированное по принципу \"columns.key\":\"value\"\n      \"first_datepoint\": \"2020-01-01 06:07:59\" //значение колонки, ассоциированное по принципу \"columns.key\":\"value\"\n      \"last_datepoint\": \"2020-01-02 14:01:50\" //значение колонки, ассоциированное по принципу \"columns.key\":\"value\"\n      \"_unit_id\": \"350d511c-ed5f-424f-91f2-2b9259271ba6\", //значение колонки, ассоциированное по принципу \"columns.key\":\"value\"\n      \"_geozone_id\": \"401817fc-a8f1-4d2e-8b51-caaf453ee455\", //значение колонки, ассоциированное по принципу \"columns.key\":\"value\"\n      \"_is_total\": false //данное значение является сервисным.\n    }\n  ],\n  \"max_rows\": Общее количество строк отчета, которое было построено. Необходимо для пагинации. А для графика - это количество максимальных точек в терминале в указанном интервале времени запроса.\n﻿\n\n</code></pre>\n<p><strong>Примеры запросов и ответов:</strong><br />selected_columns - для журнала можно указать максимум 6 параметров, для графика максимум 2 параметра.</p>\n<p><strong>1) Журнал</strong></p>\n<p>Если не указан selected_columns, то приходят дефолтные поля (datepoint, speedkph, latitude, longitude и _marker_latlon_journal)</p>\n<p>Запрос:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"units\": [{\n        \"id\": \"712ceae4-f112-4714-9a4d-afe141e47bf7\"\n    }],\n    \"template_tables\": [{\n        \"id\": \"275c6ee8-2933-4dd3-8adf-9544e26bf98a\"\n    }],\n    \"from\": \"2020-11-01 00:00:00\",\n    \"to\": \"2020-12-01 15:00:00\",\n    \"offset\": 0,\n    \"max\": 5\n}\n\n</code></pre><p>Ответ:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"unit_id\": \"d20f49af-d68b-47fa-99f8-bb4e56354391\",\n    \"unit_name\": \"НЖС-1 (ЭЧ-10) Уаз 860 AL 03 Астана\",\n    \"report\": {\n        \"name\": \"Журнал\",\n        \"key\": \"journal\",\n        \"possible_columns\": [{\n            \"key\": \"1a590afb-bfe5-44cf-8d78-f5137bfbb7ae\",\n            \"name\": \"Напряжение\"\n        }, {\n            \"key\": \"voltage_main\",\n            \"name\": \"voltage_main\"\n        }, {\n            \"key\": \"785bb809-c6eb-4876-89c0-149f98775c70\",\n            \"name\": \"Топливо\"\n        }, {\n            \"key\": \"dut_485_1\",\n            \"name\": \"dut_485_1\"\n        }, {\n            \"key\": \"d7205a84-0c01-4c4d-9fb8-7d039a043e33\",\n            \"name\": \"Зажигание\"\n        }, {\n            \"key\": \"vol_a_in_1\",\n            \"name\": \"vol_a_in_1\"\n        }, {\n            \"key\": \"3efd7812-dcfd-4fa9-b5dc-a9f16ff8888d\",\n            \"name\": \"Резкий поворот\"\n        }, {\n            \"key\": \"acc_right\",\n            \"name\": \"acc_right\"\n        }, {\n            \"key\": \"1f742665-e78d-40e3-a4ec-369bdf5dfd28\",\n            \"name\": \"Резкое ускорение\"\n        }, {\n            \"key\": \"acc_forward\",\n            \"name\": \"acc_forward\"\n        }, {\n            \"key\": \"42773f51-cc5e-4c84-996a-e1f930d998ca\",\n            \"name\": \"Резкое торможение\"\n        }, {\n            \"key\": \"acc_back\",\n            \"name\": \"acc_back\"\n        }, {\n            \"key\": \"89fcedcf-9689-4ea5-bb9a-7879b5136427\",\n            \"name\": \"Превышение скорости\"\n        }, {\n            \"key\": \"acc_speed\",\n            \"name\": \"acc_speed\"\n        }],\n        \"columns\": [{\n            \"key\": \"№\",\n            \"name\": \"№\"\n        }, {\n            \"key\": \"_marker_latlon_journal\",\n            \"name\": \"_marker_latlon_journal\"\n        }, {\n            \"key\": \"datepoint\",\n            \"name\": \"datepoint\"\n        }, {\n            \"key\": \"speedkph\",\n            \"name\": \"speedkph\"\n        }, {\n            \"key\": \"latitude\",\n            \"name\": \"latitude\"\n        }, {\n            \"key\": \"longitude\",\n            \"name\": \"longitude\"\n        }],\n        \"rows\": [{\n            \"speedkph\": 0,\n            \"latitude\": 55.7962,\n            \"datepoint\": \"2020-11-01 13:39:26\",\n            \"longitude\": 37.711567,\n            \"№\": 1,\n            \"_marker_latlon_journal\": [55.7962, 37.711567]\n        }, {\n            \"speedkph\": 0,\n            \"latitude\": 55.7962,\n            \"datepoint\": \"2020-11-01 13:39:55\",\n            \"longitude\": 37.711567,\n            \"№\": 2,\n            \"_marker_latlon_journal\": [55.7962, 37.711567]\n        }, {\n            \"speedkph\": 0,\n            \"latitude\": 55.7962,\n            \"datepoint\": \"2020-11-01 13:39:55\",\n            \"longitude\": 37.711567,\n            \"№\": 3,\n            \"_marker_latlon_journal\": [55.7962, 37.711567]\n        }, {\n            \"speedkph\": 0,\n            \"latitude\": 55.7962,\n            \"datepoint\": \"2020-11-01 13:39:55\",\n            \"longitude\": 37.711567,\n            \"№\": 4,\n            \"_marker_latlon_journal\": [55.7962, 37.711567]\n        }, {\n            \"speedkph\": 0,\n            \"latitude\": 51.80577,\n            \"datepoint\": \"2020-11-01 13:40:55\",\n            \"longitude\": 68.36547,\n            \"№\": 5,\n            \"_marker_latlon_journal\": [51.80577, 68.36547]\n        }],\n        \"max_rows\": 22406\n    }\n}\n\n</code></pre><p>Если указан selected_columns, то приходят значения указанных параметров и дефолтные параметры.</p>\n<p>Запрос:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"units\": [{\n        \"id\": \"712ceae4-f112-4714-9a4d-afe141e47bf7\"\n    }],\n    \"template_tables\": [{\n        \"id\": \"275c6ee8-2933-4dd3-8adf-9544e26bf98a\"\n    }],\n    \"from\": \"2020-11-01 00:00:00\",\n    \"to\": \"2020-12-01 15:00:00\",\n    \"offset\": 0,\n    \"max\": 100,\n    \"selected_columns\": [{\n        \"key\": \"1a590afb-bfe5-44cf-8d78-f5137bfbb7ae\",\n        \"name\": \"Напряжение\"\n    }, {\n        \"key\": \"voltage_main\",\n        \"name\": \"voltage_main\"\n    }]\n}\n\n</code></pre><p>Ответ:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"unit_id\": \"d20f49af-d68b-47fa-99f8-bb4e56354391\",\n    \"unit_name\": \"НЖС-1 (ЭЧ-10) Уаз 860 AL 03 Астана\",\n    \"report\": {\n        \"name\": \"Журнал\",\n        \"key\": \"journal\",\n        \"possible_columns\": [{\n            \"key\": \"1a590afb-bfe5-44cf-8d78-f5137bfbb7ae\",\n            \"name\": \"Напряжение\"\n        }, {\n            \"key\": \"voltage_main\",\n            \"name\": \"voltage_main\"\n        }, {\n            \"key\": \"785bb809-c6eb-4876-89c0-149f98775c70\",\n            \"name\": \"Топливо\"\n        }, {\n            \"key\": \"dut_485_1\",\n            \"name\": \"dut_485_1\"\n        }, {\n            \"key\": \"d7205a84-0c01-4c4d-9fb8-7d039a043e33\",\n            \"name\": \"Зажигание\"\n        }, {\n            \"key\": \"vol_a_in_1\",\n            \"name\": \"vol_a_in_1\"\n        }, {\n            \"key\": \"3efd7812-dcfd-4fa9-b5dc-a9f16ff8888d\",\n            \"name\": \"Резкий поворот\"\n        }, {\n            \"key\": \"acc_right\",\n            \"name\": \"acc_right\"\n        }, {\n            \"key\": \"1f742665-e78d-40e3-a4ec-369bdf5dfd28\",\n            \"name\": \"Резкое ускорение\"\n        }, {\n            \"key\": \"acc_forward\",\n            \"name\": \"acc_forward\"\n        }, {\n            \"key\": \"42773f51-cc5e-4c84-996a-e1f930d998ca\",\n            \"name\": \"Резкое торможение\"\n        }, {\n            \"key\": \"acc_back\",\n            \"name\": \"acc_back\"\n        }, {\n            \"key\": \"89fcedcf-9689-4ea5-bb9a-7879b5136427\",\n            \"name\": \"Превышение скорости\"\n        }, {\n            \"key\": \"acc_speed\",\n            \"name\": \"acc_speed\"\n        }, {\n            \"key\": \"acc_left\",\n            \"name\": \"acc_left\"\n        }, {\n            \"key\": \"acc_max_angle\",\n            \"name\": \"acc_max_angle\"\n        }, {\n            \"key\": \"acc_max_minus\",\n            \"name\": \"acc_max_minus\"\n        }, {\n            \"key\": \"acc_max_plus\",\n            \"name\": \"acc_max_plus\"\n        }, {\n            \"key\": \"acc_x\",\n            \"name\": \"acc_x\"\n        }, {\n            \"key\": \"acc_y\",\n            \"name\": \"acc_y\"\n        }, {\n            \"key\": \"acc_z\",\n            \"name\": \"acc_z\"\n        }],\n        \"columns\": [{\n            \"key\": \"№\",\n            \"name\": \"№\"\n        }, {\n            \"key\": \"_marker_latlon_journal\",\n            \"name\": \"_marker_latlon_journal\"\n        }, {\n            \"key\": \"datepoint\",\n            \"name\": \"datepoint\"\n        }, {\n            \"key\": \"speedkph\",\n            \"name\": \"speedkph\"\n        }, {\n            \"key\": \"latitude\",\n            \"name\": \"latitude\"\n        }, {\n            \"key\": \"voltage_main\",\n            \"name\": \"voltage_main\"\n        }, {\n            \"key\": \"longitude\",\n            \"name\": \"longitude\"\n        }, {\n            \"key\": \"1a590afb-bfe5-44cf-8d78-f5137bfbb7ae\",\n            \"name\": \"Напряжение\"\n        }],\n        \"rows\": [{\n            \"speedkph\": 0,\n            \"latitude\": 55.7962,\n            \"datepoint\": \"2020-11-01 13:39:26\",\n            \"voltage_main\": 12251,\n            \"longitude\": 37.711567,\n            \"№\": 1,\n            \"_marker_latlon_journal\": [55.7962, 37.711567],\n            \"1a590afb-bfe5-44cf-8d78-f5137bfbb7ae\": 12251.0\n        }, {\n            \"speedkph\": 0,\n            \"latitude\": 55.7962,\n            \"datepoint\": \"2020-11-01 13:39:55\",\n            \"voltage_main\": 12123,\n            \"longitude\": 37.711567,\n            \"№\": 2,\n            \"_marker_latlon_journal\": [55.7962, 37.711567],\n            \"1a590afb-bfe5-44cf-8d78-f5137bfbb7ae\": 12123.0\n        }, {\n            \"speedkph\": 0,\n            \"latitude\": 55.7962,\n            \"datepoint\": \"2020-11-01 13:39:55\",\n            \"voltage_main\": 12123,\n            \"longitude\": 37.711567,\n            \"№\": 3,\n            \"_marker_latlon_journal\": [55.7962, 37.711567],\n            \"1a590afb-bfe5-44cf-8d78-f5137bfbb7ae\": 12123.0\n        }, {\n            \"speedkph\": 0,\n            \"latitude\": 55.7962,\n            \"datepoint\": \"2020-11-01 13:39:55\",\n            \"voltage_main\": 12121,\n            \"longitude\": 37.711567,\n            \"№\": 4,\n            \"_marker_latlon_journal\": [55.7962, 37.711567],\n            \"1a590afb-bfe5-44cf-8d78-f5137bfbb7ae\": 12121.0\n        }, {\n            \"speedkph\": 0,\n            \"latitude\": 51.80577,\n            \"datepoint\": \"2020-11-01 13:40:55\",\n            \"voltage_main\": 12088,\n            \"longitude\": 68.36547,\n            \"№\": 5,\n            \"_marker_latlon_journal\": [51.80577, 68.36547],\n            \"1a590afb-bfe5-44cf-8d78-f5137bfbb7ae\": 12088.0\n        }],\n        \"max_rows\": 22406\n    }\n}\n\n</code></pre><hr />\n<p><strong>2) График</strong></p>\n<p>Если не указан selected_columns, то приходят поля с данными datepoint, speed, is_trip, trips_intervals и значения 2 первых датчиков (если есть).</p>\n<p>Запрос:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"units\": [{\n        \"id\": \"712ceae4-f112-4714-9a4d-afe141e47bf7\"\n    }],\n    \"template_tables\": [{\n        \"id\": \"275c6ee8-2933-4dd3-8adf-9544e26bf98a\"\n    }],\n    \"from\": \"2020-11-01 00:00:00\",\n    \"to\": \"2020-12-01 00:00:00\"\n}\n\n</code></pre><p>Ответ:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"unit_id\": \"d20f49af-d68b-47fa-99f8-bb4e56354391\",\n    \"unit_name\": \"НЖС-1 (ЭЧ-10) Уаз 860 AL 03 Астана\",\n    \"report\": {\n        \"name\": \"график\",\n        \"key\": \"chart\",\n        \"possible_columns\": [{\n            \"key\": \"1a590afb-bfe5-44cf-8d78-f5137bfbb7ae\",\n            \"name\": \"Напряжение\"\n        }, {\n            \"key\": \"voltage_main\",\n            \"name\": \"voltage_main\"\n        }, {\n            \"key\": \"785bb809-c6eb-4876-89c0-149f98775c70\",\n            \"name\": \"Топливо\"\n        }, {\n            \"key\": \"dut_485_1\",\n            \"name\": \"dut_485_1\"\n        }, {\n            \"key\": \"d7205a84-0c01-4c4d-9fb8-7d039a043e33\",\n            \"name\": \"Зажигание\"\n        }, {\n            \"key\": \"vol_a_in_1\",\n            \"name\": \"vol_a_in_1\"\n        }, {\n            \"key\": \"3efd7812-dcfd-4fa9-b5dc-a9f16ff8888d\",\n            \"name\": \"Резкий поворот\"\n        }, {\n            \"key\": \"acc_right\",\n            \"name\": \"acc_right\"\n        }, {\n            \"key\": \"1f742665-e78d-40e3-a4ec-369bdf5dfd28\",\n            \"name\": \"Резкое ускорение\"\n        }, {\n            \"key\": \"acc_forward\",\n            \"name\": \"acc_forward\"\n        }, {\n            \"key\": \"42773f51-cc5e-4c84-996a-e1f930d998ca\",\n            \"name\": \"Резкое торможение\"\n        }, {\n            \"key\": \"acc_back\",\n            \"name\": \"acc_back\"\n        }, {\n            \"key\": \"89fcedcf-9689-4ea5-bb9a-7879b5136427\",\n            \"name\": \"Превышение скорости\"\n        }, {\n            \"key\": \"acc_speed\",\n            \"name\": \"acc_speed\"\n        }, {\n            \"key\": \"acc_left\",\n            \"name\": \"acc_left\"\n        }],\n        \"columns\": [{\n            \"key\": \"datepoint\",\n            \"name\": \"datepoint\",\n            \"data\": [\"2020-11-01 13:39:26\", \"2020-11-01 13:50:12\", \"2020-11-01 14:04:40\", \"2020-11-01 16:29:09\", \"2020-11-01 19:00:52\", \"2020-11-01 19:48:12\", \"2020-11-01 20:34:44\", \"2020-11-01 21:19:05\", \"2020-11-01 21:57:05\", \"2020-11-01 22:30:46\"]\n        }, {\n            \"key\": \"speed\",\n            \"name\": \"speed\",\n            \"data\": [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n        }, {\n            \"key\": \"is_trip\",\n            \"name\": \"is_trip\",\n            \"data\": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n        }, {\n            \"key\": \"trips_intervals\",\n            \"name\": \"trips_intervals\",\n            \"data\": [\n                [\"2020-11-01 13:42:26\", \"2020-11-01 13:43:06\"],\n                [\"2020-11-01 14:04:04\", \"2020-11-01 14:05:15\"],\n                [\"2020-11-02 08:17:31\", \"2020-11-02 08:18:20\"],\n                [\"2020-11-02 08:23:05\", \"2020-11-02 08:29:04\"],\n                [\"2020-11-02 08:38:34\", \"2020-11-02 08:39:13\"],\n                [\"2020-11-02 08:44:11\", \"2020-11-02 08:50:27\"],\n                [\"2020-11-02 10:54:29\", \"2020-11-02 10:55:31\"],\n                [\"2020-11-02 11:52:07\", \"2020-11-02 12:03:11\"],\n                [\"2020-11-02 14:06:43\", \"2020-11-02 14:22:20\"],\n                [\"2020-11-02 15:41:19\", \"2020-11-02 15:45:19\"]\n            ]\n        }, {\n            \"key\": \"_marker_latlon_chart\",\n            \"name\": \"_marker_latlon_chart\",\n            \"data\": [\n                [52.19, 65.45],\n                [51.81, 68.37],\n                [51.81, 68.37],\n                [51.81, 68.37],\n                [51.81, 68.37],\n                [51.81, 68.37],\n                [51.81, 68.37],\n                [51.81, 68.37],\n                [51.81, 68.37],\n                [51.81, 68.37]\n            ]\n        }, {\n            \"key\": \"1a590afb-bfe5-44cf-8d78-f5137bfbb7ae\",\n            \"name\": \"Напряжение\",\n            \"data\": [12086.14, 12455.71, 11866.95, 11813.52, 11891.0, 11885.48, 11881.95, 11879.57, 11877.76, 11873.1]\n        }, {\n            \"key\": \"785bb809-c6eb-4876-89c0-149f98775c70\",\n            \"name\": \"Топливо\",\n            \"data\": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]\n        }],\n        \"max_rows\": 1014\n    }\n}\n\n</code></pre><p>Если указан selected_columns, то приходят поля с данными datepoint, speed, is_trip, trips_intervals и указанные параметры.</p>\n<p>Запрос:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"units\": [{\n        \"id\": \"712ceae4-f112-4714-9a4d-afe141e47bf7\"\n    }],\n    \"template_tables\": [{\n        \"id\": \"275c6ee8-2933-4dd3-8adf-9544e26bf98a\"\n    }],\n    \"from\": \"2020-11-01 00:00:00\",\n    \"to\": \"2020-12-01 00:00:00\",\n    \"selected_columns\": [{\n        \"key\": \"1a590afb-bfe5-44cf-8d78-f5137bfbb7ae\",\n        \"name\": \"Напряжение\"\n    }, {\n        \"key\": \"angle\",\n        \"name\": \"angle\"\n    }]\n}\n\n</code></pre><p>Ответ:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"unit_id\": \"d20f49af-d68b-47fa-99f8-bb4e56354391\",\n    \"unit_name\": \"НЖС-1 (ЭЧ-10) Уаз 860 AL 03 Астана\",\n    \"report\": {\n        \"name\": \"график\",\n        \"key\": \"chart\",\n        \"possible_columns\": [{\n            \"key\": \"1a590afb-bfe5-44cf-8d78-f5137bfbb7ae\",\n            \"name\": \"Напряжение\"\n        }, {\n            \"key\": \"voltage_main\",\n            \"name\": \"voltage_main\"\n        }, {\n            \"key\": \"785bb809-c6eb-4876-89c0-149f98775c70\",\n            \"name\": \"Топливо\"\n        }, {\n            \"key\": \"dut_485_1\",\n            \"name\": \"dut_485_1\"\n        }, {\n            \"key\": \"d7205a84-0c01-4c4d-9fb8-7d039a043e33\",\n            \"name\": \"Зажигание\"\n        }, {\n            \"key\": \"vol_a_in_1\",\n            \"name\": \"vol_a_in_1\"\n        }, {\n            \"key\": \"3efd7812-dcfd-4fa9-b5dc-a9f16ff8888d\",\n            \"name\": \"Резкий поворот\"\n        }, {\n            \"key\": \"acc_right\",\n            \"name\": \"acc_right\"\n        }, {\n            \"key\": \"1f742665-e78d-40e3-a4ec-369bdf5dfd28\",\n            \"name\": \"Резкое ускорение\"\n        }, {\n            \"key\": \"acc_forward\",\n            \"name\": \"acc_forward\"\n        }, {\n            \"key\": \"42773f51-cc5e-4c84-996a-e1f930d998ca\",\n            \"name\": \"Резкое торможение\"\n        }, {\n            \"key\": \"acc_back\",\n            \"name\": \"acc_back\"\n        }, {\n            \"key\": \"89fcedcf-9689-4ea5-bb9a-7879b5136427\",\n            \"name\": \"Превышение скорости\"\n        }, {\n            \"key\": \"acc_speed\",\n            \"name\": \"acc_speed\"\n        }, {\n            \"key\": \"acc_left\",\n            \"name\": \"acc_left\"\n        }, {\n            \"key\": \"acc_max_angle\",\n            \"name\": \"acc_max_angle\"\n        }, {\n            \"key\": \"acc_max_minus\",\n            \"name\": \"acc_max_minus\"\n        }, {\n            \"key\": \"acc_max_plus\",\n            \"name\": \"acc_max_plus\"\n        }, {\n            \"key\": \"acc_x\",\n            \"name\": \"acc_x\"\n        }, {\n            \"key\": \"acc_y\",\n            \"name\": \"acc_y\"\n        }, {\n            \"key\": \"acc_z\",\n            \"name\": \"acc_z\"\n        }, {\n            \"key\": \"altitude\",\n            \"name\": \"altitude\"\n        }, {\n            \"key\": \"angle\",\n            \"name\": \"angle\"\n        }, {\n            \"key\": \"box_crack\",\n            \"name\": \"box_crack\"\n        }, {\n            \"key\": \"bth_conf_st\",\n            \"name\": \"bth_conf_st\"\n        }, {\n            \"key\": \"bytes_in\",\n            \"name\": \"bytes_in\"\n        }, {\n            \"key\": \"bytes_out\",\n            \"name\": \"bytes_out\"\n        }, {\n            \"key\": \"can_accel_pos\",\n            \"name\": \"can_accel_pos\"\n        }, {\n            \"key\": \"can_break_pos\",\n            \"name\": \"can_break_pos\"\n        }, {\n            \"key\": \"can_disel_filter\",\n            \"name\": \"can_disel_filter\"\n        }],\n        \"columns\": [{\n            \"key\": \"datepoint\",\n            \"name\": \"datepoint\",\n            \"data\": [\"2020-11-01 13:39:26\", \"2020-11-01 13:50:12\", \"2020-11-01 14:04:40\", \"2020-11-01 16:29:09\", \"2020-11-01 19:00:52\", \"2020-11-01 19:48:12\", \"2020-11-01 20:34:44\", \"2020-11-01 21:19:05\", \"2020-11-01 21:57:05\", \"2020-11-01 22:30:46\"]\n        }, {\n            \"key\": \"speed\",\n            \"name\": \"speed\",\n            \"data\": [0, 1, 0, 3, 5, 6, 10, 20, 12, 0, 0]\n        }, {\n            \"key\": \"is_trip\",\n            \"name\": \"is_trip\",\n            \"data\": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n        }, {\n            \"key\": \"trips_intervals\",\n            \"name\": \"trips_intervals\",\n            \"data\": [\n                [\"2020-11-01 13:42:26\", \"2020-11-01 13:43:06\"],\n                [\"2020-11-01 14:04:04\", \"2020-11-01 14:05:15\"],\n                [\"2020-11-02 08:17:31\", \"2020-11-02 08:18:20\"],\n                [\"2020-11-02 08:23:05\", \"2020-11-02 08:29:04\"],\n                [\"2020-11-02 08:38:34\", \"2020-11-02 08:39:13\"],\n                [\"2020-11-02 08:44:11\", \"2020-11-02 08:50:27\"],\n                [\"2020-11-02 10:54:29\", \"2020-11-02 10:55:31\"],\n                [\"2020-11-02 11:52:07\", \"2020-11-02 12:03:11\"],\n                [\"2020-11-02 14:06:43\", \"2020-11-02 14:22:20\"],\n                [\"2020-11-02 15:41:19\", \"2020-11-02 15:45:19\"]\n            ]\n        }, {\n            \"key\": \"_marker_latlon_chart\",\n            \"name\": \"_marker_latlon_chart\",\n            \"data\": [\n                [52.19, 65.45],\n                [51.81, 68.37],\n                [51.81, 68.37],\n                [51.81, 68.37],\n                [51.81, 68.37],\n                [51.81, 68.37],\n                [51.81, 68.37],\n                [51.81, 68.37],\n                [51.81, 68.37],\n                [51.81, 68.37]\n            ]\n        }, {\n            \"key\": \"1a590afb-bfe5-44cf-8d78-f5137bfbb7ae\",\n            \"name\": \"Напряжение\",\n            \"data\": [12086.14, 12455.71, 11866.95, 11813.52, 11891.0, 11885.48, 11881.95, 11879.57, 11877.76, 11873.1]\n        }, {\n            \"key\": \"angle\",\n            \"name\": \"angle\",\n            \"data\": [111.95, 125.38, 124.71, 37.0, 37.0, 37.0, 37.0, 37.0, 37.0, 37.0]\n        }],\n        \"max_rows\": 1014\n    }\n}\n\n</code></pre><p>Новые поля для графика в template_tables:</p>\n<ol>\n<li><p>Чекбокс \"Отображать сливы и заправки\" - show_fillings_thefts, boolean</p>\n</li>\n<li><p>Чекбокс \"Сделать отчет закрытым\" - closed_to_change, boolean</p>\n</li>\n<li><p>Маски названия датчиков топлива - fuel_sensor_name_masks, массив имеющий поле value, как в поле sensor_name_masks</p>\n</li>\n<li><p>\"Параметры\" - params, массив, имеет поля terminal_type_key - ключ типа протокола (если не указан или null, тогда это для всех протоколов), value-значение параметра</p>\n</li>\n</ol>\n<p>Пример:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n   \"id\": \"dc029d04-0ed7-4ddd-b243-d32bd9201671\",\n   \"key\": \"chart\",\n   \"name\": \"Журнал\",\n   ..\n   \"show_fillings_thefts\": true,\n   \"fuel_sensor_name_masks\": [\n      {\n         \"value\": \"Топлива1\"\n      },\n      {\n         \"value\": \"Топлива2\"\n      }\n   ],\n   \"params\": [\n      {\"terminal_type_key\": \"navtelecom\", \"value\": \"dut_485_1\"},\n      {\"value\":\"speedkph\"}\n    ],\n   \"closed_to_change\": true,\n   ...\n}\n\n</code></pre><p>Приходят новые элементы в columns: fillings_intervals - для заправок и thefts_intervals - для сливов. В data приходят даты начала и окончания, как в trips_intervals.</p>\n<p>Пример:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"columns\": [\n    ....\n    {\n        \"key\": \"fillings_intervals\",\n        \"name\": \"fillings_intervals\",\n        \"data\": [\n          [\n            \"2021-08-01 09:08:18\",\n            \"2021-08-01 09:37:19\"\n          ],\n          [\n            \"2021-08-10 08:51:51\",\n            \"2021-08-10 09:02:20\"\n          ],\n          [\n            \"2021-08-13 10:48:34\",\n            \"2021-08-13 11:13:01\"\n          ]\n        ]\n      },\n      {\n        \"key\": \"thefts_intervals\",\n        \"name\": \"thefts_intervals\",\n        \"data\": [\n          [\n            \"2021-08-11 00:00:30\",\n            \"2021-08-12 00:08:19\"\n          ]\n        ]\n      }\n  ]\n\n</code></pre>","urlObject":{"path":["api_v1","report"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"cad02f24-81ec-4c38-9bd1-fc5f92bc10bb"},{"name":"/report/bar_chart","id":"526c5e51-e07e-4ca9-ad6c-73b82531ae29","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"groups\": [\n        {\n            \"id\": \"ae3f9037-9fcc-492c-9ba4-8063e737cf95\"\n        }\n    ],\n    \"template_tables\": [\n        {\n            \"id\": \"a5dc0870-78cd-4fa9-9522-eb658bb5806b\"\n        }\n    ],\n    \"from\": \"2022-09-01 00:00:00\",\n    \"to\": \"2022-10-01 00:00:00\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/report/bar_chart","description":"<p><strong>Получение данных для графика</strong></p>\n<hr />\n<p>После получения отчета (POST /report), если тег report.is_bar_chart ответа истинен (true), то для этого отчета можно получить данные для графика по этому запросу</p>\n<p>Тело запроса, как в POST /report, только без max и offset значений.</p>\n<p>В полученном отчете (структура данных, как и во всех report) будут колонки bar_chart_x и bar_chart_y, по ним нужно будет отобразить bar chart.</p>\n<hr />\n<p><strong>Структура ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"unit_id\": id объекта,если отчет построен по объекту.\n\"unit_name\": имя объекта, если отчет построен по объекту.\n\"group_id\": id группы, если отчет построен по группе.\n\"group_name\": имя группы, если отчет построен по группе.\n\"report\": {\n  \"name\": название отчета, заданное пользователем, либо, если таблица дефолтная - дефолтное имя.\n  \"key\": ключ отчета. Ключ не может быть произвольным и, если таблица создана юзером, всегда должен быть равен ключу дефолтной таблицы, на основе которой таблица создавалась. см. GET /report_templates?ids=:ids\n  \"columns\": [  //тех. информация о колонках отчета\n    {\n      \"key\": тип колонки      \n      \"name\": имя колонки..\n    }\n  ],\n  \"rows\": [ // строки отчета\n    {\n        \"bar_chart_x\" : Названия элемент,\n        \"bar_chart_y\": Значение элемента\n    }\n  ]\n}\n\n</code></pre><hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"groups\": [\n        {\n            \"id\": \"ae3f9037-9fcc-492c-9ba4-8063e737cf95\"\n        }\n    ],\n    \"template_tables\": [\n        {\n            \"id\": \"a5dc0870-78cd-4fa9-9522-eb658bb5806b\"\n        }\n    ],\n    \"from\": \"2022-09-01 00:00:00\",\n    \"to\": \"2022-10-01 00:00:00\"\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"group_name\": \"Камазы\",\n    \"group_id\": \"ae3f9037-9fcc-492c-9ba4-8063e737cf95\"\n    \"report\": {\n        \"columns\": [\n            {\n                \"key\": \"bar_chart_x\",\n                \"name\": \"Имя\"\n            },\n            {\n                \"key\": \"bar_chart_y\",\n                \"name\": \"Балл нарушения\"\n            }\n        ],\n        \"rows\": [\n            {\n                \"bar_chart_x\": \"Объект 1\",\n                \"bar_chart_y\": 68.0\n            },\n            {\n                \"bar_chart_x\": \"Объект 10\",\n                \"bar_chart_y\": 24.0\n            },\n            {\n                \"bar_chart_x\": \"Объект 4\",\n                \"bar_chart_y\": 63.0\n            },\n            {\n                \"bar_chart_x\": \"Объект 6\",\n                \"bar_chart_y\": 604.0\n            },\n            {\n                \"bar_chart_x\": \"Объект 9\",\n                \"bar_chart_y\": 255.0\n            },\n            {\n                \"bar_chart_x\": \"Объект 3\",\n                \"bar_chart_y\": 86.0\n            },\n            {\n                \"bar_chart_x\": \"Объект 8\",\n                \"bar_chart_y\": 123.0\n            },\n            {\n                \"bar_chart_x\": \"Объект 5\",\n                \"bar_chart_y\": 47.0\n            },\n            {\n                \"bar_chart_x\": \"Объект 2\",\n                \"bar_chart_y\": 267.0\n            },\n            {\n                \"bar_chart_x\": \"Объект 7\",\n                \"bar_chart_y\": 115.0\n            }\n        ]\n    }\n}\n\n</code></pre>","urlObject":{"path":["api_v1","report","bar_chart"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"526c5e51-e07e-4ca9-ad6c-73b82531ae29"},{"name":"/report_excel/:body","id":"f6ac6dbe-0b46-4731-b73a-1b104774738b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/report_excel?body=","description":"<p><strong>Запрос отчета в формате excel</strong></p>\n<hr />\n<p>Запрос отчета в формате excel. Параметры аналогичные /report.</p>\n<p>Результат - массив байт файла excel.</p>\n","urlObject":{"path":["api_v1","report_excel"],"host":["{{base_url}}"],"query":[{"key":"body","value":""}],"variable":[]}},"response":[],"_postman_id":"f6ac6dbe-0b46-4731-b73a-1b104774738b"},{"name":"/report_excel","id":"62657eeb-5836-4fba-b8e6-c887d027437d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"groups\": [\n        {\n            \"id\": \"5b5483dc-99bd-4577-820f-f1e4340cbd60\"\n        }\n    ],\n    \"template_tables\": [\n        {\n            \"id\": \"800c0795-5b79-40cd-bdeb-ab309228534b\"\n        }\n    ],\n    \"from\": \"2022-03-05 00:00:00\",\n    \"to\": \"2022-03-06 00:00:00\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/report_excel","description":"<p><strong>Запрос отчета в формате Excel</strong></p>\n<hr />\n<p>Запрос отчета в формате excel. Параметры аналогичны /report.</p>\n<p>Результат - массив байт файла excel.</p>\n","urlObject":{"path":["api_v1","report_excel"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"62657eeb-5836-4fba-b8e6-c887d027437d"},{"name":"/report_pdf","id":"81496536-04e6-4566-95d2-b68449570044","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"units\": [\n        {\n            \"id\": \"97fba3d2-841b-43cd-911a-073b84ad5438\"\n        }\n    ],\n    \"template_tables\": [\n        {\n            \"id\": \"800c0795-5b79-40cd-bdeb-ab309228534b\"\n        }\n    ],\n    \"from\": \"2022-04-28 00:00:00\",\n    \"to\": \"2022-06-29 00:00:00\",\n    \"files\": [\n        \"c29tZV9maWxl\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/report_pdf","description":"<p><strong>Запрос генерации pdf отчета</strong></p>\n<hr />\n<p>Запрос отчета в формате pdf. Параметры аналогичные /report.</p>\n<p>В поле files можно отправить Base64 код файлов.<br />Результат - массив байт файла pdf</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"units\": [\n        {\n            \"id\": \"97fba3d2-841b-43cd-911a-073b84ad5438\"\n        }\n    ],\n    \"template_tables\": [\n        {\n            \"id\": \"800c0795-5b79-40cd-bdeb-ab309228534b\"\n        }\n    ],\n    \"from\": \"2022-04-28 00:00:00\",\n    \"to\": \"2022-06-29 00:00:00\",\n    \"files\": [\n    \"c29tZV9maWxlMQ==\",\n    \"c29tZV9maWxlMg==\"\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","report_pdf"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"81496536-04e6-4566-95d2-b68449570044"},{"name":"/report_word","id":"dc813c4d-2a72-4755-8e0a-144b592a89d9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"units\": [\n        {\n            \"id\": \"97fba3d2-841b-43cd-911a-073b84ad5438\"\n        }\n    ],\n    \"template_tables\": [\n        {\n            \"id\": \"800c0795-5b79-40cd-bdeb-ab309228534b\"\n        }\n    ],\n    \"from\": \"2022-04-28 00:00:00\",\n    \"to\": \"2022-06-29 00:00:00\",\n    \"files\": [\n        \"c29tZV9maWxl\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/report_word","description":"<p><strong>Запрос генерации word отчета</strong></p>\n<hr />\n<p>Запрос отчета в формате word. Параметры аналогичные /report.</p>\n<p>В поле files можно отправить Base64 код файлов.<br />Результат - массив байт файла word.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"units\": [\n        {\n            \"id\": \"97fba3d2-841b-43cd-911a-073b84ad5438\"\n        }\n    ],\n    \"template_tables\": [\n        {\n            \"id\": \"800c0795-5b79-40cd-bdeb-ab309228534b\"\n        }\n    ],\n    \"from\": \"2022-04-28 00:00:00\",\n    \"to\": \"2022-06-29 00:00:00\",\n    \"files\": [\n        \"c29tZV9maWxlMQ==\",\n        \"c29tZV9maWxlMg==\"\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","report_word"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"dc813c4d-2a72-4755-8e0a-144b592a89d9"},{"name":"/report_any","id":"bfee74bd-f74c-473d-8bbf-9ddfe57ed833","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"units\": [\n        {\n            \"id\": \"97fba3d2-841b-43cd-911a-073b84ad5438\"\n        }\n    ],\n    \"template_tables\": [\n        {\n            \"id\": \"800c0795-5b79-40cd-bdeb-ab309228534b\"\n        }\n    ],\n    \"from\": \"2022-04-28 00:00:00\",\n    \"to\": \"2022-06-29 00:00:00\",\n    \"files\": [\n        \"c29tZV9maWxlXzE=\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/report_any","description":"<p><strong>Запрос создания отчета по ключу отчета</strong></p>\n<hr />\n<p>Параметры аналогичные <a href=\"https://documenter.getpostman.com/view/13147/RztmtVLV?version=latest#cad02f24-81ec-4c38-9bd1-fc5f92bc10bb\">POST /report</a> , только в template_tables можно отправить ключ (key) отчета.</p>\n<hr />\n<p>Пример запроса на получение журнала:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"units\": [\n        {\n            \"id\": \"6b68de17-f031-4371-a792-74670c58d3ce\"\n        }\n    ],\n    \"template_tables\": [\n        {\n            \"key\": \"journal\"\n        }\n    ],\n    \"from\": \"2023-04-25 00:00:00\",\n    \"to\": \"2023-06-29 00:00:00\",\n    \"max\": 100,\n    \"offset\": 0\n}\n\n</code></pre>","urlObject":{"path":["api_v1","report_any"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"bfee74bd-f74c-473d-8bbf-9ddfe57ed833"},{"name":"/finance/:body","id":"661298d4-b96a-4bd7-9bb4-435743d6486e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/finance?body={\"from\":0, \"count\":100}","description":"<p><strong>Запрос финансового отчета</strong></p>\n<hr />\n<p>Для поиска нужно передвать {\"search\":\"Company\"}</p>\n<p>Результат - отчет, аналогичный получаемому по запросу POST /reports</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n","urlObject":{"path":["api_v1","finance"],"host":["{{base_url}}"],"query":[{"key":"body","value":"{\"from\":0, \"count\":100}"}],"variable":[]}},"response":[],"_postman_id":"661298d4-b96a-4bd7-9bb4-435743d6486e"},{"name":"/heat_maps","id":"c5b8cbd6-e289-4301-9d38-b4f5c9125b21","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"max_radius\": 1000\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/heat_maps","description":"<p><strong>Выдача данных для отображения тепловых карт</strong></p>\n<hr />\n<p>Выдача данных для отображения тепловых картах в виде</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[{\n    \"density\": n,\n    \"lat\": x,\n    \"lon\": y\n}]\n\n</code></pre><p>где n - количество точек, попавших в группу точности до 0.01 - т.е. в радиусе 1 км.</p>\n<p>Параметры в теле запроса:<br />max_radius - максимальный радиюь в метрах</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max_radius\": 1000\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Маскимум 20 тыс записей в ответе.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"density\": 10.5,\n        \"lat\": 59.78,\n        \"lon\": 57.06\n    },\n    {\n        \"density\": 1.0,\n        \"lat\": 55.57,\n        \"lon\": 36.75\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","heat_maps"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c5b8cbd6-e289-4301-9d38-b4f5c9125b21"},{"name":"/last_point","id":"631e1fce-d981-4585-b6b6-e04fcb56960d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"units\": [\n        {\n            \"id\": \"2bd74bab-8173-4c06-8fd8-ad923d3ad7d3\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/last_point","description":"<p><strong>Получение последних данных по объектам</strong></p>\n<hr />\n<p>В запросе можно указать объекты или одну группу</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p>Пример запроса и объектами:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"units\": [\n        {\n            \"id\": \"2bd74bab-8173-4c06-8fd8-ad923d3ad7d3\"\n        },\n        {\n            \"id\": \"655f9207-b19d-4df4-9cbe-442c8777baec\"\n        }\n    ]\n}\n\n</code></pre><p>Пример запрос с группой:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"groups\": [\n        {\n            \"id\": \"5dabceab-ae23-493f-8c04-8028c7066e8a\"\n        }\n    ]\n}\n\n</code></pre><p>В ответе возвращаются следующий поля:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>**по объекту**\nunit.id\nunit.name\nunit.imei\nunit.custom_fields - Ваши параметры\n**Из последнего сообщения**\nunix_timestamp \nspeed\naltitude\nsatellites\nlatitude\nlogitude\naddress\ntrip_detector - стоит или едет c учетом минимальной скорости движения (\"stop\" or \"movement\")\n\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"unit\": {\n            \"id\": \"2bd74bab-8173-4c06-8fd8-ad923d3ad7d3\",\n            \"imei\": \"8674590000000000\",\n            \"name\": \"MAN К922ОС 77 (Main) \",\n            \"custom_fields\": [\n                {\n                    \"name\": \"S-2551\",\n                    \"value\": \"#1\"\n                },\n                {\n                    \"name\": \"Тип терминала\",\n                    \"value\": \"1\"\n                },\n                {\n                    \"name\": \"Осмотр 5\",\n                    \"value\": \"55555\"\n                },\n                {\n                    \"name\": \"Вторая sim\",\n                    \"value\": \"11111XYZV\"\n                }\n            ]\n        },\n        \"last_point\": {\n            \"unix_timestamp\": 1707982594,\n            \"speed\": 3,\n            \"angle\": 318,\n            \"altitude\": 1745,\n            \"satellites\": 21,\n            \"latitude\": 55.5130615234375,\n            \"longitude\": 37.7850456237793,\n            \"address\": \"Горки Ленинские, Ленинский городской округ, Московская область\",\n            \"trip_detector\": \"movement\"\n        }\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","last_point"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"631e1fce-d981-4585-b6b6-e04fcb56960d"},{"name":"/cancel_report","id":"1079a247-a9d6-4814-9e84-345da48acd17","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"{{base_url}}/api_v1/cancel_report","description":"<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /cancel_report\n{\n  \"_reportId\": \".....\"\n}\n\n</code></pre><p>Остановить запущенный отчет.  </p>\n<p>_reportId формируется на вебе при формировании отчета.</p>\n","urlObject":{"path":["api_v1","cancel_report"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"1079a247-a9d6-4814-9e84-345da48acd17"}],"id":"2c8da069-d777-4b30-a7f8-ff96a17e2767","_postman_id":"2c8da069-d777-4b30-a7f8-ff96a17e2767","description":""},{"name":"Шаблоны отчетов","item":[{"name":"/report_templates?ids=:ids","id":"aef8a4f5-031c-44c0-a245-f1aa9c4d38a8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/api_v1/report_templates?ids=","description":"<p><strong>Получить все шаблоны отчетов по компании</strong></p>\n<hr />\n<p>Каждый Шаблон по сути это именнованая группа Таблиц Шаблонов отчетов.</p>\n<p>Таблица Шаблона - это набор Колонок Таблицы Шаблона + параметры.</p>\n<p>В самих Таблицах Шаблона задаются параметры для отображения отчета, например имя таблицы, группировка по определенной колонке, и т.д.</p>\n<p>Любой запрос шаблонов, помимо пользовательских шаблонов, также выводит Базовный шаблон (с таблицами и колонками по умолчанию), у которого параметр 'is_default' = true и параметр 'company_id' пустой. Таблицы и колонки данного шаблона не изменяемы и используются только для создания на их основе пользовательских таблиц.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[{\n    \"id\": \"27aaa1b1-0510-4b7b-b020-99837f5621f0\", //id шаблона\n    \"name\": \"шаблон2\",  //имя\n    \"template_tables\": [{\n        \"id\": \"d3134efa-9e9f-4be1-9459-1ded125ea73a\", //id таблицы\n        \"id_template\": \"27aaa1b1-0510-4b7b-b020-99837f5621f0\",  //id родительского шаблона\n        \"name\": \"Уведомления\", //имя таблицы\n        \"key\": \"notifications\", //ключ таблицы (берется из справочников по типу 'report_template_table_type') ------ НЕ ИЗМЕНЯЕМОЕ ПОЛЕ --------\n        \"geozones\": [{ // список выбранных геозон\n            \"id\": \"d3134efa-9e9f-4be1-9459-1ded125ea73a\"\n            // --------------- полный перечень полей геозоны ---------------------\n        }],\n        \"show_itog\": true, //показывать ли итог в таблице отчета\n        \"intervals_priority_high\": true, // Приоритетны ли интервалы отчета или смены\n        \"time_group\": \"nogrouping\", //временная группировка, возможные значения Без групперовки, По дням, По неделям, По месяцам (берется из справочников по типу 'report_template_table_type')\n        \"column_group\": \"name\", // ключ колонки по которой происходит группировка\n        \"template_columns\": [{ //колонки талбицы отчета, первоначально колонки берутся из справочника (для каждой таблицы предустановлены колонки) ------ НЕ ИЗМЕНЯЕМОЕ КОЛИЧЕСТО КОЛОНОК --------\n            \"id\": \"27aaa1b1-0510-4b7b-b020-99837f5621f0\",\n            \"name\": \"Имя\", //имя колонки\n            \"filter_min\": 0, //фильтрация строк по минимальному значению\n            \"filter_max\": 1000, //фильтрация строк по максимльному значению\n            \"user_filter\": false,//использовать фильтрацию filter_min  и filter_max \n            \"sort\": 0, //порядок колонки в отчете\n            \"key\": \"name\", //ключ колонки   ------ НЕ ИЗМЕНЯЕМОЕ ПОЛЕ --------\n            \"is_visible\": true //видима ли колонка в отчете \n        }],\n        \"template_sensors\": [{\n            \"id\": \"8f05e497-bddc-4b6a-bedb-e1c6ab5b55f0\",\n            \"sensor_type\": { // тип датчика, справочник типа sensor_type\n                \"key\": \"digital_sensors\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик\"\n            },\n            \"sensor_value\": { //значение датчика, справочник типа template_sensor_value_type\n                \"key\": \"template_sensor_first_value\",\n                \"type\": \"template_sensor_value_type\",\n                \"value\": \"Начальное значение\"\n            },\n            \"name_mask\": \"Пробег\" //string, маска по имени\n        }, {\n            \"id\": \"91100c04-9ca6-48b1-9201-715713d023cc\",\n            \"sensor_type\": {\n                \"key\": \"digital_sensors\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик\"\n            },\n            \"sensor_value\": {\n                \"key\": \"template_sensor_last_value\",\n                \"type\": \"template_sensor_value_type\",\n                \"value\": \"Конечное значение\"\n            },\n            \"name_mask\": \"Пробег\"\n        }],\n        \"template_computable_columns\": [// вычисляемые колонки\n            {\n                \"name\": \"Тип / марка машины\", // название колонки\n                \"value\": \"custom_fields.brand_name\"// значение колонки\n            },\n            {\n                \"name\": \"Расход по показаниям системы  SKIF APP, л.\",\n                \"value\": \"columns.sum_fillings\"\n            },\n            {\n                \"name\": % экономии от SKIF APP\",\n                \"value\": \"columns.sum_fillings_plan / columns.sum_fillings * 100 - 100\"\n            },\n        ]\n    }]\n}]\n\n</code></pre>","urlObject":{"path":["api_v1","report_templates"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"aef8a4f5-031c-44c0-a245-f1aa9c4d38a8"},{"name":"/report_templates","id":"82cfda7f-2a53-4dd1-a708-1a5e333c92c9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"Шаблон123\",\n    \"is_default\": false,\n    \"template_tables\": [\n        {\n            \"id\": \"eea0df8a-206c-418e-955d-ec1b7b418cde\",\n            \"reportTemplate\": {\n                \"id\": \"76c4d2a4-5c89-494d-9c26-fbfcfa144601\"\n            },\n            \"key\": \"trips\",\n            \"is_default\": false,\n            \"name\": \"Поездки\",\n            \"show_itog\": true,\n            \"time_group\": \"no_grouping\",\n            \"sensors\": [],\n            \"geozones\": [],\n            \"template_columns\": [\n                {\n                    \"id\": \"ffc923bc-32a8-4097-8c94-44ea994dfe64\",\n                    \"name\": \"service column\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 1,\n                    \"key\": \"_end_latlon_trips\",\n                    \"is_visible\": false,\n                    \"type\": \"array\",\n                    \"_visible\": false\n                }\n            ],\n            \"_default\": false\n        },\n        {\n            \"id\": \"6f5a645e-ad5a-4465-91dc-1a90ffbc4d3e\",\n            \"reportTemplate\": {\n                \"id\": \"76c4d2a4-5c89-494d-9c26-fbfcfa144601\"\n            },\n            \"key\": \"geozones\",\n            \"is_default\": false,\n            \"name\": \"Геозоны\",\n            \"show_itog\": true,\n            \"time_group\": \"no_grouping\",\n            \"sensors\": [],\n            \"geozones\": [],\n            \"template_columns\": [\n                {\n                    \"id\": \"bb878209-c1ad-408e-953e-02e8ddef1a0e\",\n                    \"name\": \"Водитель\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 9,\n                    \"key\": \"driver\",\n                    \"is_visible\": true,\n                    \"type\": \"string\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"1d75b7d7-172c-401d-8bab-95d91a5076a0\",\n                    \"name\": \"service column\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 1,\n                    \"key\": \"_start_time_geozones\",\n                    \"is_visible\": false,\n                    \"type\": \"date\",\n                    \"_visible\": false\n                },\n                {\n                    \"id\": \"7908d344-b5df-40df-a52a-879f1e9a3b2c\",\n                    \"name\": \"service column\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 1,\n                    \"key\": \"_end_time_geozones\",\n                    \"is_visible\": false,\n                    \"type\": \"date\",\n                    \"_visible\": false\n                },\n                {\n                    \"id\": \"5615c1a0-3714-4793-a38c-04144676da4a\",\n                    \"name\": \"service column\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 1,\n                    \"key\": \"_start_latlon_geozones\",\n                    \"is_visible\": false,\n                    \"type\": \"array\",\n                    \"_visible\": false\n                },\n                {\n                    \"id\": \"9d08ba81-9a1d-4394-ad40-ce5c1f7098fb\",\n                    \"name\": \"service column\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 1,\n                    \"key\": \"_end_latlon_geozones\",\n                    \"is_visible\": false,\n                    \"type\": \"array\",\n                    \"_visible\": false\n                },\n                {\n                    \"id\": \"0087503f-4c36-40c9-bc5e-a3a4742beb5c\",\n                    \"name\": \"Имя\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 1,\n                    \"key\": \"unit_name\",\n                    \"is_visible\": true,\n                    \"type\": \"string\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"e0d5dfb5-9c73-440e-b0ff-c85d26aecc42\",\n                    \"name\": \"Начало\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 3,\n                    \"key\": \"first_datepoint\",\n                    \"is_visible\": true,\n                    \"type\": \"date\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"3d72fc84-8298-422c-beb5-bf643dcae1a9\",\n                    \"name\": \"Конец\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 4,\n                    \"key\": \"last_datepoint\",\n                    \"is_visible\": true,\n                    \"type\": \"date\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"c303f29b-c0a4-4b00-acb0-42c12d33c208\",\n                    \"name\": \"Длит-сть\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 5,\n                    \"key\": \"sum_datepoint\",\n                    \"is_visible\": true,\n                    \"type\": \"date\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"9e673b50-b269-46be-95f6-2cc7bf5aecc2\",\n                    \"name\": \"Нач. адрес\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 6,\n                    \"key\": \"first_address\",\n                    \"is_visible\": true,\n                    \"type\": \"string\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"8e597d69-45b6-4211-817c-0dfa13cedead\",\n                    \"name\": \"Нач. знач. топл.\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 10,\n                    \"key\": \"first_fillings\",\n                    \"is_visible\": true,\n                    \"type\": \"number\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"9b30d12f-6f9b-4da8-8f38-e0a23ed76964\",\n                    \"name\": \"Кон. знач. топл.\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 11,\n                    \"key\": \"finish_fillings\",\n                    \"is_visible\": true,\n                    \"type\": \"number\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"cd9e4983-c1ee-467e-9559-65563195ca5b\",\n                    \"name\": \"Кон. адрес\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 12,\n                    \"key\": \"last_address\",\n                    \"is_visible\": true,\n                    \"type\": \"string\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"4bbbc5ad-d404-4917-acc0-2920deaf9cce\",\n                    \"name\": \"Ср-яя скор-ть\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 13,\n                    \"key\": \"avg_speedkph\",\n                    \"is_visible\": true,\n                    \"type\": \"number\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"7ddec502-8421-4f55-baa7-bceb10841d89\",\n                    \"name\": \"Имя геозоны\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 14,\n                    \"key\": \"geo_name\",\n                    \"is_visible\": true,\n                    \"type\": \"string\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"372aee63-1746-4d14-aaa6-945425058be9\",\n                    \"name\": \"Израсх-но топл.\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 15,\n                    \"key\": \"sum_fillings\",\n                    \"is_visible\": true,\n                    \"type\": \"number\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"30870ece-3e91-4b42-be2b-94dd78055606\",\n                    \"name\": \"Пробег\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 16,\n                    \"key\": \"sum_distance\",\n                    \"is_visible\": true,\n                    \"type\": \"number\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"8ca0720d-9bf9-4b0b-9647-fb2442a7cbb9\",\n                    \"name\": \"Макс. скор-ть\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 17,\n                    \"key\": \"max_speedkph\",\n                    \"is_visible\": true,\n                    \"type\": \"number\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"c1b21477-69bd-49cd-8d83-b658b941ce46\",\n                    \"name\": \"Счетчик (сум)\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 18,\n                    \"key\": \"sum_counter\",\n                    \"is_visible\": true,\n                    \"type\": \"number\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"bfb31794-8638-4462-8f77-b4b73f55529f\",\n                    \"name\": \"Кол-во сообщ-й\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 19,\n                    \"key\": \"count_point\",\n                    \"is_visible\": true,\n                    \"type\": \"number\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"143e031c-2145-4bf9-9a14-113388504c85\",\n                    \"name\": \"service column\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 1,\n                    \"key\": \"_unit_id\",\n                    \"is_visible\": false,\n                    \"type\": \"string\",\n                    \"_visible\": false\n                },\n                {\n                    \"id\": \"28ffa63d-880f-4d40-a8a6-a6ace12d5ada\",\n                    \"name\": \"Прицеп\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 2100,\n                    \"key\": \"trailer\",\n                    \"is_visible\": true,\n                    \"type\": \"string\",\n                    \"_visible\": true\n                },\n                {\n                    \"id\": \"6d68a50a-a146-4d49-9af3-f16047532819\",\n                    \"name\": \"Вид работ\",\n                    \"filter_min\": 0,\n                    \"filter_max\": 1000,\n                    \"sort\": 2200,\n                    \"key\": \"work_types\",\n                    \"is_visible\": true,\n                    \"type\": \"string\",\n                    \"_visible\": true\n                }\n            ],\n            \"_default\": false\n        }\n    ],\n    \"_default\": false\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/report_templates","description":"<p><strong>Создает свой шаблон отчетов</strong></p>\n<hr />\n<p>По правилам, таблица шаблона должна строиться на основании дефолтного шаблона таблиц, т.е. путем копирования полей дефолтного шаблона и заполнения их пользовательскими значениями<br />(кроме поля 'key').</p>\n<p>При создании Шаблона Таблицы:<br />- ключи таблиц должны быть в словаре таблиц см. /dictionaries (не допускаются произвольные ключи или пустые значения);<br />- количество колонок и их ключи должны совпадать с шаблоном конкретной таблицы Базового шаблона ;</p>\n<p>Запрос для создания пустого шаблона:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\"name\": \"Имя_шаблона\", \"template_tables\": []}\n\n</code></pre><hr />\n<p><strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[{\n    \"id\": \"27aaa1b1-0510-4b7b-b020-99837f5621f0\", //id шаблона\n    \"name\": \"шаблон2\",  //имя\n    \"template_tables\": [{\n        \"id\": \"d3134efa-9e9f-4be1-9459-1ded125ea73a\", //id таблицы\n        \"id_template\": \"27aaa1b1-0510-4b7b-b020-99837f5621f0\",  //id родительского шаблона\n        \"name\": \"Уведомления\", //имя таблицы\n        \"key\": \"notifications\", //ключ таблицы (берется из справочников по типу 'report_template_table_type') ------ НЕИЗМЕНЯЕМОЕ ПОЛЕ --------\n        \"attachments\": [{ //вложения\n           \"id\": \"80a201ea-67e5-4cd9-aea5-591128d2855a\", //его id\n           \"created\": \"2017-11-16 23:41:44\", //дата создания\n           \"name\": \"test.doc\", //переданное название файла\n           \"url\": \"/attachments/80a201ea-67e5-4cd9-aea5-591128d2855a.doc\" //путь по которому доступен файл\n        }], \n        \"sensor_name_masks\":[ // Маски по названия датчиков\n            {\"value\": \"Датчик1\"},\n            {\"value\": \"Датчик2\"}\n        ]\n        \"geozones\": [{ // список выбранных геозон\n            \"id\": \"d3134efa-9e9f-4be1-9459-1ded125ea73a\"\n            // --------------- полный перечень полей геозоны ---------------------\n        }],\n        \"default_template_table\": { //базовый шаблон таблицы, для базовой таблицы нет такого поля \n           \"id\": \"800c0795-5b79-40cd-bdeb-ab309228534b\",\n           \"name\": \"Поездки\"\n        }\n        \"show_itog\": true, //показывать ли итог в таблице отчета\n        \"intervals_priority_high\": true, // Приоритетны ли интервалы отчета или смены\n        \"time_group\": \"nogrouping\", //временная группировка. Возможные значения: Без групперовки, По дням, По неделям, По месяцам (берется из справочников по типу 'report_template_table_type')\n        \"column_group\": \"name\", // ключ колонки, по которой происходит группировка\n        \"used_geozones_filter\": true,//для включения фильтрации по геозонам, boolean.\n         \"filter_geozones_type\": { //тип фильтрации по геозонам. Возможные значения получить из dictionaries, где type=filter_geozones_type\n          \"key\": \"filter_geozones_include\",\n           \"type\": \"filter_geozones_type\",\n           \"value\": \"Включение\"\n         },\n        \"geozones\": [ //выбранные геозоны\n           {\n            \"id\": \"3fa1a644-bee4-4823-940b-b7542b3a9919\"\n           },\n           {\n             \"id\": \"a671e052-f44d-4787-a3b4-6b3cac711a47\"\n           }\n        ], // geozones_groups если используются группы геозонов вместо геозоны.\n        \"template_columns\": [{ //колонки талбицы отчета, первоначально колонки берутся из справочника (для каждой таблицы предустановлены колонки) ------ НЕИЗМЕНЯЕМОЕ КОЛИЧЕСТО КОЛОНОК --------\n            \"id\": \"27aaa1b1-0510-4b7b-b020-99837f5621f0\",\n            \"name\": \"Имя\", //имя колонки\n            \"filter_min\": 0, //фильтрация строк по минимальному значению\n            \"filter_max\": 1000, //фильтрация строк по максимльному значению\n            \"user_filter\": true // использовать фильтр для поля\n            \"sort\": 0, //порядок колонки в отчете\n            \"key\": \"name\", //ключ колонки   ------ НЕИЗМЕНЯЕМОЕ ПОЛЕ --------\n            \"is_visible\": true //видима ли колонка в отчете \n        }],\n        \"template_sensors\": [{ // датчиковые поля\n            \"id\": \"8f05e497-bddc-4b6a-bedb-e1c6ab5b55f0\",\n            \"sensor_type\": { // тип датчика, справочник типа sensor_type\n                \"key\": \"digital_sensors\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик\"\n            },\n            \"sensor_value\": { //значение датчика, справочник типа template_sensor_value_type\n                \"key\": \"template_sensor_first_value\",\n                \"type\": \"template_sensor_value_type\",\n                \"value\": \"Начальное значение\"\n            },\n            \"name_mask\": \"Пробег\", //string, маска по имени\n            \"column_name\": \"Среднее\" // Название колонки\n        }, {\n            \"id\": \"91100c04-9ca6-48b1-9201-715713d023cc\",\n            \"sensor_type\": {\n                \"key\": \"digital_sensors\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик\"\n            },\n            \"sensor_value\": {\n                \"key\": \"template_sensor_last_value\",\n                \"type\": \"template_sensor_value_type\",\n                \"value\": \"Конечное значение\"\n            },\n            \"name_mask\": \"Пробег\",\n            \"column_name\": \"Конечное\"\n        }],\n        \"template_computable_columns\": [// вычисляемые колонки\n            {\n                \"name\": \"Тип / марка машины\", // название колонки\n                \"value\": \"custom_fields.brand_name\"// значение колонки\n                \"total_ops\": \"take_first\" //способ формирования итога для этой колонки, получается из справочника type=report_column_total_type, отправляется ключ (key)\n            },\n            {\n                \"name\": \"Расход по показаниям системы  SKIF APP, л.\",\n                \"value\": \"columns.sum_fillings\",\n                \"total_ops\": \"sum\"\n            },\n            {\n                \"name\": % экономии от SKIF APP\",\n                \"value\": \"columns.sum_fillings_plan / columns.sum_fillings * 100 - 100\",\n                \"total_ops\": \"max\"\n            },\n        ],\n        \"weekdays\": [1,2,4,7], // \n        \"crop_intervals\": true,// активировать обрезание интервалов\n        \"time_intervals\": [ // временные интервалы для фильтрации\n           {\n               \"from\": \"10:00\",\n                \"to\": \"12:00\"\n           },\n           {\n               \"from\": \"15:30\",\n               \"to\": \"17:45\"\n           }\n        ]\n    }]\n}]\n\n</code></pre>","urlObject":{"path":["api_v1","report_templates"],"host":["{{base_url}}"],"query":[{"disabled":true,"key":"","value":""}],"variable":[]}},"response":[],"_postman_id":"82cfda7f-2a53-4dd1-a708-1a5e333c92c9"},{"name":"/report_templates/list","id":"88c8f156-2c31-4bb6-8671-f9722f5bf926","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"{{base_url}}/api_v1/report_templates/list","description":"<p><strong>Запрос списка шаблонов отчетов</strong></p>\n<hr />\n<p>Все также как и в /units/list.</p>\n<hr />\n<p>Возможные значения:<br />SortField = [\"name\", \"\"]<br />Conditions.Field = [\"name\", \"\"]</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n","urlObject":{"path":["api_v1","report_templates","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"88c8f156-2c31-4bb6-8671-f9722f5bf926"},{"name":"/report_templates/computable_table_fields?table_key=:table_key","id":"fdc09fbd-f565-4f7e-ac55-5239eee58c7d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/report_templates/computable_table_fields?table_key=","description":"<p><strong>Получение возможных ссылок на значения для формулы в колонке отчета</strong></p>\n<hr />\n<p>table_key - ключ таблицы<br />Возвращает все преобразования:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"custom_fields.fuel_fillings_minfilling\": \"Доп. поля объекта/Мин. объем заправки\",\n  \"custom_fields.fuel_fillings_msgignorestart\": \"Доп. поля объекта/Игнор-ть сообщ-я после начала движения\",\n  \"custom_fields.fuel_fillings_minstaytheft\": \"Доп. поля объекта/Мин. время остановки для опр-ия слива\",\n  \"custom_fields.fuel_fillings_minitheft\": \"Доп. поля объекта/Мин. объем слива\",\n  \"custom_fields.fuel_consumption_summerconsump\": \"Доп. поля объекта/Расход летом (л/100км.)\",\n  \"custom_fields.fuel_consumption_winterconsump\": \"Доп. поля объекта/Расход зимой (л/100км.)\",\n  \"custom_fields.fuel_math_idlingsummer\": \"Доп. поля объекта/На холостом ходу летом (л./час.)\",\n  \"custom_fields.fuel_math_idlingwinter\": \"Доп. поля объекта/На холостом ходу зимой (л./час.)\",\n  \"custom_fields.fuel_math_coeffunderload\": \"Доп. поля объекта/Коэф. при движении под нагрузкой\",\n  \"custom_fields.fuel_consumption_winterfrom\": \"Доп. поля объекта/Первый месяц зимы (январь-1)\",\n  \"custom_fields.fuel_consumption_winterto\": \"Доп. поля объекта/Последний месяц зимы (январь-1)\",\n  \"custom_fields.fuel_price\": \"Доп. поля объекта/Стоимость (1 л.)\",\n  \"custom_fields.tripdetector_minparktime\": \"Доп. поля объекта/Мин. время стоянки (сек)\",\n  \"custom_fields.advanced_mileagecoeff\": \"Доп. поля объекта/Коэф. пробега\",\n  \"custom_fields.tripdetector_minmovespeed\": \"Доп. поля объекта/Мин. скорость движ-я (км/ч)\",\n  \"custom_fields.tripdetector_mintripdist\": \"Доп. поля объекта/Мин. расст-ие поездки (м)\",\n  \"custom_fields.advanced_maxintervalmsg\": \"Доп. поля объекта/Макс. интервал между сообщ-ми (сек)\",\n  \"custom_fields.tripdetector_maxdistancemsg\": \"Доп. поля объекта/Макс. расст-ие между сообщ-ми (м)\",\n  \"custom_fields.tripdetector_mintriptime\": \"Доп. поля объекта/Мин. время поездки (сек)\",\n  \"custom_fields.key_tripdetector_movedetect\": \"Доп. поля объекта/Опр-ие движ-я\",\n  \"custom_fields.tripdetector_mileagedetect\": \"Доп. поля объекта/Определение пробега\",\n  \"custom_fields.key_motohourdetector\": \"Доп. поля объекта/Определение моточасов\",\n  \"custom_fields.analyst\": \"Доп. поля объекта/Аналитик\"\n  \"custom_fields.installer\": \"Доп. поля объекта/Установщик\",\n  \"custom_fields.install_date\": \"Доп. поля объекта/Дата установки\",\n  \"custom_fields.install_place\": \"Доп. поля объекта/Место установки в ТС\",\n  \"custom_fields.serial_number\": \"Доп. поля объекта/Серийный номер терминала\",\n  \"custom_fields.serial_number_dut\": \"Доп. поля объекта/Серийный номер ДУТ\",\n  \"custom_fields.dut_seal_serial_number\": \"Доп. поля объекта/Серийный номер пломбы ДУТ\",\n  \"custom_fields.license_plate_number\": \"Доп. поля объекта/Гос номер\",\n  \"custom_fields.hours_rate\": \"Доп. поля объекта/Норма часов в день\",\n  \"custom_fields.block_date\": \"Доп. поля объекта/Дата блокировки(yyyy-MM-dd)\",\n  \"custom_fields.kp\": \"Доп. поля объекта/КП\",\n  \"custom_fields.dut\": \"Доп. поля объекта/ДУТ\",\n  \"custom_fields.second_sim\": \"Доп. поля объекта/Вторая sim\",\n  \"custom_fields.serial_number_dut_1\": \"Доп. поля объекта/Серийный номер ДУТ 1\",\n  \"custom_fields.serial_number_dut_2\": \"Доп. поля объекта/Серийный номер ДУТ 2\",\n  \"custom_fields.brand_name\": \"Доп. поля объекта/Тип/марка машины\",\n  \"custom_fields.fuel_type\": \"Доп. поля объекта/Вид топлива (бенз., д/т)\",\n  \"report_columns.unit_name\": \"Колонки отчета/Имя\",\n  \"report_columns.first_datepoint\": \"Колонки отчета/Начало\",\n  \"report_columns.last_datepoint\": \"Колонки отчета/Конец\",\n  \"report_columns.count_point\": \"Колонки отчета/Кол-во сообщ-й\",\n  \"report_columns.sum_distance\": \"Колонки отчета/Пробег\",\n  \"report_columns.stucked_fillings\": \"Колонки отчета/Заправки\",\n  \"report_columns.drained_fillings\": \"Колонки отчета/Сливы топл.\",\n  \"report_columns.avg_speedkph\": \"Колонки отчета/Ср-яя скор-ть\",\n  \"report_columns.fuel_price\": \"Колонки отчета/Затраты на топливо\",\n  \"report_columns.fuel_price_plan\": \"Колонки отчета/Затраты на топл. по нормам\",\n  \"report_columns.sum_fillings_idling\": \"Колонки отчета/Расход на холостом\",\n  \"report_columns.sum_fillings_idling_plan\": \"Колонки отчета/Расход по нормам на холостом\",\n  \"report_columns.sum_fillings_idling_deviation\": \"Колонки отчета/Откл. расхода на холостом\",\n  \"report_columns.sum_fillings_plan\": \"Колонки отчета/Расход по нормам\",\n  \"report_columns.sum_fillings\": \"Колонки отчета/Израсх-но топл.\",\n  \"report_columns.sum_fillings_absolute\": \"Колонки отчета/Расход по ДАРТ\",\n  \"report_columns.sum_fillings_instant\": \"Колонки отчета/Расход по ДМРТ\",\n  \"report_columns.max_speedkph\": \"Колонки отчета/Макс. скор-ть\",\n  \"report_columns.sum_fillings_deviation\": \"Колонки отчета/Отклонение расхода\",\n  \"report_columns.first_fillings\": \"Колонки отчета/Нач. знач. топл.\",\n  \"report_columns.finish_fillings\": \"Колонки отчета/Кон. знач. топл.\",\n  \"report_columns.fuel_consumption_rates\": \"Колонки отчета/Расх. топл.(л\\100км)\",\n  \"report_columns.motohour_idling\": \"Колонки отчета/Холостой ход\",\n  \"report_columns.motohours\": \"Колонки отчета/Моточасы\",\n  \"report_columns.motohour_moving\": \"Колонки отчета/В движении\",\n  \"report_columns.driver\": \"Колонки отчета/Водитель\",\n  \"report_columns.trailer\": \"Колонки отчета/Прицеп\",\n  \"report_columns.work_types\": \"Колонки отчета/Вид работ\",\n  \"report_columns.groups_of_unit\": \"Колонки отчета/Группы\"\n}\n\n</code></pre>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n","urlObject":{"path":["api_v1","report_templates","computable_table_fields"],"host":["{{base_url}}"],"query":[{"key":"table_key","value":""}],"variable":[]}},"response":[],"_postman_id":"fdc09fbd-f565-4f7e-ac55-5239eee58c7d"},{"name":"/report_templates/excel_table_fields?table_key=:table_key","id":"36f026ad-6140-4146-be2a-446220693564","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/report_templates/excel_table_fields?table_key=","description":"<p><strong>Получение возможных ссылок на значения для формулы в шаблоне эксель</strong></p>\n<hr />\n<p>table_key - ключ таблицы<br />Возвращает все возможные поля:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"key\": \"company.name\",\n        \"name\": \"Название компании\"\n    },\n    {\n        \"key\": \"unit.name\",\n        \"name\": \"Название объекта\"\n    },\n    {\n        \"key\": \"unit.type\",\n        \"name\": \"Тип объекта\"\n    },\n    {\n        \"key\": \"shift.start_time\",\n        \"name\": \"Запланированное время начала смена\"\n    },\n    {\n        \"key\": \"shift.end_time\",\n        \"name\": \"Запланированное время окончания смена\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_fillings_minfilling\",\n        \"name\": \"Доп. поля объекта/Мин. объем заправки\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_fillings_msgignorestart\",\n        \"name\": \"Доп. поля объекта/Игнор-ть сообщ-я после начала движения(с)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_fillings_minstaytheft\",\n        \"name\": \"Доп. поля объекта/Мин. время остановки для опр-ия слива(с)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_fillings_minitheft\",\n        \"name\": \"Доп. поля объекта/Мин. объем слива\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_consumption_summerconsump\",\n        \"name\": \"Доп. поля объекта/Расход летом (л/100км.)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_consumption_winterconsump\",\n        \"name\": \"Доп. поля объекта/Расход зимой (л/100км.)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_math_idlingsummer\",\n        \"name\": \"Доп. поля объекта/На холостом ходу летом (л./час.)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_math_idlingwinter\",\n        \"name\": \"Доп. поля объекта/На холостом ходу зимой (л./час.)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_math_coeffunderload\",\n        \"name\": \"Доп. поля объекта/Коэф. при движении под нагрузкой\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_consumption_winterfrom\",\n        \"name\": \"Доп. поля объекта/Первый месяц зимы (январь-1)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_consumption_winterto\",\n        \"name\": \"Доп. поля объекта/Последний месяц зимы (январь-1)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_price\",\n        \"name\": \"Доп. поля объекта/Стоимость (1 л.)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_type\",\n        \"name\": \"Доп. поля объекта/Вид топлива (бенз., д/т)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_mark\",\n        \"name\": \"Доп. поля объекта/Марка горючего\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fueler_distance\",\n        \"name\": \"Доп. поля объекта/Радиус приближения как Топливозаправщик(м)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.tripdetector_minparktime\",\n        \"name\": \"Доп. поля объекта/Мин. время стоянки (сек)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.advanced_mileagecoeff\",\n        \"name\": \"Доп. поля объекта/Коэф. пробега\"\n    },\n    {\n        \"key\": \"unit.custom_fields.tripdetector_minmovespeed\",\n        \"name\": \"Доп. поля объекта/Мин. скорость движ-я (км/ч)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.tripdetector_mintripdist\",\n        \"name\": \"Доп. поля объекта/Мин. расст-ие поездки (м)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.advanced_maxintervalmsg\",\n        \"name\": \"Доп. поля объекта/Макс. интервал между сообщ-ми (сек)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.tripdetector_maxdistancemsg\",\n        \"name\": \"Доп. поля объекта/Макс. расст-ие между сообщ-ми (м)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.tripdetector_mintriptime\",\n        \"name\": \"Доп. поля объекта/Мин. время поездки (сек)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.key_tripdetector_movedetect\",\n        \"name\": \"Доп. поля объекта/Опр-ие движ-я\"\n    },\n    {\n        \"key\": \"unit.custom_fields.tripdetector_mileagedetect\",\n        \"name\": \"Доп. поля объекта/Определение пробега\"\n    },\n    {\n        \"key\": \"unit.custom_fields.key_motohourdetector\",\n        \"name\": \"Доп. поля объекта/Определение моточасов\"\n    },\n    {\n        \"key\": \"unit.custom_fields.analyst\",\n        \"name\": \"Доп. поля объекта/Аналитик\"\n    },\n    {\n        \"key\": \"unit.custom_fields.installer\",\n        \"name\": \"Доп. поля объекта/Установщик\"\n    },\n    {\n        \"key\": \"unit.custom_fields.install_date\",\n        \"name\": \"Доп. поля объекта/Дата установки(формат год-месяц-день, например 2019-03-07)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.install_place\",\n        \"name\": \"Доп. поля объекта/Место установки в ТС\"\n    },\n    {\n        \"key\": \"unit.custom_fields.serial_number\",\n        \"name\": \"Доп. поля объекта/Серийный номер терминала\"\n    },\n    {\n        \"key\": \"unit.custom_fields.serial_number_dut\",\n        \"name\": \"Доп. поля объекта/Серийный номер ДУТ\"\n    },\n    {\n        \"key\": \"unit.custom_fields.dut_seal_serial_number\",\n        \"name\": \"Доп. поля объекта/Серийный номер пломбы ДУТ\"\n    },\n    {\n        \"key\": \"unit.custom_fields.license_plate_number\",\n        \"name\": \"Доп. поля объекта/Гос номер\"\n    },\n    {\n        \"key\": \"unit.custom_fields.hours_rate\",\n        \"name\": \"Доп. поля объекта/Норма часов в день\"\n    },\n    {\n        \"key\": \"unit.custom_fields.block_date\",\n        \"name\": \"Доп. поля объекта/Дата блокировки(формат год-месяц-день, например 2019-03-07)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.kp\",\n        \"name\": \"Доп. поля объекта/КП\"\n    },\n    {\n        \"key\": \"unit.custom_fields.dut\",\n        \"name\": \"Доп. поля объекта/ДУТ\"\n    },\n    {\n        \"key\": \"unit.custom_fields.second_sim\",\n        \"name\": \"Доп. поля объекта/Вторая sim\"\n    },\n    {\n        \"key\": \"unit.custom_fields.serial_number_dut_1\",\n        \"name\": \"Доп. поля объекта/Серийный номер ДУТ 1\"\n    },\n    {\n        \"key\": \"unit.custom_fields.serial_number_dut_2\",\n        \"name\": \"Доп. поля объекта/Серийный номер ДУТ 2\"\n    },\n    {\n        \"key\": \"unit.custom_fields.brand_name\",\n        \"name\": \"Доп. поля объекта/Марка машины\"\n    },\n    {\n        \"key\": \"unit.custom_fields.brand_code\",\n        \"name\": \"Доп. поля объекта/Код марки\"\n    },\n    {\n        \"key\": \"unit.custom_fields.video_device_name\",\n        \"name\": \"Доп. поля объекта/Видео устройство\"\n    },\n    {\n        \"key\": \"unit.custom_fields.video_device_id\",\n        \"name\": \"Доп. поля объекта/ID-видео устройства\"\n    },\n    {\n        \"key\": \"unit.custom_fields.video_cameras\",\n        \"name\": \"Доп. поля объекта/Камеры\"\n    },\n    {\n        \"key\": \"unit.custom_fields.max_speed\",\n        \"name\": \"Доп. поля объекта/Максимальная скорость в сообщениях\"\n    },\n    {\n        \"key\": \"unit.custom_fields.min_satellites\",\n        \"name\": \"Доп. поля объекта/Минимальное количество спутников\"\n    },\n    {\n        \"key\": \"unit.custom_fields.max_hdop\",\n        \"name\": \"Доп. поля объекта/Максимальное значение dhop\"\n    },\n    {\n        \"key\": \"report.unit_name\",\n        \"name\": \"Колонки отчета/Имя\"\n    },\n    {\n        \"key\": \"report.first_datepoint\",\n        \"name\": \"Колонки отчета/Начало\"\n    },\n    {\n        \"key\": \"report.last_datepoint\",\n        \"name\": \"Колонки отчета/Конец\"\n    },\n    {\n        \"key\": \"report.sum_datepoint\",\n        \"name\": \"Колонки отчета/Длит-сть\"\n    },\n    {\n        \"key\": \"report.driver\",\n        \"name\": \"Колонки отчета/Водитель\"\n    },\n    {\n        \"key\": \"report.first_address\",\n        \"name\": \"Колонки отчета/Нач. адрес\"\n    },\n    {\n        \"key\": \"report.first_fillings\",\n        \"name\": \"Колонки отчета/Нач. знач. топл.\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.finish_fillings\",\n        \"name\": \"Колонки отчета/Кон. знач. топл.\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.last_address\",\n        \"name\": \"Колонки отчета/Кон. адрес\"\n    },\n    {\n        \"key\": \"report.sum_fillings_plan_in_moving\",\n        \"name\": \"Колонки отчета/Расход по нормам в движении\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.fuel_consumption_rates\",\n        \"name\": \"Колонки отчета/Расх. топл.(л\\\\100км)\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.avg_speedkph\",\n        \"name\": \"Колонки отчета/Ср-яя скор-ть\"\n    },\n    {\n        \"key\": \"report.sum_distance\",\n        \"name\": \"Колонки отчета/Пробег(км)\"\n    },\n    {\n        \"key\": \"report.drained_fillings\",\n        \"name\": \"Колонки отчета/Сливы топл.\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_fillings_absolute\",\n        \"name\": \"Колонки отчета/Расход по ДАРТ\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_distance_absolute\",\n        \"name\": \"Колонки отчета/Пробег по датчику\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_distance_absolute_error\",\n        \"name\": \"Колонки отчета/Погрешность пробега по датчику(%)\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_fillings\",\n        \"name\": \"Колонки отчета/Израсх-но топл.\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_fillings_instant\",\n        \"name\": \"Колонки отчета/Расход по ДМРТ\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_fillings_deviation\",\n        \"name\": \"Колонки отчета/Отклонение расхода\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_fillings_plan\",\n        \"name\": \"Колонки отчета/Расход по нормам\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_fillings_absolute_error\",\n        \"name\": \"Колонки отчета/Погрешность расхода по ДАРТ(%)\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.fuel_price_plan\",\n        \"name\": \"Колонки отчета/Затраты на топл. по нормам\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.fuel_price\",\n        \"name\": \"Колонки отчета/Затраты на топливо\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.fuel_consumption_rates_absolut\",\n        \"name\": \"Колонки отчета/Расх. топл. по ДАРТ(л\\\\100км)\"\n    },\n    {\n        \"key\": \"report.last_accumulate_sensor\",\n        \"name\": \"Колонки отчета/Кон. знач. Накоп. датч.\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.last_mileagecurr\",\n        \"name\": \"Колонки отчета/Пробег\"\n    },\n    {\n        \"key\": \"report.sum_accumulate_sensor\",\n        \"name\": \"Колонки отчета/Накоп. датч. (сум)\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.max_speedkph\",\n        \"name\": \"Колонки отчета/Макс. скор-ть\"\n    },\n    {\n        \"key\": \"report.sum_counter\",\n        \"name\": \"Колонки отчета/Счетчик (сум)\"\n    },\n    {\n        \"key\": \"report.count_point\",\n        \"name\": \"Колонки отчета/Кол-во сообщ-й\"\n    },\n    {\n        \"key\": \"report.first_accumulate_sensor\",\n        \"name\": \"Колонки отчета/Нач. знач. Накоп. датч.\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.max_temperature\",\n        \"name\": \"Колонки отчета/Макс. темп.\"\n    },\n    {\n        \"key\": \"report.min_temperature\",\n        \"name\": \"Колонки отчета/Мин. темп.\"\n    },\n    {\n        \"key\": \"report.avg_temperature\",\n        \"name\": \"Колонки отчета/Ср-я темп.\"\n    },\n    {\n        \"key\": \"report.last_stamp\",\n        \"name\": \"Колонки отчета/Время приема\"\n    },\n    {\n        \"key\": \"report.sharp_accel\",\n        \"name\": \"Колонки отчета/Резкое ускорение\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sharp_braking\",\n        \"name\": \"Колонки отчета/Резкое торможение\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sharp_turn\",\n        \"name\": \"Колонки отчета/Резкий поворот\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.jump\",\n        \"name\": \"Колонки отчета/Скачок\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.over_speed\",\n        \"name\": \"Колонки отчета/Превышение скорости\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_distance_corrected\",\n        \"name\": \"Колонки отчета/Пробег (скоррект.)\"\n    },\n    {\n        \"key\": \"report.violation_score\",\n        \"name\": \"Колонки отчета/Балл нарушения\"\n    },\n    {\n        \"key\": \"report.trailer\",\n        \"name\": \"Колонки отчета/Прицеп\"\n    },\n    {\n        \"key\": \"report.work_types\",\n        \"name\": \"Колонки отчета/Вид работ\"\n    },\n    {\n        \"key\": \"report.groups_of_unit\",\n        \"name\": \"Колонки отчета/Группы\"\n    }\n]\n\n</code></pre>\n<hr />\n<p>﻿<strong>Роль:</strong> Читатель и выше.</p>\n","urlObject":{"path":["api_v1","report_templates","excel_table_fields"],"host":["{{base_url}}"],"query":[{"key":"table_key","value":""}],"variable":[]}},"response":[],"_postman_id":"36f026ad-6140-4146-be2a-446220693564"},{"name":"/report_templates/excel_table_fields?table_id=:table_id","id":"824da988-e34b-44c6-b5f0-54733c29f61f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/report_templates/excel_table_fields?table_id=","description":"<p><strong>Получение возможных ссылок на значения для формулы в шаблоне эксель</strong></p>\n<hr />\n<p>table_id - id таблицы</p>\n<p>Возвращает все возможные поля в массиве:</p>\n<p>key - ключ колонки, текстовое поле</p>\n<p>name - имя колонки, текстовое поле</p>\n<p>has_sensor - true, если для этого столбца можно указать датчик.</p>\n<p>type - ключ категории</p>\n<p>type_name - имя категории</p>\n<hr />\n<p><strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>GET <a href=\"https://dev5.skif.pro/api_v1/report_templates/excel_table_fields?table_id=9653397d-bdd0-4183-9aeb-0c1d866e28f4\">https://dev5.skif.pro/api_v1/report_templates/excel_table_fields?table_id=9653397d-bdd0-4183-9aeb-0c1d866e28f4</a></p>\n<p>Ответ:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"key\": \"company.name\",\n        \"name\": \"Название компании\"\n    },\n    {\n        \"key\": \"unit.name\",\n        \"name\": \"Название объекта\"\n    },\n    {\n        \"key\": \"unit.type\",\n        \"name\": \"Тип объекта\"\n    },\n    {\n        \"key\": \"shift.start_time\",\n        \"name\": \"Запланированное время начала смена\"\n    },\n    {\n        \"key\": \"shift.end_time\",\n        \"name\": \"Запланированное время окончания смена\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_fillings_minfilling\",\n        \"name\": \"Доп. поля объекта/Мин. объем заправки\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_fillings_msgignorestart\",\n        \"name\": \"Доп. поля объекта/Игнор-ть сообщ-я после начала движения(с)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_fillings_minstaytheft\",\n        \"name\": \"Доп. поля объекта/Мин. время остановки для опр-ия слива(с)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_fillings_minitheft\",\n        \"name\": \"Доп. поля объекта/Мин. объем слива\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_consumption_summerconsump\",\n        \"name\": \"Доп. поля объекта/Расход летом (л/100км.)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_consumption_winterconsump\",\n        \"name\": \"Доп. поля объекта/Расход зимой (л/100км.)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_math_idlingsummer\",\n        \"name\": \"Доп. поля объекта/На холостом ходу летом (л./час.)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_math_idlingwinter\",\n        \"name\": \"Доп. поля объекта/На холостом ходу зимой (л./час.)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_math_coeffunderload\",\n        \"name\": \"Доп. поля объекта/Коэф. при движении под нагрузкой\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_consumption_winterfrom\",\n        \"name\": \"Доп. поля объекта/Первый месяц зимы (январь-1)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_consumption_winterto\",\n        \"name\": \"Доп. поля объекта/Последний месяц зимы (январь-1)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_price\",\n        \"name\": \"Доп. поля объекта/Стоимость (1 л.)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_type\",\n        \"name\": \"Доп. поля объекта/Вид топлива (бенз., д/т)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fuel_mark\",\n        \"name\": \"Доп. поля объекта/Марка горючего\"\n    },\n    {\n        \"key\": \"unit.custom_fields.fueler_distance\",\n        \"name\": \"Доп. поля объекта/Радиус приближения как Топливозаправщик(м)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.tripdetector_minparktime\",\n        \"name\": \"Доп. поля объекта/Мин. время стоянки (сек)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.advanced_mileagecoeff\",\n        \"name\": \"Доп. поля объекта/Коэф. пробега\"\n    },\n    {\n        \"key\": \"unit.custom_fields.tripdetector_minmovespeed\",\n        \"name\": \"Доп. поля объекта/Мин. скорость движ-я (км/ч)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.tripdetector_mintripdist\",\n        \"name\": \"Доп. поля объекта/Мин. расст-ие поездки (м)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.advanced_maxintervalmsg\",\n        \"name\": \"Доп. поля объекта/Макс. интервал между сообщ-ми (сек)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.tripdetector_maxdistancemsg\",\n        \"name\": \"Доп. поля объекта/Макс. расст-ие между сообщ-ми (м)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.tripdetector_mintriptime\",\n        \"name\": \"Доп. поля объекта/Мин. время поездки (сек)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.key_tripdetector_movedetect\",\n        \"name\": \"Доп. поля объекта/Опр-ие движ-я\"\n    },\n    {\n        \"key\": \"unit.custom_fields.tripdetector_mileagedetect\",\n        \"name\": \"Доп. поля объекта/Определение пробега\"\n    },\n    {\n        \"key\": \"unit.custom_fields.key_motohourdetector\",\n        \"name\": \"Доп. поля объекта/Определение моточасов\"\n    },\n    {\n        \"key\": \"unit.custom_fields.analyst\",\n        \"name\": \"Доп. поля объекта/Аналитик\"\n    },\n    {\n        \"key\": \"unit.custom_fields.installer\",\n        \"name\": \"Доп. поля объекта/Установщик\"\n    },\n    {\n        \"key\": \"unit.custom_fields.install_date\",\n        \"name\": \"Доп. поля объекта/Дата установки(формат год-месяц-день, например 2019-03-07)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.install_place\",\n        \"name\": \"Доп. поля объекта/Место установки в ТС\"\n    },\n    {\n        \"key\": \"unit.custom_fields.serial_number\",\n        \"name\": \"Доп. поля объекта/Серийный номер терминала\"\n    },\n    {\n        \"key\": \"unit.custom_fields.serial_number_dut\",\n        \"name\": \"Доп. поля объекта/Серийный номер ДУТ\"\n    },\n    {\n        \"key\": \"unit.custom_fields.dut_seal_serial_number\",\n        \"name\": \"Доп. поля объекта/Серийный номер пломбы ДУТ\"\n    },\n    {\n        \"key\": \"unit.custom_fields.license_plate_number\",\n        \"name\": \"Доп. поля объекта/Гос номер\"\n    },\n    {\n        \"key\": \"unit.custom_fields.hours_rate\",\n        \"name\": \"Доп. поля объекта/Норма часов в день\"\n    },\n    {\n        \"key\": \"unit.custom_fields.block_date\",\n        \"name\": \"Доп. поля объекта/Дата блокировки(формат год-месяц-день, например 2019-03-07)\"\n    },\n    {\n        \"key\": \"unit.custom_fields.kp\",\n        \"name\": \"Доп. поля объекта/КП\"\n    },\n    {\n        \"key\": \"unit.custom_fields.dut\",\n        \"name\": \"Доп. поля объекта/ДУТ\"\n    },\n    {\n        \"key\": \"unit.custom_fields.second_sim\",\n        \"name\": \"Доп. поля объекта/Вторая sim\"\n    },\n    {\n        \"key\": \"unit.custom_fields.serial_number_dut_1\",\n        \"name\": \"Доп. поля объекта/Серийный номер ДУТ 1\"\n    },\n    {\n        \"key\": \"unit.custom_fields.serial_number_dut_2\",\n        \"name\": \"Доп. поля объекта/Серийный номер ДУТ 2\"\n    },\n    {\n        \"key\": \"unit.custom_fields.brand_name\",\n        \"name\": \"Доп. поля объекта/Марка машины\"\n    },\n    {\n        \"key\": \"unit.custom_fields.brand_code\",\n        \"name\": \"Доп. поля объекта/Код марки\"\n    },\n    {\n        \"key\": \"unit.custom_fields.video_device_name\",\n        \"name\": \"Доп. поля объекта/Видео устройство\"\n    },\n    {\n        \"key\": \"unit.custom_fields.video_device_id\",\n        \"name\": \"Доп. поля объекта/ID-видео устройства\"\n    },\n    {\n        \"key\": \"unit.custom_fields.video_cameras\",\n        \"name\": \"Доп. поля объекта/Камеры\"\n    },\n    {\n        \"key\": \"unit.custom_fields.max_speed\",\n        \"name\": \"Доп. поля объекта/Максимальная скорость в сообщениях\"\n    },\n    {\n        \"key\": \"unit.custom_fields.min_satellites\",\n        \"name\": \"Доп. поля объекта/Минимальное количество спутников\"\n    },\n    {\n        \"key\": \"unit.custom_fields.max_hdop\",\n        \"name\": \"Доп. поля объекта/Максимальное значение dhop\"\n    },\n    {\n        \"key\": \"report.unit_name\",\n        \"name\": \"Колонки отчета/Имя\"\n    },\n    {\n        \"key\": \"report.first_datepoint\",\n        \"name\": \"Колонки отчета/Начало\"\n    },\n    {\n        \"key\": \"report.last_datepoint\",\n        \"name\": \"Колонки отчета/Конец\"\n    },\n    {\n        \"key\": \"report.sum_datepoint\",\n        \"name\": \"Колонки отчета/Длит-сть\"\n    },\n    {\n        \"key\": \"report.driver\",\n        \"name\": \"Колонки отчета/Водитель\"\n    },\n    {\n        \"key\": \"report.first_address\",\n        \"name\": \"Колонки отчета/Нач. адрес\"\n    },\n    {\n        \"key\": \"report.first_fillings\",\n        \"name\": \"Колонки отчета/Нач. знач. топл.\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.finish_fillings\",\n        \"name\": \"Колонки отчета/Кон. знач. топл.\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.last_address\",\n        \"name\": \"Колонки отчета/Кон. адрес\"\n    },\n    {\n        \"key\": \"report.sum_fillings_plan_in_moving\",\n        \"name\": \"Колонки отчета/Расход по нормам в движении\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.fuel_consumption_rates\",\n        \"name\": \"Колонки отчета/Расх. топл.(л\\\\100км)\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.avg_speedkph\",\n        \"name\": \"Колонки отчета/Ср-яя скор-ть\"\n    },\n    {\n        \"key\": \"report.sum_distance\",\n        \"name\": \"Колонки отчета/Пробег(км)\"\n    },\n    {\n        \"key\": \"report.drained_fillings\",\n        \"name\": \"Колонки отчета/Сливы топл.\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_fillings_absolute\",\n        \"name\": \"Колонки отчета/Расход по ДАРТ\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_distance_absolute\",\n        \"name\": \"Колонки отчета/Пробег по датчику\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_distance_absolute_error\",\n        \"name\": \"Колонки отчета/Погрешность пробега по датчику(%)\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_fillings\",\n        \"name\": \"Колонки отчета/Израсх-но топл.\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_fillings_instant\",\n        \"name\": \"Колонки отчета/Расход по ДМРТ\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_fillings_deviation\",\n        \"name\": \"Колонки отчета/Отклонение расхода\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_fillings_plan\",\n        \"name\": \"Колонки отчета/Расход по нормам\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_fillings_absolute_error\",\n        \"name\": \"Колонки отчета/Погрешность расхода по ДАРТ(%)\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.fuel_price_plan\",\n        \"name\": \"Колонки отчета/Затраты на топл. по нормам\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.fuel_price\",\n        \"name\": \"Колонки отчета/Затраты на топливо\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.fuel_consumption_rates_absolut\",\n        \"name\": \"Колонки отчета/Расх. топл. по ДАРТ(л\\\\100км)\"\n    },\n    {\n        \"key\": \"report.last_accumulate_sensor\",\n        \"name\": \"Колонки отчета/Кон. знач. Накоп. датч.\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.last_mileagecurr\",\n        \"name\": \"Колонки отчета/Пробег\"\n    },\n    {\n        \"key\": \"report.sum_accumulate_sensor\",\n        \"name\": \"Колонки отчета/Накоп. датч. (сум)\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.max_speedkph\",\n        \"name\": \"Колонки отчета/Макс. скор-ть\"\n    },\n    {\n        \"key\": \"report.sum_counter\",\n        \"name\": \"Колонки отчета/Счетчик (сум)\"\n    },\n    {\n        \"key\": \"report.count_point\",\n        \"name\": \"Колонки отчета/Кол-во сообщ-й\"\n    },\n    {\n        \"key\": \"report.first_accumulate_sensor\",\n        \"name\": \"Колонки отчета/Нач. знач. Накоп. датч.\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.max_temperature\",\n        \"name\": \"Колонки отчета/Макс. темп.\"\n    },\n    {\n        \"key\": \"report.min_temperature\",\n        \"name\": \"Колонки отчета/Мин. темп.\"\n    },\n    {\n        \"key\": \"report.avg_temperature\",\n        \"name\": \"Колонки отчета/Ср-я темп.\"\n    },\n    {\n        \"key\": \"report.last_stamp\",\n        \"name\": \"Колонки отчета/Время приема\"\n    },\n    {\n        \"key\": \"report.sharp_accel\",\n        \"name\": \"Колонки отчета/Резкое ускорение\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sharp_braking\",\n        \"name\": \"Колонки отчета/Резкое торможение\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sharp_turn\",\n        \"name\": \"Колонки отчета/Резкий поворот\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.jump\",\n        \"name\": \"Колонки отчета/Скачок\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.over_speed\",\n        \"name\": \"Колонки отчета/Превышение скорости\",\n        \"has_sensor\": true\n    },\n    {\n        \"key\": \"report.sum_distance_corrected\",\n        \"name\": \"Колонки отчета/Пробег (скоррект.)\"\n    },\n    {\n        \"key\": \"report.violation_score\",\n        \"name\": \"Колонки отчета/Балл нарушения\"\n    },\n    {\n        \"key\": \"report.trailer\",\n        \"name\": \"Колонки отчета/Прицеп\"\n    },\n    {\n        \"key\": \"report.work_types\",\n        \"name\": \"Колонки отчета/Вид работ\"\n    },\n    {\n        \"key\": \"report.groups_of_unit\",\n        \"name\": \"Колонки отчета/Группы\"\n    }\n]\n\n</code></pre>\n","urlObject":{"path":["api_v1","report_templates","excel_table_fields"],"host":["{{base_url}}"],"query":[{"key":"table_id","value":""}],"variable":[]}},"response":[],"_postman_id":"824da988-e34b-44c6-b5f0-54733c29f61f"},{"name":"/report_templates/report_templates/table_formula_check","id":"07b3e4a4-3faa-4d90-b5fc-2ab1ebb04bdc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"table_key\": \"trips\",\n    \"formula\": \"xyz\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/report_templates/table_formula_check","description":"<p><strong>Проверка формулы в колонке отчета</strong></p>\n<hr />\n<p>\"table_key\" - ключ таблицы, текстовое.<br />\"formula\" - формула, которую нужно проверить.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p>Возвращает 200, если формула валидная, иначе 422 с текстом ошибки</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"table_key\": \"trips\",\n    \"formula\": \"({report_columns.sum_fillings_plan} - {report_columns.sum_fillings}) * {custom_fields.fuel_price} / 1000.\"\n}\n\n</code></pre><p>Ответ 200:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"table_key\": \"trips\",\n    \"formula\": \"xyz\"\n}\n\n</code></pre><p>Ответ 422</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 4220,\n    \"field\": \"\",\n    \"message\": \"Неправильная формула в таблице \"Поездки\"\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","report_templates","table_formula_check"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"07b3e4a4-3faa-4d90-b5fc-2ab1ebb04bdc"},{"name":"/report_templates/table_validate","id":"fc1ce42c-73e5-41b3-bf6e-ab228134fab8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"Поездки\",\n    \"key\": \"trips\",\n    \"show_itog\": \"true\",\n    \"time_group\": \"week\",\n    \"column_group\": \"\",\n    \"template_computable_columns\": [\n        {\n            \"name\": \"Тестовая колонка\",\n            \"value\": \"(1000 - {report_columns.sum_fillings}) * {computable_columns.Тестовая колонка2}\"\n        },\n        {\n            \"name\": \"Тестовая колонка2\",\n            \"value\": \"(300 + {report_columns.sum_fillings}) * {computable_columns.Тестовая колонка3}\"\n        },\n        {\n            \"name\": \"Тестовая колонка3\",\n            \"value\": \"(1000 - {report_columns.sum_fillings}) * {computable_columns.Тестовая колонка}\"\n        }\n    ],\n    \"template_columns\": [\n        {\n            \"name\": \"translate.reports.default_template.columns._unit_id\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"1\",\n            \"key\": \"_unit_id\",\n            \"is_visible\": \"false\",\n            \"type\": \"string\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.unit_name\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"2\",\n            \"key\": \"unit_name\",\n            \"is_visible\": \"true\",\n            \"type\": \"string\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.first_datepoint\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"3\",\n            \"key\": \"first_datepoint\",\n            \"is_visible\": \"true\",\n            \"type\": \"date\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.last_datepoint\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"4\",\n            \"key\": \"last_datepoint\",\n            \"is_visible\": \"true\",\n            \"type\": \"date\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.count_point\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"5\",\n            \"key\": \"count_point\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_distance\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"6\",\n            \"key\": \"sum_distance\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"trips\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.avg_speedkph\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"7\",\n            \"key\": \"avg_speedkph\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"trips\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.drained_fillings\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"100000\",\n            \"use_filter\": null,\n            \"sort\": \"7\",\n            \"key\": \"drained_fillings\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.stucked_fillings\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"100000\",\n            \"use_filter\": null,\n            \"sort\": \"7\",\n            \"key\": \"stucked_fillings\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings_idling_plan\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_fillings_idling_plan\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings_idling\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_fillings_idling\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings_plan\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_fillings_plan\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_fillings\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_distance_absolute_error\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_distance_absolute_error\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"trips\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_distance_absolute\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_distance_absolute\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"trips\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.max_speedkph\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"max_speedkph\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"trips\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings_idling_deviation\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_fillings_idling_deviation\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.fuel_price_plan\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"fuel_price_plan\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.fuel_price\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"fuel_price\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings_absolute\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_fillings_absolute\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings_instant\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_fillings_instant\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings_deviation\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_fillings_deviation\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings_absolute_error\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"9\",\n            \"key\": \"sum_fillings_absolute_error\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.first_fillings\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"9\",\n            \"key\": \"first_fillings\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.finish_fillings\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"10\",\n            \"key\": \"finish_fillings\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.fuel_consumption_rates\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"11\",\n            \"key\": \"fuel_consumption_rates\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.motohours\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"12\",\n            \"key\": \"motohours\",\n            \"is_visible\": \"true\",\n            \"type\": \"string\",\n            \"meta\": \"motohour\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.motohour_idling\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"12\",\n            \"key\": \"motohour_idling\",\n            \"is_visible\": \"true\",\n            \"type\": \"string\",\n            \"meta\": \"motohour\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.fuel_consumption_rates_absolut\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"12\",\n            \"key\": \"fuel_consumption_rates_absolut\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.motohour_moving\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"13\",\n            \"key\": \"motohour_moving\",\n            \"is_visible\": \"true\",\n            \"type\": \"string\",\n            \"meta\": \"motohour\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.driver\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"2000\",\n            \"key\": \"driver\",\n            \"is_visible\": \"true\",\n            \"type\": \"string\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.trailer\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"2100\",\n            \"key\": \"trailer\",\n            \"is_visible\": \"true\",\n            \"type\": \"string\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.work_types\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"2200\",\n            \"key\": \"work_types\",\n            \"is_visible\": \"true\",\n            \"type\": \"string\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.groups_of_unit\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"3000\",\n            \"key\": \"groups_of_unit\",\n            \"is_visible\": \"true\",\n            \"type\": \"string\",\n            \"meta\": \"total\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/report_templates/table_validate","description":"<p><strong>Валидация отдельной таблицы</strong></p>\n<hr />\n<p>В теле запроса указать все поля таблицы.<br />Возвращает 200, если формула валидная, иначе 422 с текстом ошибки.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"name\": \"Поездки\",\n    \"key\": \"trips\",\n    \"show_itog\": \"true\",\n    \"time_group\": \"week\",\n    \"column_group\": \"\",\n    \"template_sensors\": [{\n        \"sensor_type\": {\n            \"key\": \"fuelsensor\"\n        },\n        \"name_mask\": \"топлива\",\n        \"column_name\": \"Начала топл\",\n        \"sensor_value\": {\n            \"key\": \"template_sensor_first_value\"\n        }\n    }, {\n        \"sensor_type\": {\n            \"key\": \"ignition\"\n        },\n        \"name_mask\": \"Зажи1\",\n        \"sensor_value\": {\n            \"key\": \"template_sensor_last_value\"\n        }\n    }],\n    \"template_computable_columns\": [{\n        \"name\": \"Тип / марка машины\",\n        \"value\": \"{custom_fields.brand_name}\"\n    }, {\n        \"name\": \"Расход по показаниям системы  SKIF APP, л.\",\n        \"value\": \"{report_columns.sum_fillings}\"\n    }, {\n        \"name\": \"Расход по базовой норме, л.\",\n        \"value\": \"{report_columns.sum_fillings_plan}\"\n    }, {\n        \"name\": \"Экономия, л.\",\n        \"value\": \"{report_columns.sum_fillings_plan} - {report_columns.sum_fillings}\"\n    }, {\n        \"name\": \"% экономии от SKIF APP\",\n        \"value\": \"{report_columns.sum_fillings_plan} / {report_columns.sum_fillings} * 100 - 100\"\n    }, {\n        \"name\": \"Экономия в тыс.тг.\",\n        \"value\": \"({report_columns.sum_fillings_plan} - {report_columns.sum_fillings}) * {custom_fields.fuel_price} / 1000.\"\n    }, {\n        \"name\": \"Тестовая колонка\",\n        \"value\": \"({sensors.Начала топл} - {report_columns.sum_fillings}) * {computable_columns.Экономия в тыс.тг.}\"\n    }],\n    \"template_columns\": [{\n        \"name\": \"translate.reports.default_template.columns._unit_id\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"1\",\n        \"key\": \"_unit_id\",\n        \"is_visible\": \"false\",\n        \"type\": \"string\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.unit_name\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"2\",\n        \"key\": \"unit_name\",\n        \"is_visible\": \"true\",\n        \"type\": \"string\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.first_datepoint\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"3\",\n        \"key\": \"first_datepoint\",\n        \"is_visible\": \"true\",\n        \"type\": \"date\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.last_datepoint\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"4\",\n        \"key\": \"last_datepoint\",\n        \"is_visible\": \"true\",\n        \"type\": \"date\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.count_point\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"5\",\n        \"key\": \"count_point\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.sum_distance\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"6\",\n        \"key\": \"sum_distance\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"trips\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.stucked_fillings\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"100000\",\n        \"use_filter\": null,\n        \"sort\": \"7\",\n        \"key\": \"stucked_fillings\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.drained_fillings\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"100000\",\n        \"use_filter\": null,\n        \"sort\": \"7\",\n        \"key\": \"drained_fillings\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.avg_speedkph\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"7\",\n        \"key\": \"avg_speedkph\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"trips\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.sum_fillings_deviation\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"8\",\n        \"key\": \"sum_fillings_deviation\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.sum_fillings_plan\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"8\",\n        \"key\": \"sum_fillings_plan\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.sum_fillings_idling\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"8\",\n        \"key\": \"sum_fillings_idling\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.sum_fillings_idling_plan\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"8\",\n        \"key\": \"sum_fillings_idling_plan\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.sum_fillings_absolute\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"8\",\n        \"key\": \"sum_fillings_absolute\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.sum_fillings\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"8\",\n        \"key\": \"sum_fillings\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.sum_fillings_instant\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"8\",\n        \"key\": \"sum_fillings_instant\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.sum_distance_absolute_error\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"8\",\n        \"key\": \"sum_distance_absolute_error\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"trips\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.sum_distance_absolute\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"8\",\n        \"key\": \"sum_distance_absolute\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"trips\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.max_speedkph\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"8\",\n        \"key\": \"max_speedkph\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"trips\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.sum_fillings_idling_deviation\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"8\",\n        \"key\": \"sum_fillings_idling_deviation\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.fuel_price_plan\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"8\",\n        \"key\": \"fuel_price_plan\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.fuel_price\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"8\",\n        \"key\": \"fuel_price\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.sum_fillings_absolute_error\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"9\",\n        \"key\": \"sum_fillings_absolute_error\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.first_fillings\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"9\",\n        \"key\": \"first_fillings\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.finish_fillings\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"10\",\n        \"key\": \"finish_fillings\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.fuel_consumption_rates\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"11\",\n        \"key\": \"fuel_consumption_rates\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.fuel_consumption_rates_absolut\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"12\",\n        \"key\": \"fuel_consumption_rates_absolut\",\n        \"is_visible\": \"true\",\n        \"type\": \"number\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.motohour_idling\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"12\",\n        \"key\": \"motohour_idling\",\n        \"is_visible\": \"true\",\n        \"type\": \"string\",\n        \"meta\": \"motohour\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.motohours\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"12\",\n        \"key\": \"motohours\",\n        \"is_visible\": \"true\",\n        \"type\": \"string\",\n        \"meta\": \"motohour\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.motohour_moving\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"13\",\n        \"key\": \"motohour_moving\",\n        \"is_visible\": \"true\",\n        \"type\": \"string\",\n        \"meta\": \"motohour\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.driver\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"2000\",\n        \"key\": \"driver\",\n        \"is_visible\": \"true\",\n        \"type\": \"string\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.trailer\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"2100\",\n        \"key\": \"trailer\",\n        \"is_visible\": \"true\",\n        \"type\": \"string\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.work_types\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"2200\",\n        \"key\": \"work_types\",\n        \"is_visible\": \"true\",\n        \"type\": \"string\",\n        \"meta\": \"total\"\n    }, {\n        \"name\": \"translate.reports.default_template.columns.groups_of_unit\",\n        \"filter_min\": \"0\",\n        \"filter_max\": \"1000\",\n        \"use_filter\": null,\n        \"sort\": \"3000\",\n        \"key\": \"groups_of_unit\",\n        \"is_visible\": \"true\",\n        \"type\": \"string\",\n        \"meta\": \"total\"\n    }]\n}\n\n</code></pre><hr />\n<p><strong>Ответ 200</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"name\": \"Поездки\",\n    \"key\": \"trips\",\n    \"show_itog\": \"true\",\n    \"time_group\": \"week\",\n    \"column_group\": \"\",\n    \"template_computable_columns\": [\n        {\n            \"name\": \"Тестовая колонка\",\n            \"value\": \"(1000 - {report_columns.sum_fillings}) * {computable_columns.Тестовая колонка2}\"\n        },\n        {\n            \"name\": \"Тестовая колонка2\",\n            \"value\": \"(300 + {report_columns.sum_fillings}) * {computable_columns.Тестовая колонка3}\"\n        },\n        {\n            \"name\": \"Тестовая колонка3\",\n            \"value\": \"(1000 - {report_columns.sum_fillings}) * {computable_columns.Тестовая колонка}\"\n        }\n    ],\n    \"template_columns\": [\n        {\n            \"name\": \"translate.reports.default_template.columns._unit_id\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"1\",\n            \"key\": \"_unit_id\",\n            \"is_visible\": \"false\",\n            \"type\": \"string\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.unit_name\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"2\",\n            \"key\": \"unit_name\",\n            \"is_visible\": \"true\",\n            \"type\": \"string\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.first_datepoint\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"3\",\n            \"key\": \"first_datepoint\",\n            \"is_visible\": \"true\",\n            \"type\": \"date\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.last_datepoint\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"4\",\n            \"key\": \"last_datepoint\",\n            \"is_visible\": \"true\",\n            \"type\": \"date\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.count_point\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"5\",\n            \"key\": \"count_point\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_distance\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"6\",\n            \"key\": \"sum_distance\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"trips\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.avg_speedkph\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"7\",\n            \"key\": \"avg_speedkph\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"trips\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.drained_fillings\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"100000\",\n            \"use_filter\": null,\n            \"sort\": \"7\",\n            \"key\": \"drained_fillings\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.stucked_fillings\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"100000\",\n            \"use_filter\": null,\n            \"sort\": \"7\",\n            \"key\": \"stucked_fillings\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings_idling_plan\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_fillings_idling_plan\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings_idling\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_fillings_idling\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings_plan\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_fillings_plan\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_fillings\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_distance_absolute_error\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_distance_absolute_error\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"trips\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_distance_absolute\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_distance_absolute\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"trips\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.max_speedkph\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"max_speedkph\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"trips\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings_idling_deviation\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_fillings_idling_deviation\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.fuel_price_plan\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"fuel_price_plan\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.fuel_price\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"fuel_price\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings_absolute\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_fillings_absolute\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings_instant\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_fillings_instant\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings_deviation\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"8\",\n            \"key\": \"sum_fillings_deviation\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.sum_fillings_absolute_error\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"9\",\n            \"key\": \"sum_fillings_absolute_error\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.first_fillings\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"9\",\n            \"key\": \"first_fillings\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.finish_fillings\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"10\",\n            \"key\": \"finish_fillings\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.fuel_consumption_rates\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"11\",\n            \"key\": \"fuel_consumption_rates\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.motohours\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"12\",\n            \"key\": \"motohours\",\n            \"is_visible\": \"true\",\n            \"type\": \"string\",\n            \"meta\": \"motohour\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.motohour_idling\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"12\",\n            \"key\": \"motohour_idling\",\n            \"is_visible\": \"true\",\n            \"type\": \"string\",\n            \"meta\": \"motohour\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.fuel_consumption_rates_absolut\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"12\",\n            \"key\": \"fuel_consumption_rates_absolut\",\n            \"is_visible\": \"true\",\n            \"type\": \"number\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.motohour_moving\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"13\",\n            \"key\": \"motohour_moving\",\n            \"is_visible\": \"true\",\n            \"type\": \"string\",\n            \"meta\": \"motohour\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.driver\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"2000\",\n            \"key\": \"driver\",\n            \"is_visible\": \"true\",\n            \"type\": \"string\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.trailer\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"2100\",\n            \"key\": \"trailer\",\n            \"is_visible\": \"true\",\n            \"type\": \"string\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.work_types\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"2200\",\n            \"key\": \"work_types\",\n            \"is_visible\": \"true\",\n            \"type\": \"string\",\n            \"meta\": \"total\"\n        },\n        {\n            \"name\": \"translate.reports.default_template.columns.groups_of_unit\",\n            \"filter_min\": \"0\",\n            \"filter_max\": \"1000\",\n            \"use_filter\": null,\n            \"sort\": \"3000\",\n            \"key\": \"groups_of_unit\",\n            \"is_visible\": \"true\",\n            \"type\": \"string\",\n            \"meta\": \"total\"\n        }\n    ]\n}\n\n</code></pre><p><strong>Ответ 422</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"errors\": [\n    {\n      \"code\": 4221,\n      \"field\": \"\",\n      \"message\": \"В дополнительных колонок таблицы Поездки есть циклические зависимости: Тестовая колонка-&gt;Тестовая колонка2-&gt;Тестовая колонка3-&gt;Тестовая колонка\"\n    }\n  ],\n  \"code\": 4220,\n  \"message\": \"В дополнительных колонок таблицы Поездки есть циклические зависимости: Тестовая колонка-&gt;Тестовая колонка2-&gt;Тестовая колонка3-&gt;Тестовая колонка\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","report_templates","table_validate"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"fc1ce42c-73e5-41b3-bf6e-ab228134fab8"},{"name":"/report_templates/:template_id","id":"5d6e0fab-83c7-4d6a-a373-2045b3022511","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/report_templates/:template_id","description":"<p><strong>Удаление шаблона</strong></p>\n<hr />\n<p>Удаление физическое. При успехе - ответ 200</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","report_templates",":template_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID шаблона</p>\n","type":"text/plain"},"type":"any","value":"","key":"template_id"}]}},"response":[],"_postman_id":"5d6e0fab-83c7-4d6a-a373-2045b3022511"},{"name":"/report_templates?ids=:ids","id":"96236b64-7e74-41cf-9b97-34c7f8e0f423","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/report_templates?ids=","description":"<p><strong>Планирование удаление шаблона отчетов</strong></p>\n<hr />\n<p>см. DELETE /units?ids=:ids</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","report_templates"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"96236b64-7e74-41cf-9b97-34c7f8e0f423"},{"name":"/report_templates","id":"cf249ff2-3a1a-4260-8c1c-da0d0e321b77","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/report_templates","description":"<p><strong>Планирование удаления шаблона отчетов</strong></p>\n<hr />\n<p>см. DELETE /units</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","report_templates"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"cf249ff2-3a1a-4260-8c1c-da0d0e321b77"},{"name":"/report_templates/:template_id","id":"3b64cc3f-1a1b-47ef-9408-ba3720e954b7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"{{base_url}}/api_v1/report_templates/:template_id","description":"<p><strong>Создает свой шаблон отчетов</strong></p>\n<hr />\n<p>По правилам, таблица шаблона должна строится на основании дефолтного шаблона таблиц, т.е. путем копирования полей дефолтного шаблона и заполнения их пользовательскими значениями<br />(кроме поля 'key').</p>\n<p><strong>Запрос для создания пустого шаблона:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\"name\": \"Имя_шаблона\", \"template_tables\": []}\n\n</code></pre><hr />\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[{\n    \"id\": \"27aaa1b1-0510-4b7b-b020-99837f5621f0\", //id шаблона\n    \"name\": \"шаблон2\",  //имя\n    \"template_tables\": [{\n        \"id\": \"d3134efa-9e9f-4be1-9459-1ded125ea73a\", //id таблицы\n        \"id_template\": \"27aaa1b1-0510-4b7b-b020-99837f5621f0\",  //id родительского шаблона\n        \"name\": \"Уведомления\", //имя таблицы\n        \"attachments\": [{\n           \"id\": \"80a201ea-67e5-4cd9-aea5-591128d2855a\", //его id\n           \"created\": \"2017-11-16 23:41:44\", //дата создания\n           \"name\": \"test.doc\", //переданное название файла\n           \"url\": \"/attachments/80a201ea-67e5-4cd9-aea5-591128d2855a.doc\" //путь, по которому доступен файл\n        }], //вложения\n        \"key\": \"notifications\", //ключ таблицы (берется из справочников по типу 'report_template_table_type') ------ НЕИЗМЕНЯЕМОЕ ПОЛЕ --------\n        \"geozones\": [{ // список выбранных геозон\n            \"id\": \"d3134efa-9e9f-4be1-9459-1ded125ea73a\"\n            // --------------- полный перечень полей геозоны ---------------------\n        }],\n        \"template_sensors\": [{\n            \"id\": \"8f05e497-bddc-4b6a-bedb-e1c6ab5b55f0\",\n            \"sensor_type\": { // тип датчика, справочник типа sensor_type\n                \"key\": \"digital_sensors\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик\"\n            },\n            \"sensor_value\": { //значение датчика, справочник типа template_sensor_value_type\n                \"key\": \"template_sensor_first_value\",\n                \"type\": \"template_sensor_value_type\",\n                \"value\": \"Начальное значение\"\n            },\n            \"name_mask\": \"Пробег\" //string, маска по имени\n        }, {\n            \"id\": \"91100c04-9ca6-48b1-9201-715713d023cc\",\n            \"sensor_type\": {\n                \"key\": \"digital_sensors\",\n                \"type\": \"sensor_type\",\n                \"value\": \"Датчик\"\n            },\n            \"sensor_value\": {\n                \"key\": \"template_sensor_last_value\",\n                \"type\": \"template_sensor_value_type\",\n                \"value\": \"Конечное значение\"\n            },\n            \"name_mask\": \"Пробег\"\n        }],\n        \"show_itog\": true, //показывать ли итог в таблице отчета\n        \"time_group\": \"nogrouping\", //временная группировка. Возможные значения: Без групперовки, По дням, По неделям, По месяцам (берется из справочников по типу 'report_template_table_type')\n        \"column_group\": \"name\", // ключ колонки, по которой происходит группировка\n        \"template_columns\": [{ //колонки таблицы отчета, первоначально колонки берутся из справочника (для каждой таблицы предустановлены колонки) ------ НЕИЗМЕНЯЕМОЕ КОЛИЧЕСТО КОЛОНОК --------\n            \"id\": \"27aaa1b1-0510-4b7b-b020-99837f5621f0\",\n            \"name\": \"Имя\", //имя колонки\n            \"filter_min\": 0, //фильтрация строк по минимальному значению\n            \"filter_max\": 1000, //фильтрация строк по максимльному значению\n            \"sort\": 0, //порядок колонки в отчете\n            \"key\": \"name\", //ключ колонки   ------ НЕИЗМЕНЯЕМОЕ ПОЛЕ --------\n            \"is_visible\": true //видима ли колонка в отчете \n        }]\n    }]\n}]\n\n</code></pre>","urlObject":{"path":["api_v1","report_templates",":template_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID шаблона</p>\n","type":"text/plain"},"type":"any","value":"","key":"template_id"}]}},"response":[],"_postman_id":"3b64cc3f-1a1b-47ef-9408-ba3720e954b7"},{"name":"/report_templates/time_groups?table_key=<table_key>","id":"5fa2fcec-ba5f-4763-a302-d02e8e19fc04","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/report_templates/time_groups?table_key=","description":"<p><strong>Получение списка группировок для таблицы отчета</strong></p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p><a href=\"https://dev5.skif.pro/api_v1/report_templates/time_groups?table_key=trips\">https://dev5.skif.pro/api_v1/report_templates/time_groups?table_key=trips</a></p>\n<p>Возвращается массив, каждый элемент которого имеет поля key и name.</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n  {\n    \"key\": \"day\",\n    \"name\": \"По дням\"\n  },\n  {\n    \"key\": \"week\",\n    \"name\": \"По неделям\"\n  },\n  {\n    \"key\": \"month\",\n    \"name\": \"По месяцам\"\n  },\n  {\n    \"key\": \"unit\",\n    \"name\": \"По объектам\"\n  },\n  {\n    \"key\": \"driver\",\n    \"name\": \"По водителям\"\n  },\n  {\n    \"key\": \"shift\",\n    \"name\": \"По сменам\"\n  }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","report_templates","time_groups"],"host":["{{base_url}}"],"query":[{"key":"table_key","value":""}],"variable":[]}},"response":[],"_postman_id":"5fa2fcec-ba5f-4763-a302-d02e8e19fc04"},{"name":"/report_templates/reorder","id":"3c45b981-2570-43c4-8721-52c50e51ad54","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"order\": [\n        \"9f91f39f-dc51-48f5-be2f-0d331b81a486\",\n        \"d98b5767-0676-447a-8e38-d85c7b2599b6\",\n        \"07f94639-d051-4dea-a4a4-7d6b2eb02441\",\n        \"b2f61ae3-28fc-4482-bd18-e02866720cf6\",\n        \"3ea6e26a-105a-48c9-882c-c24656abe10a\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/report_templates/reorder","description":"<p><strong>Изменение порядка шаблонов отчетов</strong></p>\n<hr />\n<p>В теле запроса в поле order необходимо отправить идентификаторы шаблонов (поле id) в желаемом порядке.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>PATCH <a href=\"https://dev5.skif.pro/api_v1/report_templates/time_groups?table_key=trips\">https://dev5.skif.pro/api_v1/report_templates/reorder</a></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"order\": [\n        \"9341dc4e-e7f1-4695-b166-5c84dce2a199\",\n        \"2f25afc4-42e5-40bc-b6c4-4f41c6ff3b5a\",\n        \"a53a0781-7064-4a50-a190-432bf0e8338c\",\n        \"13fb2731-4a0f-427d-af66-b16107d1d936\"\n    ]\n}\n\n</code></pre><hr />\n<p>Возвращает ответ 200 без тела в случае успеха или ошибку с текстом.</p>\n","urlObject":{"path":["api_v1","report_templates","reorder"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3c45b981-2570-43c4-8721-52c50e51ad54"}],"id":"2ac40dae-8a76-45b8-951d-94186dec5ce9","_postman_id":"2ac40dae-8a76-45b8-951d-94186dec5ce9","description":""},{"name":"Треки","item":[{"name":"/fasttracks","id":"21209019-96de-43ef-a994-a93e31fe98ad","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"zoom\": 14,\n\t\"units\": [{\n\t\t\"id\": \"350d511c-ed5f-424f-91f2-2b9259271ba6\"\n\t}],\n\t\"from\": \"2021-05-03 00:00:00\",\n\t\"to\": \"2021-05-24 00:00:00\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/fasttracks","description":"<p><strong>Запрос на получение трека юнита</strong></p>\n<hr />\n<p>Запрос состоит из 4 параметров.</p>\n<p>units - id объекта, берется всегда ПЕРВЫЙ объект, передавать несколько объектов не имеет смысла.</p>\n<p>from - начало периода</p>\n<p>to - конец периода</p>\n<p>zoom - зумирование трека. Чем выше значение, тем больше точек будет пропущено (исключено из выборки) и тем менее точным будет сам трек. По сути, это площадь вокруг текущей точки. Будет отрисована та следующая точка, которая не попадёт в эту площадь, т.е. некий шаг пропуска.</p>\n<p>Весь трек состоит из суб-треков, так называемых отрезков, которые в свою очередь состоят из конкретных точек, в которых содержится информация о состоянии объекта в конкретный момент времени.</p>\n<hr />\n<p>Ответ имеет две колонки: columns и values.</p>\n<p>process_id - уникальный идентификатор для выделение трека в области карты.</p>\n<p>Columns - это набор полей объекта. Данная колонка всегда статична, поэтому индекс поля в этой колонке всегда равен индексу поля в конкретных точках (т.е. Если longitude в Columns имеет индекс 2, то в каждой точке мы найдем конкретное значение для longitude под индексом 2).</p>\n<hr />\n<p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"columns\": [\n      {\n        \"key\": \"datepoint\",\n        \"value\": \"Дата\"\n      },\n      {\n        \"key\": \"longitude\",\n        \"value\": \"Широта\"\n      },\n      {\n        \"key\": \"latitude\",\n        \"value\": \"Долгота\"\n      },\n      {\n        \"key\": \"speed\",\n        \"value\": \"Скорость\"\n      },\n      {\n        \"key\": \"angle\",\n        \"value\": \"Угол\"\n      },\n      {\n        \"key\": \"distance\",\n        \"value\": \"Дистанция\"\n      }\n    ],\n    \"values\": [\n      {\n        \"style\": \"style_0\",\n        \"points\": [\n          [\n            1578131434,\n            63.5339,\n            53.1475,\n            0,\n            101,\n            0\n          ],\n          [\n            1578198784,\n            63.5347,\n            53.1472,\n            0,\n            159,\n            62.35\n          ],\n          [\n            1578198974,\n            63.5337,\n            53.1464,\n            17,\n            160,\n            118.67\n          ]\n        ]\n      },\n      {\n        \"style\": \"style_40\",\n        \"points\": [\n          [\n            1578198974,\n            63.5337,\n            53.1464,\n            17,\n            160,\n            1682.05\n          ],\n          [\n            1578199107,\n            63.5548,\n            53.1381,\n            51,\n            132,\n            1682.05\n          ]\n        ]\n      },\n      {\n        \"style\": \"style_0\",\n        \"points\": [\n          [\n            1578199107,\n            63.5548,\n            53.1381,\n            51,\n            132,\n            742.77\n          ],\n          [\n            1578199192,\n            63.5659,\n            53.1379,\n            39,\n            11,\n            742.77\n          ]\n        ]\n      },\n      {\n        \"style\": \"style_40\",\n        \"points\": [\n          [\n            1578199192,\n            63.5659,\n            53.1379,\n            39,\n            11,\n            1800.23\n          ],\n          [\n            1578199320,\n            63.5797,\n            53.1518,\n            43,\n            30,\n            1800.23\n          ],\n          [\n            1578199513,\n            63.5941,\n            53.1667,\n            51,\n            25,\n            1921.08\n          ]\n        ]\n      }\n\n</code></pre>","urlObject":{"path":["api_v1","fasttracks"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"21209019-96de-43ef-a994-a93e31fe98ad"},{"name":"/box_tracks","id":"acf39e93-f68e-4281-876f-1a3315690fb0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"process_id\": \"fed93e82-6c86-4cfd-bcf2-637bd3dfecaa\",\n    \"box\": [\n       55.775519, 37.934139, 55.956245, 38.342490\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/box_tracks","description":"<p><strong>Запрос на получение трека в прямоугольной области карты</strong></p>\n<hr />\n<p>Запрос состоит из 2 параметров:</p>\n<p>process_id - уникальный идентификатор, полученный в ответе на запрос /fasttracks .</p>\n<p>box - массив [latitude1, longitude1, latitude2, longitude2].</p>\n<p>latitude1, longitude1 - координаты нижнего левого угла прямоугольника.</p>\n<p>latitude2, longitude2 - координаты верхного правого угла прямоугольника.</p>\n<p>zoom - зумирование .</p>\n<p>Ответ имеет такую же структуру, как в запросе POST /fasttracks.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"process_id\": \"fed93e82-6c86-4cfd-bcf2-637bd3dfecaa\",\n    \"box\": [\n       55.775519, 37.934139, 55.956245, 38.342490\n    ],\n    \"zoom\": 18\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"columns\": [\n      {\n        \"key\": \"datepoint\",\n        \"value\": \"Дата\"\n      },\n      {\n        \"key\": \"longitude\",\n        \"value\": \"Широта\"\n      },\n      {\n        \"key\": \"latitude\",\n        \"value\": \"Долгота\"\n      },\n      {\n        \"key\": \"speed\",\n        \"value\": \"Скорость\"\n      },\n      {\n        \"key\": \"angle\",\n        \"value\": \"Угол\"\n      },\n      {\n        \"key\": \"distance\",\n        \"value\": \"Дистанция\"\n      }\n    ],\n    \"values\": [\n      {\n        \"style\": \"style_0\",\n        \"points\": [\n          [\n            1578131434,\n            63.5339,\n            53.1475,\n            0,\n            101,\n            0\n          ],\n          [\n            1578198784,\n            63.5347,\n            53.1472,\n            0,\n            159,\n            62.35\n          ],\n          [\n            1578198974,\n            63.5337,\n            53.1464,\n            17,\n            160,\n            118.67\n          ]\n        ]\n      },\n      {\n        \"style\": \"style_40\",\n        \"points\": [\n          [\n            1578198974,\n            63.5337,\n            53.1464,\n            17,\n            160,\n            1682.05\n          ],\n          [\n            1578199107,\n            63.5548,\n            53.1381,\n            51,\n            132,\n            1682.05\n          ]\n        ]\n      },\n      {\n        \"style\": \"style_0\",\n        \"points\": [\n          [\n            1578199107,\n            63.5548,\n            53.1381,\n            51,\n            132,\n            742.77\n          ],\n          [\n            1578199192,\n            63.5659,\n            53.1379,\n            39,\n            11,\n            742.77\n          ]\n        ]\n      },\n      {\n        \"style\": \"style_40\",\n        \"points\": [\n          [\n            1578199192,\n            63.5659,\n            53.1379,\n            39,\n            11,\n            1800.23\n          ],\n          [\n            1578199320,\n            63.5797,\n            53.1518,\n            43,\n            30,\n            1800.23\n          ],\n          [\n            1578199513,\n            63.5941,\n            53.1667,\n            51,\n            25,\n            1921.08\n          ]\n        ]\n      }\n\n</code></pre>","urlObject":{"path":["api_v1","box_tracks"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"acf39e93-f68e-4281-876f-1a3315690fb0"},{"name":"/fasttracks_group","id":"bc85b3a5-4f04-413c-9854-03c721e65216","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"zoom\": 14,\n\t\"groups\": [{\n\t\t\"id\": \"211bf822-d861-4d39-9413-bdcf2da3bd3f\"\n\t}],\n\t\"from\": \"2021-05-01 00:00:00\",\n\t\"to\": \"2021-05-31 00:00:00\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/fasttracks_group","description":"<p><strong>Запрос на получение трека юнита</strong></p>\n<hr />\n<p>Запрос состоит из 4 параметров:</p>\n<p>Если нужен трек для несколько объектов, то необходимо передать ID объектов в units : \"units\": [{\"id\": \"c4e945a2-eb38-448c-b843-c2a5c72f55eb\"}, {\"id\", \"992806ef-ed56-492f-9787-3963f1db53fa\"}, ...]</p>\n<p>Если нужен трек для группы объектов, то необходимо передать groups: \"groups\": [{\"id\": \"7e58cc3c-2ce3-4597-80da-ed63e5d64c8a\"}]</p>\n<p>from - начало периода</p>\n<p>to - конец периода</p>\n<p>zoom - зумирование трека. Чем выше значение, тем больше точек будет пропущено (исключено из выборки) и тем менее точным будет сам трек. По сути, это площадь вокруг текущей точки. Будет отрисована та следующая точка, которая не попадёт в эту площадь, т.е. некий шаг пропуска.</p>\n<p>Весь трек состоит из суб-треков, так называемых отрезков, которые в свою очередь состоят из конкретных точек, в которых содержится информация о состоянии объекта в конкретный момент времени.</p>\n<hr />\n<p>Ответ имеет массив результатов.<br />Каждый эдемент массива:<br />unit_id, unit_name, color, columns и values.</p>\n<p>unit_id - ID объекта,<br />unit_name - имя объекта,<br />color - цвет трека<br />Columns - это набор полей объекта. Данная колонка всегда статична, поэтому индекс поля в этой колонке всегда равен индексу поля в конкретных точках (т.е. если longitude в Columns имеет индекс 2, то в каждой точке мы найдем конкретное значение для longitude под индексом 2).</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{  \n    'units': [{'id': '712ceae4-f112-4714-9a4d-afe141e47bf7'}, {'id': 'fc0a7f07-f04f-42de-8b77-9d0625a163c4'}],\n    'from': '2020-01-01 00:00:00',\n    'to': '2020-01-30 00:00:00',\n    'zoom': 1000 \n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n{\n    \"unit_id\": \"712ceae4-f112-4714-9a4d-afe141e47bf7\",\n    \"unit_name\": \"unit1\",\n    \"color\": \"#641e16\",\n    \"columns\": [\n      {\n        \"key\": \"datepoint\",\n        \"value\": \"Дата\"\n      },\n      {\n        \"key\": \"longitude\",\n        \"value\": \"Широта\"\n      },\n      {\n        \"key\": \"latitude\",\n        \"value\": \"Долгота\"\n      },\n      {\n        \"key\": \"speed\",\n        \"value\": \"Скорость\"\n      },\n      {\n        \"key\": \"angle\",\n        \"value\": \"Угол\"\n      },\n      {\n        \"key\": \"distance\",\n        \"value\": \"Дистанция\"\n      }\n    ],\n    \"values\": [\n      {\n        \"style\": \"style_0\",\n        \"points\": [\n          [\n            1578131434,\n            63.5339,\n            53.1475,\n            0,\n            101,\n            0\n          ],\n          [\n            1578198784,\n            63.5347,\n            53.1472,\n            0,\n            159,\n            62.35\n          ],\n          [\n            1578198974,\n            63.5337,\n            53.1464,\n            17,\n            160,\n            118.67\n          ]\n        ]\n      },\n      {\n        \"style\": \"style_40\",\n        \"points\": [\n          [\n            1578198974,\n            63.5337,\n            53.1464,\n            17,\n            160,\n            1682.05\n          ],\n          [\n            1578199107,\n            63.5548,\n            53.1381,\n            51,\n            132,\n            1682.05\n          ]\n        ]\n      },\n      {\n        \"style\": \"style_0\",\n        \"points\": [\n          [\n            1578199107,\n            63.5548,\n            53.1381,\n            51,\n            132,\n            742.77\n          ],\n          [\n            1578199192,\n            63.5659,\n            53.1379,\n            39,\n            11,\n            742.77\n          ]\n        ]\n      },\n      {\n        \"style\": \"style_40\",\n        \"points\": [\n          [\n            1578199192,\n            63.5659,\n            53.1379,\n            39,\n            11,\n            1800.23\n          ],\n          [\n            1578199320,\n            63.5797,\n            53.1518,\n            43,\n            30,\n            1800.23\n          ],\n          [\n            1578199513,\n            63.5941,\n            53.1667,\n            51,\n            25,\n            1921.08\n          ]\n        ]\n      },\n    {\n              \"unit_id\": \"fc0a7f07-f04f-42de-8b77-9d0625a163c4\",\n    \"unit_name\": \"unit2\",\n    \"color\": \"#641e16\",\n    \"columns\": [\n      {\n        \"key\": \"datepoint\",\n        \"value\": \"Дата\"\n      },\n      {\n        \"key\": \"longitude\",\n        \"value\": \"Широта\"\n      },\n      {\n        \"key\": \"latitude\",\n        \"value\": \"Долгота\"\n      },\n      {\n        \"key\": \"speed\",\n        \"value\": \"Скорость\"\n      },\n      {\n        \"key\": \"angle\",\n        \"value\": \"Угол\"\n      },\n      {\n        \"key\": \"distance\",\n        \"value\": \"Дистанция\"\n      }\n    ],\n    \"values\": [\n      {\n        \"style\": \"style_0\",\n        \"points\": [\n          [\n            1578131434,\n            63.5339,\n            53.1475,\n            0,\n            101,\n            0\n          ],\n          [\n            1578198784,\n            63.5347,\n            53.1472,\n            0,\n            159,\n            62.35\n          ],\n          [\n            1578198974,\n            63.5337,\n            53.1464,\n            17,\n            160,\n            118.67\n          ]\n        ]\n      },\n      {\n        \"style\": \"style_40\",\n        \"points\": [\n          [\n            1578198974,\n            63.5337,\n            53.1464,\n            17,\n            160,\n            1682.05\n          ],\n          [\n            1578199107,\n            63.5548,\n            53.1381,\n            51,\n            132,\n            1682.05\n          ]\n        ]\n      },\n      {\n        \"style\": \"style_0\",\n        \"points\": [\n          [\n            1578199107,\n            63.5548,\n            53.1381,\n            51,\n            132,\n            742.77\n          ],\n          [\n            1578199192,\n            63.5659,\n            53.1379,\n            39,\n            11,\n            742.77\n          ]\n        ]\n      },\n      {\n        \"style\": \"style_40\",\n        \"points\": [\n          [\n            1578199192,\n            63.5659,\n            53.1379,\n            39,\n            11,\n            1800.23\n          ],\n          [\n            1578199320,\n            63.5797,\n            53.1518,\n            43,\n            30,\n            1800.23\n          ],\n          [\n            1578199513,\n            63.5941,\n            53.1667,\n            51,\n            25,\n            1921.08\n          ]\n        ]\n      }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","fasttracks_group"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"bc85b3a5-4f04-413c-9854-03c721e65216"},{"name":"/point","id":"75b5fd4a-1478-4d06-abde-a7383b2f4f1e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"\n{\n   \"from\":\"2020-04-07 07:41:35\",\n   \"units\":[\n      {\n         \"id\":\"31e92253-1e70-4bb2-9b6f-385e9eed9ba4\"\n      }\n   ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/point","description":"<p><strong>Получение краткой информации (аннотации) о конкретной/последней точке</strong></p>\n<hr />\n<p>Параметр \"from\" должен быть равен или быть максимально приближен к искомой точке. Если данный параметр отсутствует, то возвращается последняя точка объекта.</p>\n","urlObject":{"path":["api_v1","point"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"75b5fd4a-1478-4d06-abde-a7383b2f4f1e"},{"name":"/point/batch","id":"e919c212-c532-40e9-8ca2-cd11de02707a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"\n{\n   \"from\":\"2020-04-07 07:41:35\",\n   \"units\":[\n      {\n         \"id\":\"31e92253-1e70-4bb2-9b6f-385e9eed9ba4\"\n      }\n   ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/point/batch","description":"<p><strong>Получение краткой информации (аннотации) о конкретной/последней точке для нескольк объектов</strong></p>\n<hr />\n<p>Параметр \"from\" должен быть равен или быть максимально приближен к искомой точке. Если данный параметр отсутствует, то возвращается последняя точка объекта.</p>\n<p>Пример запроса:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n   \"units\":[\n      {\n            \"id\": \"eb74af80-32eb-48a5-aea4-00ed26fa1d21\"\n      },\n     {\n            \"id\": \"d8497f29-5eb8-4810-9931-3f1ac05aeef4\"\n     }\n   ]\n}\n\n</code></pre>\n<p>Ответ возвращает массив JSON, каждый элемент которого представляет собой аннотацию об объекте.</p>\n<p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"columns\": [\n            {\n                \"key\": \"unit_name\",\n                \"name\": \"Имя\",\n                \"value\": \"Урал АТЗ М199ХМ 124\",\n                \"group\": \"main\"\n            }\n        ]\n    },\n    {\n        \"columns\": [\n            {\n                \"key\": \"unit_name\",\n                \"name\": \"Имя\",\n                \"value\": \"KAMAZ (без номера) 22.06.2020\",\n                \"group\": \"main\"\n            },\n            {\n                \"key\": \"datepoint\",\n                \"name\": \"Дата и время\",\n                \"value\": \"2024-10-15 05:17:56\",\n                \"group\": \"main\"\n            },\n            {\n                \"key\": \"_datepoint\",\n                \"name\": \"_datepoint\",\n                \"value\": \"2024-10-15 05:17:56\",\n                \"group\": \"hidden\"\n            },\n            {\n                \"key\": \"_unix_timestamp\",\n                \"name\": \"_unix_timestamp\",\n                \"value\": 1728958676,\n                \"group\": \"hidden\"\n            },\n            {\n                \"key\": \"speed\",\n                \"name\": \"Скорость\",\n                \"value\": 128,\n                \"group\": \"gps\"\n            },\n            {\n                \"key\": \"satellites\",\n                \"name\": \"Спутники\",\n                \"value\": 18,\n                \"group\": \"gps\"\n            },\n            {\n                \"key\": \"_angle\",\n                \"name\": \"Угол\",\n                \"value\": 0,\n                \"group\": \"hidden\"\n            },\n            {\n                \"key\": \"address\",\n                \"name\": \"Адрес\",\n                \"value\": \"52.888 83.4898\",\n                \"group\": \"gps\"\n            },\n            {\n                \"key\": \"_imei\",\n                \"name\": \"imei\",\n                \"value\": \"866795035899259\",\n                \"group\": \"hidden\"\n            },\n            {\n                \"key\": \"_sim1\",\n                \"name\": \"sim1\",\n                \"value\": \"79269570356\",\n                \"group\": \"hidden\"\n            },\n            {\n                \"key\": \"_sim2\",\n                \"name\": \"sim2\",\n                \"value\": \"3197002530218\",\n                \"group\": \"hidden\"\n            },\n            {\n                \"key\": \"_marker_latlon\",\n                \"name\": \"_marker_latlon\",\n                \"value\": [\n                    52.887977600097656,\n                    83.48977661132812\n                ],\n                \"group\": \"hidden\"\n            },\n            {\n                \"key\": \"0b7185cf-f594-4ed8-aef1-35457ea5debe\",\n                \"name\": \"ДУТ-1\",\n                \"type\": \"fuelsensor\",\n                \"value\": 153.34,\n                \"group\": \"sensors\"\n            },\n            {\n                \"key\": \"b78689f9-e433-4a19-8dd7-653a56636f2a\",\n                \"name\": \"Зажигание\",\n                \"type\": \"ignition\",\n                \"value\": \"Выкл\",\n                \"group\": \"sensors\",\n                \"_value\": 0\n            },\n            {\n                \"key\": \"9b722af0-4fb2-458e-a47e-56fb38a52ae2\",\n                \"name\": \"ДУТ-2\",\n                \"type\": \"fuelsensor\",\n                \"value\": 0,\n                \"group\": \"sensors\"\n            },\n            {\n                \"key\": \"78e0a8e1-b293-4cd7-b8fb-1ec9fb4827b3\",\n                \"name\": \"Пробег\",\n                \"type\": \"mileage\",\n                \"value\": 435243.34,\n                \"group\": \"sensors\"\n            }\n        ]\n    }\n]\n\n</code></pre>\n","urlObject":{"path":["api_v1","point","batch"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e919c212-c532-40e9-8ca2-cd11de02707a"},{"name":"/datepoint","id":"00dd0178-58b3-4b65-b8cd-28ecd82fcbe1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"units\": [\n        {\n            \"id\": \"97fba3d2-841b-43cd-911a-073b84ad5438\"\n        }\n    ],\n    \"from\": \"2022-12-16 00:00:00\",\n    \"datepoint\": \"2022-12-16 12:40:36\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/journal_index","description":"<p><strong>Получение номера записи в журнале по искомой дате</strong></p>\n<hr />\n<p>units - объект.<br />from - начало интервала журнала.<br />datepoint - искомая дата.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"units\": [\n        {\n            \"id\": \"97fba3d2-841b-43cd-911a-073b84ad5438\"\n        }\n    ],\n    \"from\": \"2022-12-16 00:00:00\",\n    \"datepoint\": \"2022-12-16 12:40:36\"\n}\n\n</code></pre><p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"index\": 2006\n}\n\n</code></pre>","urlObject":{"path":["api_v1","journal_index"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"00dd0178-58b3-4b65-b8cd-28ecd82fcbe1"},{"name":"/fasttracks_to_geozone","id":"7e5572e3-8763-45fd-a710-373a653d670c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"units\": [\n        {\n            \"id\": \"194659d6-b51c-4da7-b3e0-a9fd0c08bd08\"\n        }\n    ],\n    \"geozone\": {\n        \"name\": \"Геозона\",\n        \"width\": 1,\n        \"type\": {\n            \"key\": \"polygon\",\n            \"type\": \"geozone_type\",\n            \"value\": \"Полигон\"\n        },\n        \"icon\": {\n            \"key\": \"territory\",\n            \"type\": \"geo_icon\",\n            \"value\": \"Территория\"\n        },\n        \"color\": {\n            \"key\": \"#E68A2F\",\n            \"type\": \"color_code\",\n            \"value\": \"Оранжевый\"\n        }\n    },\n    \"from\": \"2022-05-01 00:00:00\",\n    \"to\": \"2022-05-08 00:00:00\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/fasttracks_to_geozone","description":"<p><strong>Создание геозоны на основе трека объекта</strong></p>\n<hr />\n<p>units - id объекта, берется всегда ПЕРВЫЙ объект, передавать несколько объектов не имеет смысла.</p>\n<p>from - начало периода</p>\n<p>to - конец периода</p>\n<p>geozone - все данные для создания геозоны, кроме точек (geometry). см. POST /geozones</p>\n<p>Ответ - Поля отправленные в geozone в запросе + geometry - координаты</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"units\": [\n        {\n            \"id\": \"194659d6-b51c-4da7-b3e0-a9fd0c08bd08\"\n        }\n    ],\n    \"geozone\": {\n        \"name\": \"Геозона\",\n        \"width\": 1,\n        \"type\": {\n            \"key\": \"polygon\",\n            \"type\": \"geozone_type\",\n            \"value\": \"Полигон\"\n        },\n        \"icon\": {\n            \"key\": \"territory\",\n            \"type\": \"geo_icon\",\n            \"value\": \"Территория\"\n        },\n        \"color\": {\n            \"key\": \"#E68A2F\",\n            \"type\": \"color_code\",\n            \"value\": \"Оранжевый\"\n        }\n    },\n    \"from\": \"2022-05-01 00:00:00\",\n    \"to\": \"2022-05-08 00:00:00\"\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"name\": \"Геозона\",\n    \"width\": 1,\n    \"type\": {\n        \"key\": \"polygon\",\n        \"type\": \"geozone_type\",\n        \"value\": \"Полигон\"\n    },\n    \"icon\": {\n        \"key\": \"territory\",\n        \"type\": \"geo_icon\",\n        \"value\": \"Территория\"\n    },\n    \"color\": {\n        \"key\": \"#E68A2F\",\n        \"type\": \"color_code\",\n        \"value\": \"Оранжевый\"\n    },\n    \"geometry\": [\n        [\n            58.477291107177734,\n            56.41659164428711\n        ],\n        [\n            58.477989196777344,\n            56.414066314697266\n        ],\n        [\n            58.478939056396484,\n            56.41456985473633\n        ],\n        [\n            58.47801971435547,\n            56.41176986694336\n        ],\n        [\n            58.47996139526367,\n            56.41171646118164\n        ],\n        [\n            58.49407196044922,\n            56.43291091918945\n        ],\n        [\n            58.455448150634766,\n            56.4921875\n        ],\n        [\n            58.44243621826172,\n            56.5400390625\n        ],\n        [\n            58.435298919677734,\n            56.54085922241211\n        ],\n        [\n            58.432525634765625,\n            56.539642333984375\n        ],\n        [\n            58.42418670654297,\n            56.52698516845703\n        ],\n        [\n            58.390262603759766,\n            56.50182342529297\n        ],\n        [\n            58.37371063232422,\n            56.48448944091797\n        ],\n        [\n            58.35701370239258,\n            56.47863006591797\n        ],\n        [\n            58.34515380859375,\n            56.46323013305664\n        ],\n        [\n            58.34355545043945,\n            56.44695281982422\n        ],\n        [\n            58.33879852294922,\n            56.43614959716797\n        ],\n        [\n            58.32884216308594,\n            56.43088912963867\n        ],\n        [\n            58.316139221191406,\n            56.43156814575195\n        ],\n        [\n            58.31150436401367,\n            56.42858123779297\n        ],\n        [\n            58.30974197387695,\n            56.42164611816406\n        ],\n        [\n            58.302207946777344,\n            56.417686462402344\n        ],\n        [\n            58.3018913269043,\n            56.41263961791992\n        ],\n        [\n            58.306488037109375,\n            56.40105056762695\n        ],\n        [\n            58.30192565917969,\n            56.412593841552734\n        ],\n        [\n            58.30179214477539,\n            56.41674041748047\n        ],\n        [\n            58.30784606933594,\n            56.42136764526367\n        ],\n        [\n            58.30413818359375,\n            56.43191146850586\n        ],\n        [\n            58.309669494628906,\n            56.4671516418457\n        ],\n        [\n            58.305442810058594,\n            56.47206115722656\n        ],\n        [\n            58.29851150512695,\n            56.47565841674805\n        ],\n        [\n            58.294681549072266,\n            56.481937408447266\n        ],\n        [\n            58.300418853759766,\n            56.484275817871094\n        ],\n        [\n            58.30851364135742,\n            56.48251724243164\n        ],\n        [\n            58.31448745727539,\n            56.46957015991211\n        ],\n        [\n            58.31837463378906,\n            56.46688461303711\n        ],\n        [\n            58.3328742980957,\n            56.47914123535156\n        ],\n        [\n            58.335201263427734,\n            56.47939682006836\n        ],\n        [\n            58.33803939819336,\n            56.47685623168945\n        ],\n        [\n            58.34174728393555,\n            56.467525482177734\n        ],\n        [\n            58.34584426879883,\n            56.46585464477539\n        ],\n        [\n            58.358394622802734,\n            56.47978973388672\n        ],\n        [\n            58.373939514160156,\n            56.48464584350586\n        ],\n        [\n            58.38987350463867,\n            56.50153350830078\n        ],\n        [\n            58.42338180541992,\n            56.52629089355469\n        ],\n        [\n            58.43311309814453,\n            56.54020309448242\n        ],\n        [\n            58.442684173583984,\n            56.540000915527344\n        ],\n        [\n            58.4559440612793,\n            56.49037551879883\n        ],\n        [\n            58.45564651489258,\n            56.43037414550781\n        ],\n        [\n            58.4511833190918,\n            56.422027587890625\n        ],\n        [\n            58.455528259277344,\n            56.43009567260742\n        ],\n        [\n            58.45490646362305,\n            56.43424987792969\n        ],\n        [\n            58.45737075805664,\n            56.4296989440918\n        ],\n        [\n            58.456932067871094,\n            56.42644119262695\n        ],\n        [\n            58.463802337646484,\n            56.39642333984375\n        ],\n        [\n            58.470794677734375,\n            56.39438247680664\n        ],\n        [\n            58.47585678100586,\n            56.407806396484375\n        ],\n        [\n            58.47556686401367,\n            56.40900802612305\n        ],\n        [\n            58.474639892578125,\n            56.40435028076172\n        ],\n        [\n            58.47453689575195,\n            56.409210205078125\n        ],\n        [\n            58.47787094116211,\n            56.41158676147461\n        ],\n        [\n            58.47735595703125,\n            56.416500091552734\n        ],\n        [\n            58.477962493896484,\n            56.41410446166992\n        ],\n        [\n            58.478851318359375,\n            56.41459655761719\n        ],\n        [\n            58.47584915161133,\n            56.409793853759766\n        ],\n        [\n            58.470985412597656,\n            56.39485168457031\n        ],\n        [\n            58.468772888183594,\n            56.39400100708008\n        ],\n        [\n            58.464168548583984,\n            56.395565032958984\n        ],\n        [\n            58.45691680908203,\n            56.42605972290039\n        ],\n        [\n            58.457672119140625,\n            56.42924118041992\n        ],\n        [\n            58.45512390136719,\n            56.434085845947266\n        ],\n        [\n            58.45643997192383,\n            56.467201232910156\n        ],\n        [\n            58.45261764526367,\n            56.464988708496094\n        ],\n        [\n            58.45439147949219,\n            56.46688461303711\n        ],\n        [\n            58.456478118896484,\n            56.466243743896484\n        ],\n        [\n            58.45513916015625,\n            56.43400955200195\n        ],\n        [\n            58.457672119140625,\n            56.428993225097656\n        ],\n        [\n            58.45687484741211,\n            56.426273345947266\n        ],\n        [\n            58.46389389038086,\n            56.396141052246094\n        ],\n        [\n            58.47080612182617,\n            56.39448928833008\n        ],\n        [\n            58.47549819946289,\n            56.40879821777344\n        ],\n        [\n            58.47584915161133,\n            56.407806396484375\n        ],\n        [\n            58.47478485107422,\n            56.40472412109375\n        ],\n        [\n            58.47456359863281,\n            56.409278869628906\n        ],\n        [\n            58.47783660888672,\n            56.41162872314453\n        ],\n        [\n            58.47768020629883,\n            56.41593933105469\n        ],\n        [\n            58.4779167175293,\n            56.411678314208984\n        ],\n        [\n            58.47163009643555,\n            56.410831451416016\n        ],\n        [\n            58.46517562866211,\n            56.41938018798828\n        ],\n        [\n            58.460968017578125,\n            56.4117431640625\n        ],\n        [\n            58.45635986328125,\n            56.43159484863281\n        ],\n        [\n            58.451236724853516,\n            56.4222526550293\n        ],\n        [\n            58.44839096069336,\n            56.42311477661133\n        ],\n        [\n            58.45040512084961,\n            56.42209243774414\n        ],\n        [\n            58.452735900878906,\n            56.42485809326172\n        ],\n        [\n            58.45558166503906,\n            56.43049240112305\n        ],\n        [\n            58.4548454284668,\n            56.434326171875\n        ],\n        [\n            58.45744323730469,\n            56.4295539855957\n        ],\n        [\n            58.45690155029297,\n            56.42661666870117\n        ],\n        [\n            58.460601806640625,\n            56.41170883178711\n        ],\n        [\n            58.464805603027344,\n            56.4195442199707\n        ],\n        [\n            58.47134780883789,\n            56.41114044189453\n        ],\n        [\n            58.47795486450195,\n            56.41222381591797\n        ],\n        [\n            58.47724914550781,\n            56.4166259765625\n        ]\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","fasttracks_to_geozone"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"7e5572e3-8763-45fd-a710-373a653d670c"},{"name":"/tracks/get_tracks","id":"24be930c-4f5e-4f40-ade2-74359d0eb9ee","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\n    \"unit_id\": \"93a62a79-a117-4b4e-b53a-568e1d06e603\",\n    \"from\": \"2023-10-01 00:00:00\",\n    \"to\": \"2024-12-01 00:00:00\",\n    \"min_lat\": 34.323233,\n    \"min_lon\": 20.343545,\n    \"max_lat\": 80.34324,\n    \"max_lon\": 88.32321,\n    \"zoom\": 10,\n    \"process_id\": \"4c658ab8-2ef6-460c-aee2-ecc4a1486df8\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/tracks/get_tracks","description":"<p><strong>Запрос для получения трека</strong></p>\n<p>Тело запроса JSON</p>\n<hr />\n<p>Поля запроса :</p>\n<p>unit_id - ID объекта</p>\n<p>from - начало периода, в формате yyyy-MM-dd HH:mm:ss, необходимо отправлять в UTC+0</p>\n<p>to - конеч периода, в формате yyyy-MM-dd HH:mm:ss, необходимо отправлять в UTC+0</p>\n<p>min_lat - Минимальное значение широты, вещественное число</p>\n<p>max_lat - Максимальное значение широты, вещественное число</p>\n<p>min_lon - Минимальное значение долготы, вещественное число</p>\n<p>max_lon - Максимальное значение долготы, вещественное число</p>\n<p>zoom - зум, целое число</p>\n<p>process_id - опциональное поле, для указания идентификатор запроса на клиенте</p>\n<p>На странице локатора дополнительно отправить параметр locator_id - ID локатора</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>GET <a href=\"https://dev5.skif.pro/api_v1/tracks/get_tracks?unit_id=93a62a79-a117-4b4e-b53a-568e1d06e603&amp;from=2023-10-01\">https://dev5.skif.pro/api_v1/tracks/get_tracks</a></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"unit_id\": \"93a62a79-a117-4b4e-b53a-568e1d06e603\",\n    \"from\": \"2023-10-01 00:00:00\",\n    \"to\": \"2024-12-01 00:00:00\",\n    \"min_lat\": 34.323233,\n    \"min_lon\": 20.343545,\n    \"max_lat\": 80.34324,\n    \"max_lon\": 88.32321,\n    \"zoom\": 10,\n    \"process_id\": \"4c658ab8-2ef6-460c-aee2-ecc4a1486df8\"\n}\n\n</code></pre><p><strong>Ответ:</strong></p>\n<p>Каждый элемент массива points в таком формате: [datepoint_delta,latitude,longitude,speed]</p>\n<p>datepoint_delta - разница datepoint от предыдущей записи в секундах. Для первого элемента это разница от from. datepoint в unix timestamp.</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"points\": [\n        [\n            17140501,\n            59.959656,\n            30.311783,\n            16\n        ],\n        [\n            222,\n            59.956139,\n            30.320679,\n            45\n        ],\n        [\n            244,\n            59.950233,\n            30.326031,\n            13\n        ]\n    ],\n    \"process_id\": \"4c658ab8-2ef6-460c-aee2-ecc4a1486df8\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","tracks","get_tracks"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"24be930c-4f5e-4f40-ade2-74359d0eb9ee"},{"name":"/points_geozones","id":"990cca9d-bf2b-4108-a257-dcdba197e213","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"geozones\": [\n        {\n            \"id\": \"5b26edba-c04a-4db7-be99-548d67ec11dd\"\n        },\n        {\n            \"id\": \"c4714f7e-5c5e-4c85-982c-68ecef05fe8c\"\n        },\n        {\n            \"id\": \"d5f3cbfb-bfb6-4553-acb7-0a460327250c\"\n        },\n        {\n            \"id\": \"7c75f26e-c71a-4c0a-b289-106a9c466d91\"\n        },\n        {\n            \"id\": \"8ac9812f-4c5c-4047-a4e5-f8c7fa2ee187\"\n        },\n        {\n            \"id\": \"3397300d-186a-4a5e-a177-92158582cd06\"\n        },\n        {\n            \"id\": \"300c81d6-93fb-46f3-8722-7c00ab8c71b3\"\n        },\n        {\n            \"id\": \"0fb64256-197d-4ab0-902d-024261180fd8\"\n        },\n        {\n            \"id\": \"74ebea2b-5416-4f78-a009-1c0742882e44\"\n        },\n        {\n            \"id\": \"4b6d7108-20e4-4e5b-a6c3-ab1d39b6d2d0\"\n        },\n        {\n            \"id\": \"439feae2-ae51-497c-ac44-2e0fcfe21090\"\n        },\n        {\n            \"id\": \"506c5c93-c4ea-46ca-a562-45930b89cd8a\"\n        },\n        {\n            \"id\": \"50f8b4a9-9492-4a5d-b3c6-e9fdeb3f7a9a\"\n        },\n        {\n            \"id\": \"bc0fa345-099c-4e92-bbb1-7ff0cbec167c\"\n        },\n        {\n            \"id\": \"f1ce4edb-c5e1-48c7-849d-d0ee490eb6dc\"\n        },\n        {\n            \"id\": \"d2b8c61e-5237-4485-b0ae-da5463dbde7b\"\n        },\n        {\n            \"id\": \"a1e4c098-a94d-450a-8604-126c8bd8b342\"\n        },\n        {\n            \"id\": \"85db06e5-5d46-4029-a098-5128c9e129a5\"\n        },\n        {\n            \"id\": \"718ff4cf-23c9-4999-998a-9b051b0fbe4c\"\n        },\n        {\n            \"id\": \"8a2e9513-c121-4cdb-a66e-36fe85ae1789\"\n        },\n        {\n            \"id\": \"549b6340-8141-433f-af0e-304f806ed3ab\"\n        },\n        {\n            \"id\": \"775ea2bb-caae-48fa-a1ca-6a458a92d266\"\n        },\n        {\n            \"id\": \"1abf8dd0-67b5-454a-b3ee-4d5afcc916e9\"\n        },\n        {\n            \"id\": \"653fe0f2-0c30-456e-b3e1-b5ed0c4e6538\"\n        },\n        {\n            \"id\": \"4d605595-d4fc-4783-97fe-048d6cf43c68\"\n        },\n        {\n            \"id\": \"a553e2b7-9630-494e-ab86-cacbd58f049d\"\n        },\n        {\n            \"id\": \"ebab751d-85be-4ee4-9236-5446f94b75bc\"\n        },\n        {\n            \"id\": \"bf750153-5c8b-46fb-8117-7e6abb62af28\"\n        },\n        {\n            \"id\": \"470e8c3b-591b-418c-ba95-048bf4c9a0de\"\n        },\n        {\n            \"id\": \"14513bce-cb1a-4f11-9cd6-13c0e251e1e7\"\n        },\n        {\n            \"id\": \"764f6b18-a4b7-4d0d-a0fc-bd21209b8ad7\"\n        },\n        {\n            \"id\": \"860567e4-cafc-452f-96e8-75379090dc68\"\n        },\n        {\n            \"id\": \"937b98a9-b1c5-44cd-bfc5-b2a3c221d719\"\n        },\n        {\n            \"id\": \"5015cb6d-7ced-44d6-b2e6-8f1e42b6e274\"\n        },\n        {\n            \"id\": \"dd9aba62-2052-4314-858b-f7af64f55241\"\n        },\n        {\n            \"id\": \"96e8c566-a44c-4d25-8a3b-92129ca9e769\"\n        },\n        {\n            \"id\": \"22e6f850-74a5-41ec-9240-4801b56cb2c5\"\n        },\n        {\n            \"id\": \"bdaaeb4e-e7f6-4f7e-bdb6-a3abd85346da\"\n        },\n        {\n            \"id\": \"08c92a7a-518a-4d1f-a1d6-dbc9e9779477\"\n        },\n        {\n            \"id\": \"e8c7372f-d25d-4c81-bc18-6dc3dbccfbef\"\n        },\n        {\n            \"id\": \"bc2211b9-b5bb-4fff-be2c-6ff3cb6063f3\"\n        },\n        {\n            \"id\": \"0152ea99-a517-4351-be98-17a6ed4a41b0\"\n        },\n        {\n            \"id\": \"d950714a-7423-4567-b956-8562f2727823\"\n        },\n        {\n            \"id\": \"fe95b2b2-d5f8-4a6b-a8d7-f9ec6143f2d0\"\n        },\n        {\n            \"id\": \"e97e9b9c-4379-4905-a55c-e694302f69e9\"\n        },\n        {\n            \"id\": \"cd286c0f-3364-416d-8597-c221b0990be0\"\n        },\n        {\n            \"id\": \"71b4aab2-9e2c-4c2a-9865-665987b8b56c\"\n        },\n        {\n            \"id\": \"23ff5308-8159-48cb-9e02-9e9cd3ac2917\"\n        },\n        {\n            \"id\": \"94ba7820-cdb7-4e05-9968-34e97cf05951\"\n        },\n        {\n            \"id\": \"b8e4bca0-c867-47b2-a522-120913841003\"\n        },\n        {\n            \"id\": \"fcd04d6e-d523-4c18-8ee3-9ee6811ef94d\"\n        },\n        {\n            \"id\": \"9bf492fc-a261-429d-9021-03e27f7d6b70\"\n        },\n        {\n            \"id\": \"405dd1d9-6d0d-4346-8e02-03902a2fbdd9\"\n        },\n        {\n            \"id\": \"ea6246cc-569f-4185-b4e2-24811508caff\"\n        },\n        {\n            \"id\": \"0cecc132-39bb-4113-96b5-7e665d5f6177\"\n        },\n        {\n            \"id\": \"ff6619ba-2ea8-49dc-81d5-6dac1487eaff\"\n        },\n        {\n            \"id\": \"338eecfe-d989-4f7c-93e2-e2b370e3acfe\"\n        },\n        {\n            \"id\": \"898174d5-2f04-4b91-84d2-0034190da4a0\"\n        },\n        {\n            \"id\": \"679f5b9d-0cf6-41fe-837e-8781911f61de\"\n        },\n        {\n            \"id\": \"e4ef3cd8-7630-4df4-aead-8a2c7fe6b6e4\"\n        },\n        {\n            \"id\": \"b35247b4-a48c-4fcb-81e9-033d7230e19e\"\n        },\n        {\n            \"id\": \"f33f7b79-ef6c-4e40-acff-68407a8502b2\"\n        },\n        {\n            \"id\": \"22d7ed4c-ea97-4641-9977-b27d5f87bdc5\"\n        },\n        {\n            \"id\": \"79c99061-ea1a-49be-a027-c661bb326f42\"\n        },\n        {\n            \"id\": \"07356380-ba8d-4653-9847-30d6effa2948\"\n        },\n        {\n            \"id\": \"d4bf36b5-3480-42ff-83fe-73807c5e3aa3\"\n        },\n        {\n            \"id\": \"74ebea2b-5416-4f78-a009-1c0742882e44\"\n        }\n    ],\n    \"units\": [\n        {\n            \"id\": \"03d98e39-0942-4c70-983b-405ad077ebbb\"\n        },\n        {\n            \"id\": \"3d70f0f0-b3cc-4250-a688-8fd9a8018763\"\n        }\n    ],\n    \"offset\": 0,\n    \"max\": 100,\n    \"to\": \"2021-05-30 10:00:00\",\n    \"from\": \"2021-05-30 00:00:00\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/points_geozones","description":"<p><strong>Получение пересечений треков объектов с геозонами</strong></p>\n<hr />\n<p><strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"units\": [{\n        \"id\": \"59c3b12d-583b-4e0d-bf69-05b73b7a0707\"\n    }],\n    \"geozones\": [{\n        \"id\": \"951f0dbd-eb26-4585-b8b2-a25f899cfaba\"\n    }, {\n        \"id\": \"352838a8-3073-4143-a824-5556acfe9457\"\n    }],\n    \"from\": \"2021-02-01 00:00:00\",\n    \"to\": \"2021-02-06 00:00:00\"\n}\n\n</code></pre><p>units - массив id объектов, не более 300 объектов.</p>\n<p>geozones - массив id геозон, в которых могут быть объекты.</p>\n<p>from, to - период, за который получаем данные, не более 7 дней.</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    [\n        63.90916,\n        52.02023,\n        0.0,\n        \"59c3b12d-583b-4e0d-bf69-05b73b7a0707\",\n        \"352838a8-3073-4143-a824-5556acfe9457\",\n        1612145853,\n        \"2021-02-01 08:17:33\"\n    ],\n    [\n        63.909298,\n        52.020153,\n        0.0,\n        \"59c3b12d-583b-4e0d-bf69-05b73b7a0707\",\n        \"352838a8-3073-4143-a824-5556acfe9457\",\n        1612145880,\n        \"2021-02-01 08:18:00\"\n    ],\n...\n\n</code></pre><p>Ответ - массив данных следующего содержания:</p>\n<p>1 элемент - longitude</p>\n<p>2 - latitude</p>\n<p>3 - speed</p>\n<p>4 - unit id</p>\n<p>5 - geozeon id</p>\n<p>6 - unix time</p>\n<p>7 - user time</p>\n","urlObject":{"path":["api_v1","points_geozones"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"990cca9d-bf2b-4108-a257-dcdba197e213"}],"id":"dc291ef1-af58-499f-8ed1-295a6121f0c2","_postman_id":"dc291ef1-af58-499f-8ed1-295a6121f0c2","description":""},{"name":"Уведомления","item":[{"name":"/notifications?ids=:ids","id":"483b2644-fd7c-4178-ac05-c311e33871f2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/notifications?ids=","description":"<p><strong>Получение шаблона уведомления</strong></p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n","urlObject":{"path":["api_v1","notifications"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"483b2644-fd7c-4178-ac05-c311e33871f2"},{"name":"/notifications","id":"ea2374a9-6830-4443-8d9b-e690ce981522","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"units\":[{\"id\":\"7e078c26-3043-4117-a822-54b29785c086\"},{\"id\":\"4b8f9e89-cc66-43b4-bafe-bf08fac8b211\"}],\n    \"units_groups\": [{\"id\":\"266b1737-e85f-4ba0-9985-dbeefa2dd697\"}],\n\t\"type\":{\"key\":\"sensor_notification\"},\n    \"sound\":{\"key\":\"8tone\"},\n\t\"delivery_emails\":[\"test1@mail.uk\",\"test2@mail.uk2\"],\n\t\"delivery_sms\":[\"12345644848\",\"12345644849\"],\n\t\"delivery_push\":[\"990cb3e1-474a-4f07-95b9-8568c194d801\",\"b1fd9628-9f72-4e72-9da8-f5ca4e2fffc1\"],\n    \"delivery_commands\": [\n        {\n            \"terminal_type_key\": \"navtelecom\",\n            \"command\": \"*?V\"\n        },\n        {\n            \"terminal_type_key\": \"galileo\",\n            \"command\": \"Info\"\n        }\n    ],\n    \"delivery_http_requests\" : [\n        {\n            \"url\": \"http://example.com\",\n            \"method\" : \"post\",\n            \"jsonBody\" : \"{ 'invalid syntax': 'json' }\", // в этом примере возвращается ошибка. нужно отправить { \"valid syntax\": \"json\" }\n            \"headers\": [\n                {\n                    \"name\" : \"headerName\",\n                    \"value\": \"headerValue\"\n                }\n            ]\n        }\n\n    ],\n    \"timeout_conditions_type\": {\n        \"key\": \"timeout_conditions_min\"\n    },\n    \"timeout_conditions_value\": 1,\n\t\"name\":\"testNotification\",\n\t\"is_active\":true,\n\t\"notificationtext\":\"some text\",\n\t\"is_show_online\": true,\n\t\"isdeliveryemail\": true,\n    \"isdeliverysms\": true,\n    \"isdeliverypush\": true,\n    \"isdeliverycommand\": true,\n    \"isviolation\": false,\n    \"isdeliveryhttp\": true,\n    \"isevent\": true,\n    \n    \"weeks_control\": true,\n    \"wc_active_1\":true,\n    \"wc_from_1\": 4124,\n    \"wc_to_1\": 4200,\n    \n\t\"geozones\":[{\"id\":\"79883ab2-968a-405d-839e-fad90e92a3d0\"},{\"id\":\"266b1737-e85f-4ba0-9985-dbeefa2dd697\"}],\n\t\"sensor_type\":{\"key\":\"ignition\"},\n\t\"name_mask\": \"CustomFuelSenso\",\n\t\"in_geozone\": true,\n\t\"in_interval\": false,\n\t\"speed_notless\": 12.0,\n\t\"speed_notmore\": 15.0,\n\t\"sensor_notless\": 333.0,\n\t\"sensor_notmore\": 555.0,\n\t\"duration\": 10,\n\t\"interval_milage\": 34000,\n\t\"interval_days\": 90,\n    \n    \"isdeliveryaddtogroup\": true,\n    \"isdeliveryremovefromgroup\" : true,\n    \"delivery_add_unit_group\": [\"9fd6f8d7-0d9a-4a8a-93f7-a2b0c28fcee4\"],\n    \"delivery_remove_unit_from_group\": [\"9fd6f8d7-0d9a-4a8a-93f7-a2b0c28fcee4\"]\n\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/notifications","description":"<p><strong>Создание нового шаблона уведомлений</strong></p>\n<hr />\n<p>Модель шаблона:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>    Unit[] units - обязательный параметр. Должен быть хотя бы один юнит.\n    units_groups[] units_groups - Новый параметр для уведомлений по группе объектов\n    Dictionary type - виды уведомлений - Контроль скорости, Контроль геозон, Контроль значения датчика, Тревожная кнопка, Потеря связи, Простой ТС, Контроль ТО. Ключи можно получить через запрос GET /dictionaries/notification_type\n    Dictionary sound - Звук, Ключи можно получить через запрос GET /dictionaries,  тип - notify_sounds\n    String[] delivery_emails - массив строк с емейлами\n    String[] delivery_sms - массив строк с телефонами\n    UUID[] delivery_push - массив uuid юзеров\n    Long[] delivery_telegram - массив id-рассылки для Telegram. Массив целых чисел. Выбирается из пользователей из поля telegram_chat_id\n    В запросе должен быть хотя бы один из этих 4 параметров.\n    List&lt;DeliveryCommand&gt; delivery_commands - массив настройки для отправки команды, каждый элемент \n       состоит из полей terminal_type_key - ключ тип протокола, command - текст команды.\n    List&lt;DeliveryHttpRequest&gt; delivery_http_requests - массив настройки для отправки GET/POST запросов\n    UUID[] delivery_add_unit_group - массив UUID групп объектов для \"Добавление объекта в группы\"\n    UUID[] delivery_remove_unit_from_group -  UUID групп объектов для \"Удаление объекта из группы\"\n    Dictionary delivery_unit_icon - изменение иконки объекта\n    String name - имя шаблона. Обязательный параметр.\n    Boolean is_active; //деактивация\n    String notificationtext - шаблон текста уведомления. Обязательный параметр.\n    Boolean is_show_online; // включить показать онлайн\n    Boolean isdeliveryemail; // включить отправку на почту\n    Boolean isdeliverysms; // включить отправку sms\n    Boolean isdeliverypush; //включить отправку push\n    Boolean isdeliverytelegram; //включить отправку на телеграм\n    Boolean isdeliverycommand; // включить отправку команды \n    Boolean isdeliveryhttp; // включить отправку GET/POST\n    Boolean isdeliveryaddtogroup; // включить добавление объекта из группы\n    Boolean isdeliveryremovefromgroup; // включить удаление объекта из группы\n    Boolean isdeliverychangeicon; // включить изменение иконки объекта\nBoolean isviolation;\n    Boolean isevent;\n    Boolean weeks_control; //контроль по дням недели\n    Boolean wc_active_1; //monday\n    Boolean wc_active_2;\n    Boolean wc_active_3;\n    Boolean wc_active_4;\n    Boolean wc_active_5;\n    Boolean wc_active_6;\n    Boolean wc_active_7;\n    String wc_from_1; //from for monday\n    String wc_from_2;\n    String wc_from_3;\n    String wc_from_4;\n    String wc_from_5;\n    String wc_from_6;\n    String wc_from_7;\n    String wc_to_1; //to for monday\n    String wc_to_2;\n    String wc_to_3;\n    String wc_to_4;\n    String wc_to_5;\n    String wc_to_6;\n    String wc_to_7;\n    Geozones[] geozones - массив геозон. Должна быть хотя бы одна геозона в массиве, если type = 'geozone_notification' или 'velocity_notification'.\n    GeozonesGroup[] geozones_groups - массив групп геозон. \n    Dictionary sensor_type - ключ типа сенсора. Список типов может быть получен по запросу GET /dictionaries/sensor_type\n    String name_mask - маска имени сенсора.\n    В случае, если type = 'sensor_notification', то должен быть заполнен хотя бы один из этих 2 параметров.\n    Boolean in_geozone - тип триггера для геозон. false - выход из геозоны, true - вход в геозону. Является обязательным, если type = 'geozone_notification'.\n    Boolean in_interval - тип триггера для датчика. false - вне установленных рамок, true - в установленных рамках.  Является обязательным, если type = 'sensor_notification'.\n    Double speed_notless - скорость \"не менее\". Параметр используется только если type = 'velocity_notification'\n    Double speed_notmore - скорость \"не более\". Параметр используется только если type = 'velocity_notification' или 'idle_notification'.\n    Если type = 'velocity_notification', то должен быть заполнен хотя бы 1 параметр из этих двух. \n    Double sensor_notless - значение датчика \"не менее\". Параметр используется только если type = 'sensor_notification'\n    Double sensor_notmore - значение датчика \"не более\". Параметр используется только если type = 'sensor_notification'\n    Если type = 'sensor_notification', то должен быть заполнен хотя бы 1 параметр из этих двух. \n    Double lostsignal_notless - минимальное время потери сигнала. Параметр используется только если type = 'sensor_notification' и в этом случае является обязательным.\n    Integer duration - Длительность простоя. Используется только если type = 'idle_notification' и в таком случае является обязательным. \n    Также, если type = 'idle_notification', то параметр speed_notmore является обязательным.\n    Integer interval_milage - интервал пробега. Используется только если type = 'service_notification'.\n    Integer interval_days - интервал по дням. Используется только если type = 'service_notification'.\n    Integer interval_motohours - интервал моточасы\nИспользуется только если type = 'service_notification'.\n    Если type = 'service_notification', то должен быть заполнен хотя бы 1 параметр из этих трех. \n    Dictionary timeout_conditions_type - Виды таймаута проверки условия. Возможные ключи: timeout_conditions_sec, timeout_conditions_min, timeout_conditions_hour\n    Integer timeout_conditions_value - Значение таймаута проверки условия. \n\n</code></pre><hr />\n<p>﻿﻿<strong>Роль:</strong> Оператор и выше.</p>\n","urlObject":{"path":["api_v1","notifications"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"ea2374a9-6830-4443-8d9b-e690ce981522"},{"name":"/notifications/:notification_id","id":"40cf67c9-5627-4e6d-bade-5bb72843237d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n\t\"is_active\": \"false\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/notifications/:notification_id","description":"<p><strong>Изменение активности уведомлений</strong></p>\n<hr />\n<p>Параметры:<br />notification_id - ID уведомления</p>\n<p>Тело запроса:<br />Чтобы сделать активным, необходимо отправить запрос с таким телом:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"is_active\": true\n}\nили\n{\n    \"is_active\": \"true\"\n}\nили\n{\n    \"is_active\": 1\n}\n\n</code></pre><p>Чтобы сделать неактивным, необходимо отправить запрос с таким телом:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"is_active\": false\n}\nили\n{\n    \"is_active\": \"false\"\n}\nили\n{\n    \"is_active\": 0\n}\n\n</code></pre><p>В ответе возвращается обновленный объект notification , как в PUT /notifications/:notification_id</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Оператор и выше.</p>\n","urlObject":{"path":["api_v1","notifications",":notification_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID уведомления</p>\n","type":"text/plain"},"type":"any","value":"","key":"notification_id"}]}},"response":[],"_postman_id":"40cf67c9-5627-4e6d-bade-5bb72843237d"},{"name":"/notifications/list","id":"3fa0c849-025a-4448-b209-462457799905","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"{{base_url}}/api_v1/notifications/list","description":"<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n","urlObject":{"path":["api_v1","notifications","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3fa0c849-025a-4448-b209-462457799905"},{"name":"/notifications/:notification_id","id":"f507a84f-a9e4-49df-ae61-65f29f8ff699","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"{{base_url}}/api_v1/notifications/:notification_id","description":"<hr />\n<p>﻿﻿<strong>Роль:</strong> Оператор и выше.</p>\n","urlObject":{"path":["api_v1","notifications",":notification_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID уведомления</p>\n","type":"text/plain"},"type":"any","value":"","key":"notification_id"}]}},"response":[],"_postman_id":"f507a84f-a9e4-49df-ae61-65f29f8ff699"},{"name":"/notifications/:notification_id","id":"7e9b7c72-43d5-4865-9b1f-e55cb9c9a3ff","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/notifications/:notification_id","description":"<p><strong>Удаление шаблона уведомлений</strong></p>\n<hr />\n<p>Удаление физическое.</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Оператор и выше.</p>\n","urlObject":{"path":["api_v1","notifications",":notification_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID уведомления</p>\n","type":"text/plain"},"type":"any","value":"","key":"notification_id"}]}},"response":[],"_postman_id":"7e9b7c72-43d5-4865-9b1f-e55cb9c9a3ff"},{"name":"/notifications?ids=:ids","id":"26482a09-1d8e-449c-b6fa-b53c11d36ce9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/notifications?ids=","description":"<p><strong>Планирование удаления шаблона уведомления</strong></p>\n<hr />\n<p>см. DELETE /units?ids=:ids</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Оператор и выше.</p>\n","urlObject":{"path":["api_v1","notifications"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"26482a09-1d8e-449c-b6fa-b53c11d36ce9"},{"name":"/notifications","id":"c95bee41-a01b-430e-981b-46ed3b1ee111","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/notifications","description":"<p><strong>Планирование удаления шаблона уведомления</strong></p>\n<hr />\n<p>см. DELETE /units</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Оператор и выше.</p>\n","urlObject":{"path":["api_v1","notifications"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c95bee41-a01b-430e-981b-46ed3b1ee111"},{"name":"/messages","id":"eb49d2d7-a2b4-4c0b-b6f9-bc837707956b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"wss://{{base_url}}/notifications/messages","description":"<p><strong>Получение уведомлений</strong></p>\n<hr />\n<p>Используется один вебсокет для получения следующих данных:</p>\n<ol>\n<li><p>последнего сообщения от объекта</p>\n</li>\n<li><p>уведомлений за последние сутки</p>\n</li>\n<li><p>новых уведомлений</p>\n</li>\n<li><p>изменения справочников</p>\n</li>\n</ol>\n<p>После открытия сокета сервер будет присылать уведомления вида:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[{\n    \"id\": \"27379574-a367-4864-a2de-b236aa22dbd4\",\n    \"template\": {},\n    \"notificationtext\": \"Камаз P 293 BT Костанай в 2020-07-21 15:49:00 зафиксирован вход в геозону / выход из геозоны ... на скорости 10 возле Нефтебаза. \",\n    \"time\": \"2020-07-21 15:49:00\",\n    \"unit\": {},\n    \"latitude\": 53.2038766,\n    \"longitude\": 63.583665\n}]\n\n</code></pre>","urlObject":{"protocol":"wss","path":["notifications","messages"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"eb49d2d7-a2b4-4c0b-b6f9-bc837707956b"}],"id":"fc8e3308-314c-4042-b8a7-6371f723a6a6","_postman_id":"fc8e3308-314c-4042-b8a7-6371f723a6a6","description":""},{"name":"Рассылки","item":[{"name":"/mailings","id":"87b96e4f-bc12-4a4d-9895-b0324119dc7a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"units_group\": {\n        \"id\": \"09581d93-a351-44de-9f33-1d4b0a1b0b48\"\n    },\n    \"report_template\": {\n        \"id\": \"76c4d2a4-5c89-494d-9c26-fbfcfa144601\"\n    },\n    \"periodic\": 2,\n    \"periodic_type\": {\n        \"type\": \"periodic_type\",\n        \"key\": \"periodic_days\"\n    },\n    \"weekdays\": [\n        {\n            \"type\": \"weekdays_type\",\n            \"key\": \"monday\"\n        },\n        {\n            \"type\": \"weekdays_type\",\n            \"key\": \"friday\"\n        }\n    ],\n    \"delivery_emails\": [\n        \"test@mail.ru\",\n        \"xyz@gmail.com\"\n    ],\n    \"last_run\": \"2020-10-05 10:25:45\",\n    \"msg\": \"Some message\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/mailings","description":"<p><strong>Создание новой рассылки</strong></p>\n<hr />\n<p>Модель рассылки:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>    name - название рассылки, строка, обязательно\n    Unit unit - объект\n    UnitsGroup units_group - группа объектов, в одно и той же время надо указать или unit или units_group\n    ReportTemplate report_template - шаблон отчета, обязательно\n    periodic - период отправки письма, целое положительное число, обязательно\n    periodic_type - тип периода отправки, получается из справочника по типу periodic_type, обязательно\n    weekdays - список дней недели, в которых надо отправить письмо, обязательно\n    delivery_emails - список почт\n    delivery_telegram - список телеграм чатов\n    last_run - дата и время последней отправки, необязательно\n    msg - сообщение, текст\n    is_active - признак активности, булеан\n\n</code></pre><hr />\n<p><strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"name\": \"New mailing\",\n    \"unit\": {\n        \"id\": \"b8b1f330-52cf-46c6-a41e-ab0f70a0cce5\"\n    },\n    \"report_template\": {\n        \"id\": \"76c4d2a4-5c89-494d-9c26-fbfcfa144601\"\n    },\n    \"periodic\": 2,\n    \"periodic_type\": {\n        \"type\": \"periodic_type\",\n        \"key\": \"periodic_days\"\n    },\n    \"weekdays\": [\n        {\n            \"type\": \"weekdays_type\",\n            \"key\": \"monday\"\n        },\n        {\n            \"type\": \"weekdays_type\",\n            \"key\": \"friday\"\n        }\n    ],\n    \"delivery_emails\": [\n        \"test@mail.ru\",\n        \"xyz@gmail.com\"\n    ],\n    \"delivery_telegram\": [\n        484392478323,\n        -13894857843\n    ],\n    \"last_run\": \"2020-10-05 10:25:45\",\n    \"msg\": \"Some message\",\n    \"is_active\": true\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"afa8dc0f-4e8f-422d-9059-2fedb9039f4e\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"unit\": {\n        \"id\": \"b8b1f330-52cf-46c6-a41e-ab0f70a0cce5\"\n    },\n    \"report_template\": {\n        \"id\": \"76c4d2a4-5c89-494d-9c26-fbfcfa144601\"\n    },\n    \"periodic\": 2,\n    \"periodic_type\": {\n        \"key\": \"periodic_days\",\n        \"type\": \"periodic_type\",\n        \"value\": \"По дням\"\n    },\n    \"weekdays\": [\n        {\n            \"key\": \"monday\",\n            \"type\": \"weekdays_type\",\n            \"value\": \"Понедельник\"\n        },\n        {\n            \"key\": \"friday\",\n            \"type\": \"weekdays_type\",\n            \"value\": \"Пятница\"\n        }\n    ],\n    \"delivery_emails\": [\n        \"test@mail.ru\",\n        \"xyz@gmail.com\"\n    ],\n     \"delivery_telegram\": [\n        484392478323,\n        -13894857843\n    ],\n    \"last_run\": \"2020-10-05 10:25:45\",\n    \"msg\": \"Some message\",\n    \"is_active\": true,\n    \"_active\": true\n}\n\n</code></pre><hr />\n<p><strong>Запрос по группе объектов:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"name\": \"New mailing\",\n    \"units_group\": {\n        \"id\": \"09581d93-a351-44de-9f33-1d4b0a1b0b48\"\n    },\n    \"report_template\": {\n        \"id\": \"76c4d2a4-5c89-494d-9c26-fbfcfa144601\"\n    },\n    \"periodic\": 2,\n    \"periodic_type\": {\n        \"type\": \"periodic_type\",\n        \"key\": \"periodic_days\"\n    },\n    \"weekdays\": [\n        {\n            \"type\": \"weekdays_type\",\n            \"key\": \"monday\"\n        },\n        {\n            \"type\": \"weekdays_type\",\n            \"key\": \"friday\"\n        }\n    ],\n    \"delivery_emails\": [\n        \"test@mail.ru\",\n        \"xyz@gmail.com\"\n    ],\n     \"delivery_telegram\": [\n        484392478323,\n        -13894857843\n    ],\n    \"last_run\": \"2020-10-05 10:25:45\",\n    \"msg\": \"Some message\",\n    \"is_active\": true\n}\n\n</code></pre>","urlObject":{"path":["api_v1","mailings"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"87b96e4f-bc12-4a4d-9895-b0324119dc7a"},{"name":"/mailings/:id","id":"5182d2ae-4bc2-4508-a7c1-ca1880a3df10","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n\t\"is_active\": \"false\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/mailings/:id","description":"<p><strong>Изменение активности рассылки</strong></p>\n<hr />\n<p>Параметры:<br />id - ID рассылки</p>\n<p>Чтобы сделать активным, необходимо отправить запрос с таким телом:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"is_active\": true\n}\nили\n{\n    \"is_active\": \"true\"\n}\nили\n{\n    \"is_active\": 1\n}\n\n</code></pre><p>Чтобы сделать неактивным, необходимо отправить запрос с таким телом:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"is_active\": false\n}\nили\n{\n    \"is_active\": \"false\"\n}\nили\n{\n    \"is_active\": 0\n}\n\n</code></pre><p>В ответе возвращается обновленный объект mailing как в PUT /mailings/:id</p>\n","urlObject":{"path":["api_v1","mailings",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID рассылки</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"5182d2ae-4bc2-4508-a7c1-ca1880a3df10"},{"name":"/mailings/list","id":"6aab59fd-6549-4f36-999a-428715a28977","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": 0,\n    \"count\": 10,\n    \"conditions\": [\n        {\n            \"field\": \"unit.id\",\n            \"value\": \"b8b1f330-52cf-46c6-a41e-ab0f70a0cce5\"\n        }\n    ]\n}"},"url":"{{base_url}}/api_v1/mailings/list","description":"<p><strong>Получить рассылки по фильтру</strong></p>\n<hr />\n<p>Аналогичнао запросу POST /users/list</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>from - с какого найденного элемента выдавать результат.</p>\n<p>count - максимальное число элементов.</p>\n<p>sortField - поле сортировки, значения<br />[\"periodic\", \"last_run\", created, is_delete]</p>\n<p>sortDesc - сортировка по убыванию, значения \"true\", \"false\".</p>\n<p>conditions - условие отбора в виде массива [ {\"field\":\"значение\", \"value\":\"значение\"}, {... и т.д. ...} ].<br />значения для field - \"units_group.id\", \"unit.id\", \"is_active\", \"msg\"</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Получить первые 10 связей, отсортированные по возрастанию даты создания объект с ID равным b8b1f330-52cf-46c6-a41e-ab0f70a0cce5</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 10,\n    \"conditions\": [\n        {\n            \"field\": \"unit.id\",\n            \"value\": \"b8b1f330-52cf-46c6-a41e-ab0f70a0cce5\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 2,\n    \"list\": [\n        {\n            \"id\": \"afa8dc0f-4e8f-422d-9059-2fedb9039f4e\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"name\": \"New mailing\",\n            \"unit\": {\n                \"id\": \"b8b1f330-52cf-46c6-a41e-ab0f70a0cce5\"\n            },\n            \"report_template\": {\n                \"id\": \"76c4d2a4-5c89-494d-9c26-fbfcfa144601\"\n            },\n            \"periodic\": 2,\n            \"periodic_type\": {\n                \"key\": \"periodic_days\",\n                \"type\": null,\n                \"value\": null\n            },\n            \"weekdays\": [],\n            \"delivery_emails\": [\n                \"test@mail.ru\",\n                \"xyz@gmail.com\"\n            ],\n            \"last_run\": \"2020-10-05 10:25:45\",\n            \"msg\": \"Some message\",\n            \"is_active\": true,\n            \"_active\": true\n        },\n        {\n            \"id\": \"13b37095-f2eb-4c3f-804b-6f780281e398\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"name\": \"New mailing2\",\n            \"units_group\": {\n                \"id\": \"09581d93-a351-44de-9f33-1d4b0a1b0b48\"\n            },\n            \"report_template\": {\n                \"id\": \"76c4d2a4-5c89-494d-9c26-fbfcfa144601\"\n            },\n            \"periodic\": 2,\n            \"periodic_type\": {\n                \"key\": \"periodic_days\",\n                \"type\": null,\n                \"value\": null\n            },\n            \"weekdays\": [],\n            \"delivery_emails\": [\n                \"test@mail.ru\",\n                \"xyz@gmail.com\"\n            ],\n            \"last_run\": \"2020-10-05 10:25:45\",\n            \"msg\": \"Some message\",\n            \"is_active\": false,\n            \"_active\": false\n        }\n    ]\n}\n\n</code></pre><p>Еще один пример запроса:</p>\n<p>Получить первые 10 связей, отсортированные по возрастанию даты окончания по убыванию, связаные с водителем (пользователем) с ID 22ae4a3c-f742-460c-9479-63f08c81b5c3</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 10,\n    \"sortField\": \"date_to\",\n    \"sortDesc\": \"true\",\n    \"conditions\": [\n        {\n            \"field\": \"user.id\",\n            \"value\": \"22ae4a3c-f742-460c-9479-63f08c81b5c3\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 3,\n    \"list\": [\n        {\n            \"id\": \"f9c60641-0393-4345-aa2a-aadb869db3c9\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"unit\": {\n                \"id\": \"cc1c4c33-5895-4fec-9295-020ffcee9372\"\n            },\n            \"user\": {\n                \"id\": \"22ae4a3c-f742-460c-9479-63f08c81b5c3\"\n            },\n            \"date_from\": \"2021-01-01 10:00:00\"\n        },\n        {\n            \"id\": \"d604452b-9e9d-4e01-817d-b0d391138569\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"unit\": {\n                \"id\": \"7e1aaba2-625a-4a4c-b765-9934bec5a096\"\n            },\n            \"user\": {\n                \"id\": \"22ae4a3c-f742-460c-9479-63f08c81b5c3\"\n            },\n            \"date_from\": \"2020-11-01 10:00:00\",\n            \"date_to\": \"2020-12-01 18:00:00\"\n        },\n        {\n            \"id\": \"5acc2fd1-e63a-4c10-95d0-22eaf59439ae\",\n            \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n            \"unit\": {\n                \"id\": \"cc1c4c33-5895-4fec-9295-020ffcee9372\"\n            },\n            \"user\": {\n                \"id\": \"22ae4a3c-f742-460c-9479-63f08c81b5c3\"\n            },\n            \"date_from\": \"2020-09-01 10:00:00\",\n            \"date_to\": \"2020-10-01 18:00:00\"\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","mailings","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"6aab59fd-6549-4f36-999a-428715a28977"},{"name":"/mailings/:id","id":"a7527fa0-fccb-40d5-898c-6a5c95527e81","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"{{base_url}}/api_v1/notifications/:id","description":"<p><strong>Обновить данные рассылки</strong></p>\n<hr />\n<p>Обновляет переданные параметры</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>см метод POST /mailings</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Аналогичен одному объекту из возврата метода GET /mailings?ids=:id</p>\n","urlObject":{"path":["api_v1","notifications",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID рассылки</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"a7527fa0-fccb-40d5-898c-6a5c95527e81"},{"name":"/mailings/:id","id":"f83d87c2-c670-45ae-b20d-0555249bc616","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/mailings/:id","description":"<p><strong>Удаление рассылки</strong></p>\n<hr />\n<p>Удаление физическое.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","mailings",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID рассылки</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"f83d87c2-c670-45ae-b20d-0555249bc616"},{"name":"/mailings?ids=:ids","id":"4d5c1589-47eb-431b-82ba-1eb4a278534a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/mailings?ids=","description":"<p><strong>Планирование удаление рассылки</strong></p>\n<hr />\n<p>см. DELETE /units?ids=:ids</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","mailings"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"4d5c1589-47eb-431b-82ba-1eb4a278534a"},{"name":"/mailings","id":"893f1b10-1b96-46e9-af43-97c87bf5caf4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/mailings","description":"<p><strong>Планирование удаления рассылки</strong></p>\n<hr />\n<p>см. DELETE /units</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","mailings"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"893f1b10-1b96-46e9-af43-97c87bf5caf4"},{"name":"/mailings?ids=:ids","id":"445b989a-6822-428e-af1b-65ebddd196c3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/mailings?ids=","description":"<p><strong>Получение рассылок по их ID (через запятую)</strong></p>\n<hr />\n<p>Возвращает массив рассылок.<br />Если параметр 'ids' пустой (т.е. запрос = 'GET /units_trailers', без параметра), то вернётся список всех связей всех компаний пользователя, из которого исключаются удаленные связей. Если ids не пустой (т.е. запрос = 'GET /mailings?ids=00215-54021..,25541-454754-4513..'), то вернётся список только из запрошенных связей.</p>\n<p>Если в параметре ids содержится только один id, то вернется НЕ массив из 1 элемента, а конкретная связь.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>/mailings?ids=13b37095-f2eb-4c3f-804b-6f780281e398\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"13b37095-f2eb-4c3f-804b-6f780281e398\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"name\": \"New mailing\",\n    \"units_group\": {\n        \"id\": \"09581d93-a351-44de-9f33-1d4b0a1b0b48\"\n    },\n    \"report_template\": {\n        \"id\": \"76c4d2a4-5c89-494d-9c26-fbfcfa144601\"\n    },\n    \"periodic\": 2,\n    \"periodic_type\": {\n        \"key\": \"periodic_days\",\n        \"type\": \"periodic_type\",\n        \"value\": \"По дням\"\n    },\n    \"weekdays\": [\n        {\n            \"key\": \"monday\",\n            \"type\": \"weekdays_type\",\n            \"value\": \"Понедельник\"\n        },\n        {\n            \"key\": \"friday\",\n            \"type\": \"weekdays_type\",\n            \"value\": \"Пятница\"\n        }\n    ],\n    \"delivery_emails\": [\n        \"test@mail.ru\",\n        \"xyz@gmail.com\"\n    ],\n    \"last_run\": \"2020-10-05 10:25:45\",\n    \"msg\": \"Some message\",\n    \"is_active\": false,\n    \"_active\": false\n}\n\n</code></pre>","urlObject":{"path":["api_v1","mailings"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"445b989a-6822-428e-af1b-65ebddd196c3"}],"id":"86794a37-0007-47ba-9850-31e3083cc75f","_postman_id":"86794a37-0007-47ba-9850-31e3083cc75f","description":""},{"name":"Биллинг","item":[{"name":"/bill_create_order","id":"c296836a-4312-4edf-9e74-26d34f106baa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 3000,\r\n    \"start_recurrent\": 1,\r\n    \"skip_init_payment\": true\r\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/bill_create_order","description":"<p><strong>Запрос на получение данных для оплаты текущей компании на сумму, указанную в теле запроса</strong></p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"amount\": 300,\n  \"skip_init_payment\": true\n}\n\n</code></pre><p>Чтобы начать автоплатеж нужно указать start_recurrent=1</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"amount\": 300,\n  \"start_recurrent\": 1,\n  \"skip_init_payment\": true\n}\n\n</code></pre><p>В ответ приходят данные, которые необходимо преобразовать в формат <em><strong>www-form-urlencoded</strong></em> и отправить запрос</p>\n<blockquote>\n<p>POST </p>\n</blockquote>\n<p>в ответ на который вернется страница с формой для оплаты.</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"merchant\": \"60ddcdb9-a37a-438b-8a43-ba9e04400aff\",\n    \"amount\": 150,\n    \"order_id\": \"7f6e0b1e-4874-426e-849e-a47ff2cf4aba\",\n    \"custom_order_id\": \"297-7ee49\",\n    \"description\": \"Пополнение кошелька SKIF PRO\",\n    \"success_url\": \"https://pay.modulbank.ru/success\",\n    \"testing\": 1,\n    \"callback_url\": \"https://dev.skif.pro/api_v1/billing_success\",\n    \"receipt_items\": [\n        {\n            \"name\": \"Пополнение кошелька SKIF PRO\",\n            \"payment_method\": \"full_payment\",\n            \"payment_object\": \"payment\",\n            \"quantity\": \"1\",\n            \"sno\": \"usn_income\",\n            \"vat\": \"none\"\n        }\n    ],\n    \"unix_timestamp\": 1627568279,\n    \"signature\": \"60efe5ef7c1292efa0b0e10c44147f8ba408c488\"\n}\n\n</code></pre><hr />\n<p>Для Paybox</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"pg_merchant_id\": \"12345\",\n    \"pg_amount\": 3000,\n    \"pg_order_id\": \"d4ce08d6-7313-49dd-abb4-9d08b37096b9\",\n    \"pg_description\": \"Пополнение кошелька SKIF PRO\",\n    \"pg_success_url\": \"https://dev.skif.pro\",\n    \"pg_salt\": \"659bc044-a8d8-4da5-95a2-0a3fea31dd18\",\n    \"customOrderId\": \"612-9c00c\",\n    \"pg_testing_mode\": 1,\n    \"pg_result_url\": \"https://dev.skif.pro/api_v1/billing_success\",\n    \"pg_receipt_positions\": [\n        {\n            \"name\": \"Пополнение кошелька SKIF PRO\",\n            \"paymentMethod\": \"full_payment\",\n            \"paymentObject\": \"payment\",\n            \"price\": \"3000.0\",\n            \"count\": \"1\",\n            \"sno\": \"usn_income\",\n            \"vat\": \"none\",\n            \"tax_type\": 0\n        }\n    ],\n    \"unixTimestamp\": 1670310278,\n    \"pg_sig\": \"a7065338d399008135d354284ff0e388\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","bill_create_order"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c296836a-4312-4edf-9e74-26d34f106baa"},{"name":"/billing_success","id":"828ac47c-a9c9-4c3a-9e6e-9956bce88f7d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"testing","value":"1","type":"text"},{"key":"pan_mask","value":"220011**4440","type":"text"},{"key":"unix_timestamp","value":"1570161434","type":"text"},{"key":"salt","value":"DB9481A6554924BFD2F2279B5AD05B9D","type":"text"},{"key":"rrn","value":"927703219385","type":"text"},{"key":"transaction_id","value":"0EyuFLLZ9DagCXy8O67Q6x","type":"text"},{"key":"original_amount","value":"10.00","type":"text"},{"key":"auth_number","value":"2164219385","type":"text"},{"key":"amount","value":"10.00","type":"text"},{"key":"created_datetime","value":"2019-10-04 03:56:09","type":"text"},{"key":"auth_code","value":"201471","type":"text"},{"key":"signature","value":"622e1486dba17d05d080c6734131205a75d59188","type":"text"},{"key":"client_phone","value":"+79999999999","type":"text"},{"key":"client_email","value":"example@example.ru","type":"text"},{"key":"state","value":"COMPLETE","type":"text"},{"key":"order_id","value":"697144","type":"text"},{"key":"currency","value":"RUB","type":"text"},{"key":"merchant","value":"51cb8a0f-6fb8-4a20-98b1-9fd85dc47500","type":"text"},{"key":"payment_method","value":"card","type":"text"},{"key":"meta","value":"'{\"bill_id\": \"vlICmFjY7nST9KARa5RsSJ\"}'","type":"text"}]},"url":"{{base_url}}/api_v1/billing_success","description":"<p>Запрос который вызывается банковским сервисом, должен проходить по NO_ACCESS.<br />В теле запроса данные о подтверждении успешной транзакции в формате <em><strong>www-form-urlencoded</strong></em></p>\n<hr />\n<p><strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>testing:1\npan_mask:220011**4440\nunix_timestamp:1570161434\nsalt:DB9481A6554924BFD2F2279B5AD05B9D\nrrn:927703219385\ntransaction_id:0EyuFLLZ9DagCXy8O67Q6x\noriginal_amount:10.00\nauth_number:2164219385\namount:10.00\ncreated_datetime:2019-10-04 03:56:09\nauth_code:201471\nsignature:622e1486dba17d05d080c6734131205a75d59188\nclient_phone:+79999999999\nclient_email:example@example.ru\nstate:COMPLETE\norder_id:697144\ncurrency:RUB\nmerchant:51cb8a0f-6fb8-4a20-98b1-9fd85dc47500\npayment_method:card\nmeta:'{\"bill_id\": \"vlICmFjY7nST9KARa5RsSJ\"}'\n\n</code></pre>","urlObject":{"path":["api_v1","billing_success"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"828ac47c-a9c9-4c3a-9e6e-9956bce88f7d"},{"name":"/bill_set_billing","id":"c60f6f17-f5ea-4c26-a8e0-016f69ffd02b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n    // \"method\": \"history\",\r\n    // \"compnay_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\r\n    \"company_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\r\n    \"with_trial\": false\r\n    // \"amount\": 15,\r\n    // \"tariff\": {\r\n        // \"units\":4,\r\n        // \"price\": 200\r\n    // }\r\n}"},"url":"{{base_url}}/api_v1/bill_set_billing","description":"<hr />\n<p><strong>Роль:</strong> Редактор тарифа и выше.</p>\n","urlObject":{"path":["api_v1","bill_set_billing"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c60f6f17-f5ea-4c26-a8e0-016f69ffd02b"},{"name":"/bill_transactions","id":"00564703-bd83-4619-97e7-da9561b4cb8e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"max_rows\": 15,\n    \"first_row\": 5,\n    \"from\": \"2021-08-25 00:00:00\",\n    \"to\": \"2021-08-26 00:00:00\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/bill_transactions","description":"<p><strong>Получение списка транзакций в текущей компании</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"max_rows\": 100,\n  \"first_row\":100,\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"transactions\": [\n        {\n            \"id\": \"6dd2c369-9012-440a-a708-a65b7e6f12fb\",\n            \"timestamp\": \"2021-07-29 17:35:57\",\n            \"company_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\n            \"user_id\": \"null\",\n            \"amount\": 0,\n            \"amount_before\": 0,\n            \"amount_after\": 0,\n            \"order_id\": null,\n            \"custom_order_id\": null\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","bill_transactions"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"00564703-bd83-4619-97e7-da9561b4cb8e"},{"name":"/bill_tariff_history","id":"3747d13d-3893-4a40-b011-a9fb81691244","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"max_rows\": 100,\n  \"first_row\":0,\n  \"from\": \"2021-07-01 00:00:00\",\n  \"to\":\"2021-08-31 00:00:00\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/bill_tariff_history","description":"<p><strong>Запрос для получения списка истории изменений тарифов текущей компании</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"max_rows\": 100,\n  \"first_row\":100,\n  \"from\": 2021-07-29 17:35:57,\n  \"to\":2021-07-29 17:35:57\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"user_id\": \"98cf93bb-9312-46e2-97b6-f699ae7b3f06\",\n        \"user_name\": \"vlad\",\n        \"datepoint\": \"2021-07-29 18:12:50\",\n        \"new_tariff\": {\n            \"units\": 4,\n            \"price\": 200,\n            \"total\": 800\n        },\n        \"old_tariff\": {\n            \"units\": 3,\n            \"price\": 250,\n            \"total\": 750\n        }\n    },\n    {\n        \"user_id\": \"98cf93bb-9312-46e2-97b6-f699ae7b3f06\",\n        \"user_name\": \"vlad\",\n        \"datepoint\": \"2021-07-29 18:12:39\",\n        \"new_tariff\": {\n            \"units\": 3,\n            \"price\": 250,\n            \"total\": 750\n        },\n        \"old_tariff\": {\n            \"units\": 2,\n            \"price\": 200,\n            \"total\": 400\n        }\n    },\n    {\n        \"user_id\": \"98cf93bb-9312-46e2-97b6-f699ae7b3f06\",\n        \"user_name\": \"vlad\",\n        \"datepoint\": \"2021-07-29 17:35:52\",\n        \"new_tariff\": {\n            \"units\": 2,\n            \"price\": 200,\n            \"total\": 400\n        }\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","bill_tariff_history"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3747d13d-3893-4a40-b011-a9fb81691244"},{"name":"/bill_tariff","id":"c9244a55-7725-4abb-ab29-197dc162493b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"tariff\":{\n        \"units\": 1\n    }\n}"},"url":"{{base_url}}/api_v1/bill_tariff","description":"<p><strong>Создает тариф для текущей компании</strong></p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Редактор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"tariff\":{\n        \"units\": 1,\n        \"length\": 30,\n        \"price\": 300\n    }\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"amount\": 236,\n    \"rate\": 600,\n    \"company_status\": \"BLOCKED\",\n    \"valid_from\": \"2021-08-20 14:08:56\",\n    \"tariff\": {\n        \"units\": 2,\n        \"price\": 300,\n        \"total\": 600,\n        \"length\": 30\n    }\n}\n\n</code></pre>","urlObject":{"path":["api_v1","bill_tariff"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c9244a55-7725-4abb-ab29-197dc162493b"},{"name":"/bill_transaction","id":"01530aa9-9430-4bde-8e79-e85a88ca7704","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"amount\": 2501,\n    \"company_id\": \"0f90e21b-a5a9-4929-8d83-67951440df61\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/bill_transaction","description":"<p>Добавляет дилером транзакцию в компанию со статусом оплаты CASH.</p>\n<hr />\n<p>Используется для того, чтобы учитывать оплаты произведенные наличными.</p>\n<hr />\n<p><strong>Роль:</strong> Редактор тарифа и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n\"amount\": 2500,\n\"company_id\": \"0f90e21b-a5a9-4929-8d83-67951440df61\",\n\"custom_order_id\": \"12344\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","bill_transaction"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"01530aa9-9430-4bde-8e79-e85a88ca7704"},{"name":"/bill_tariff_admin","id":"d7d1900f-641a-4587-88a1-e3b83c886f97","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"companies\": [\n        {\n            \"id\": \"7bcba823-3aa4-455d-be8a-db04c39e9409\"\n        },\n        {\n            \"id\": \"fe371bd9-bba3-4c4a-b54b-b05fb77690c9\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/bill_tariff_admin","description":"<p><strong>Возвращает информацию о тарифе для списка компаний</strong></p>\n<hr />\n<p>Запрос без списка компаний возвращает транзакции по всем компаниям.</p>\n<hr />\n<p><strong>Роль:</strong> Редактор тарифа и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"companies\": [\n        {\n            \"id\": \"7bcba823-3aa4-455d-be8a-db04c39e9409\"\n        },\n        {\n            \"id\": \"fe371bd9-bba3-4c4a-b54b-b05fb77690c9\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"amount\": 370,\n        \"rate\": 9000,\n        \"company_status\": \"ACTIVE\",\n        \"valid_to\": \"2021-10-30 00:00:00\",\n        \"valid_from\": \"2021-10-28 09:07:28\",\n        \"tariff\": {\n            \"units\": 36,\n            \"price\": 250,\n            \"total\": 9000,\n            \"length\": 30\n        },\n        \"currency\": {\n            \"code\": \"RUB\"\n        },\n        \"company_id\": \"7bcba823-3aa4-455d-be8a-db04c39e9409\"\n    },\n    {\n        \"amount\": 0,\n        \"tariff\": {\n            \"units\": 0,\n            \"price\": 250,\n            \"total\": 0,\n            \"length\": 30\n        },\n        \"currency\": {\n            \"code\": \"RUB\"\n        },\n        \"company_id\": \"fe371bd9-bba3-4c4a-b54b-b05fb77690c9\"\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","bill_tariff_admin"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d7d1900f-641a-4587-88a1-e3b83c886f97"},{"name":"/bill_tariff_admin","id":"7028a881-b257-4d85-a828-795fe734808b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"company_status\": \"ACTIVE\" ,\n    \"valid_from\":\"2021-08-27 11:19:10\",\n    \"valid_to\": \"2021-08-27 11:24:09\",\n    \"tariff\": {\n        \"units\": 2,\n        \"price\": 20,\n        \"length\": 3002,\n    },\n    \"company_id\": \"7bcba823-3aa4-455d-be8a-db04c39e9409\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/bill_tariff_admin","description":"<p><strong>Изменение тарифа для компании</strong></p>\n<hr />\n<p><strong>Роль:</strong> Редактор тарифа и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"amount\": 0,\n    \"rate\": 500,\n    \"company_status\": \"ACTIVE\",\n    \"valid_from\": \"2021-10-28 10:19:17\",\n    \"tariff\": {\n        \"units\": 2,\n        \"price\": 250,\n        \"total\": 500,\n        \"length\": 30\n    },\n    \"currency\": {\n        \"code\": \"RUB\"\n    },\n    \"company_id\": \"483aafbf-7682-471c-8612-555dcb0ed584\"\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"amount\": 0,\n    \"rate\": 500,\n    \"company_status\": \"ACTIVE\",\n    \"valid_to\": \"2021-11-27 10:19:17\",\n    \"valid_from\": \"2021-10-28 10:19:17\",\n    \"tariff\": {\n        \"units\": 2,\n        \"price\": 250,\n        \"total\": 500,\n        \"length\": 30\n    },\n    \"currency\": {\n        \"code\": \"RUB\"\n    },\n    \"company_id\": \"483aafbf-7682-471c-8612-555dcb0ed584\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","bill_tariff_admin"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"7028a881-b257-4d85-a828-795fe734808b"},{"name":"/bill_stop_auto_pay","id":"c375406e-1f1c-4e5b-b807-72b41231e68a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"company_status\": \"ACTIVE\" ,\n    \"valid_from\":\"2021-08-27 11:19:10\",\n    \"valid_to\": \"2021-08-27 11:24:09\",\n    \"tariff\": {\n        \"units\": 2,\n        \"price\": 20,\n        \"length\": 3002,\n    },\n    \"company_id\": \"7bcba823-3aa4-455d-be8a-db04c39e9409\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/bill_tariff_admin","description":"<p><strong>Остановить автоплатежи для компании пользователя</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Читатель и выше.</p>\n","urlObject":{"path":["api_v1","bill_tariff_admin"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c375406e-1f1c-4e5b-b807-72b41231e68a"},{"name":"/bill_transactions_admin","id":"390cad4c-1585-4608-a397-2e5c3a304ef7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"companies\": [\n        {\n            \"id\": \"7bcba823-3aa4-455d-be8a-db04c39e9409\"\n        },\n        {\n            \"id\": \"fe371bd9-bba3-4c4a-b54b-b05fb77690c9\"\n        }\n    ],\n    \"max_rows\": 15,\n    \"first_row\": 5,\n    \"from\": \"2021-08-25 00:00:00\",\n    \"to\": \"2021-08-26 00:00:00\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/bill_transactions_admin","description":"<p><strong>Получение списка всех транзакций для списка компаний с пагинацией</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"companies\": [\n        {\n            \"id\": \"7bcba823-3aa4-455d-be8a-db04c39e9409\"\n        },\n        {\n            \"id\": \"fe371bd9-bba3-4c4a-b54b-b05fb77690c9\"\n        }\n    ],\n    \"max_rows\": 15,\n    \"first_row\": 5,\n    \"from\": \"2021-08-25 00:00:00\",\n    \"to\": \"2021-08-26 00:00:00\",\n    \"conditions\": [\n        {\"key\": \"payment_type\", \"values\": [\"CARD_DEPOSIT\", \"CASH_DEPOSIT\"]}\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 485,\n    \"transactions\": [\n        {\n            \"id\": \"7b145ed1-04ec-401a-a643-07dc2d45c693\",\n            \"timestamp\": \"2022-03-25 08:19:15\",\n            \"company_id\": \"41ee3ec9-185b-4af7-bfc0-ff370835b9b9\",\n            \"user_id\": null,\n            \"amount\": 0,\n            \"amount_before\": 0,\n            \"amount_after\": 0,\n            \"order_id\": null,\n            \"custom_order_id\": null,\n            \"operation_type\": \"TRIAL_ACTIVATION\",\n            \"currency\": {\n                \"code\": \"RUB\"\n            }\n        },\n        {\n            \"id\": \"kgKzLQdVTgJcVoEbOmKufd\",\n            \"timestamp\": \"2022-03-10 07:29:00\",\n            \"company_id\": \"7bcba823-3aa4-455d-be8a-db04c39e9409\",\n            \"user_id\": \"98cf93bb-9312-46e2-97b6-f699ae7b3f06\",\n            \"amount\": 55,\n            \"amount_before\": 870,\n            \"amount_after\": 925,\n            \"order_id\": \"0032a6ec-a8f6-416c-9647-a937b0f893a8\",\n            \"custom_order_id\": \"103-2c204\",\n            \"payment_type\": \"CARD\",\n            \"operation_type\": \"CARD_DEPOSIT\",\n            \"currency\": {\n                \"code\": \"RUB\"\n            }\n        },\n        {\n            \"id\": \"a58e22ed-c671-4c4c-812f-a6c0f091fc8d\",\n            \"timestamp\": \"2022-03-01 13:26:51\",\n            \"company_id\": \"8981e6d1-79d4-4030-9d60-e2701b37e796\",\n            \"user_id\": null,\n            \"amount\": -222,\n            \"amount_before\": 318,\n            \"amount_after\": 96,\n            \"order_id\": null,\n            \"custom_order_id\": null,\n            \"operation_type\": \"WITHDRAWAL\",\n            \"currency\": {\n                \"code\": \"RUB\"\n            }\n        },\n        {\n            \"id\": \"4028e3e3-fa5b-4e2d-8f40-ee6a9d624b77\",\n            \"timestamp\": \"2022-03-01 13:26:07\",\n            \"company_id\": \"8981e6d1-79d4-4030-9d60-e2701b37e796\",\n            \"user_id\": null,\n            \"amount\": -222,\n            \"amount_before\": 540,\n            \"amount_after\": 318,\n            \"order_id\": null,\n            \"custom_order_id\": null,\n            \"operation_type\": \"WITHDRAWAL\",\n            \"currency\": {\n                \"code\": \"RUB\"\n            }\n        },\n        {\n            \"id\": \"e3c08461-8ba3-4f46-b436-1f88fe23bd23\",\n            \"timestamp\": \"2022-03-01 13:23:49\",\n            \"company_id\": \"8981e6d1-79d4-4030-9d60-e2701b37e796\",\n            \"user_id\": null,\n            \"amount\": -222,\n            \"amount_before\": 762,\n            \"amount_after\": 540,\n            \"order_id\": null,\n            \"custom_order_id\": null,\n            \"operation_type\": \"WITHDRAWAL\",\n            \"currency\": {\n                \"code\": \"RUB\"\n            }\n        },\n        {\n            \"id\": \"4d5e983b-db17-4b29-8ee7-198c66b5159f\",\n            \"timestamp\": \"2022-03-01 13:21:09\",\n            \"company_id\": \"8981e6d1-79d4-4030-9d60-e2701b37e796\",\n            \"user_id\": null,\n            \"amount\": -500,\n            \"amount_before\": 1262,\n            \"amount_after\": 762,\n            \"order_id\": null,\n            \"custom_order_id\": null,\n            \"operation_type\": \"WITHDRAWAL\",\n            \"currency\": {\n                \"code\": \"RUB\"\n            }\n        },\n        {\n            \"id\": \"4b0ad5d3-6761-400b-a89b-8229426b8684\",\n            \"timestamp\": \"2022-03-01 12:57:30\",\n            \"company_id\": \"8981e6d1-79d4-4030-9d60-e2701b37e796\",\n            \"user_id\": null,\n            \"amount\": -246,\n            \"amount_before\": 1508,\n            \"amount_after\": 1262,\n            \"order_id\": null,\n            \"custom_order_id\": null,\n            \"operation_type\": \"WITHDRAWAL\",\n            \"currency\": {\n                \"code\": \"RUB\"\n            }\n        },\n        {\n            \"id\": \"d31e05ba-35c5-473b-be60-6ac503bc7cfa\",\n            \"timestamp\": \"2022-03-01 12:47:31\",\n            \"company_id\": \"8981e6d1-79d4-4030-9d60-e2701b37e796\",\n            \"user_id\": null,\n            \"amount\": -246,\n            \"amount_before\": 1754,\n            \"amount_after\": 1508,\n            \"order_id\": null,\n            \"custom_order_id\": null,\n            \"operation_type\": \"WITHDRAWAL\",\n            \"currency\": {\n                \"code\": \"RUB\"\n            }\n        },\n        {\n            \"id\": \"MDvUB6sV90PvV03QSBDsso\",\n            \"timestamp\": \"2022-03-01 12:47:16\",\n            \"company_id\": \"8981e6d1-79d4-4030-9d60-e2701b37e796\",\n            \"user_id\": \"98cf93bb-9312-46e2-97b6-f699ae7b3f06\",\n            \"amount\": 1500,\n            \"amount_before\": 254,\n            \"amount_after\": 1754,\n            \"order_id\": \"2829e663-682a-4806-bd80-9b839e43af3e\",\n            \"custom_order_id\": \"13-70652\",\n            \"payment_type\": \"CARD\",\n            \"operation_type\": \"CARD_DEPOSIT\",\n            \"currency\": {\n                \"code\": \"RUB\"\n            }\n        },\n        {\n            \"id\": \"6c8de8b5-50af-47d8-b32d-5064254e82cf\",\n            \"timestamp\": \"2022-03-01 12:46:46\",\n            \"company_id\": \"8981e6d1-79d4-4030-9d60-e2701b37e796\",\n            \"user_id\": null,\n            \"amount\": -246,\n            \"amount_before\": 500,\n            \"amount_after\": 254,\n            \"order_id\": null,\n            \"custom_order_id\": null,\n            \"operation_type\": \"WITHDRAWAL\",\n            \"currency\": {\n                \"code\": \"RUB\"\n            }\n        },\n        {\n            \"id\": \"FsZGSq9QABMVTEhs0IjWBU\",\n            \"timestamp\": \"2022-03-01 12:46:46\",\n            \"company_id\": \"8981e6d1-79d4-4030-9d60-e2701b37e796\",\n            \"user_id\": \"98cf93bb-9312-46e2-97b6-f699ae7b3f06\",\n            \"amount\": 500,\n            \"amount_before\": 0,\n            \"amount_after\": 500,\n            \"order_id\": \"4176e398-06ea-472d-a959-166e38a1f1db\",\n            \"custom_order_id\": \"13-e953c\",\n            \"payment_type\": \"CARD\",\n            \"operation_type\": \"CARD_DEPOSIT\",\n            \"currency\": {\n                \"code\": \"RUB\"\n            }\n        },\n        {\n            \"id\": \"509e2cc1-72b5-41c9-8120-01fe8b3168d9\",\n            \"timestamp\": \"2022-02-22 10:07:39\",\n            \"company_id\": \"8981e6d1-79d4-4030-9d60-e2701b37e796\",\n            \"user_id\": null,\n            \"amount\": -500,\n            \"amount_before\": 500,\n            \"amount_after\": 0,\n            \"order_id\": null,\n            \"custom_order_id\": null,\n            \"operation_type\": \"WITHDRAWAL\",\n            \"currency\": {\n                \"code\": \"RUB\"\n            }\n        },\n        {\n            \"id\": \"sps3w0Kn5osyE0jl9UTwa3\",\n            \"timestamp\": \"2022-02-22 10:07:39\",\n            \"company_id\": \"8981e6d1-79d4-4030-9d60-e2701b37e796\",\n            \"user_id\": \"98cf93bb-9312-46e2-97b6-f699ae7b3f06\",\n            \"amount\": 500,\n            \"amount_before\": 0,\n            \"amount_after\": 500,\n            \"order_id\": \"f7a007d9-7a4e-467d-8ce8-61ce72c8c2b2\",\n            \"custom_order_id\": \"222-13a58\",\n            \"payment_type\": \"CARD\",\n            \"operation_type\": \"CARD_DEPOSIT\",\n            \"currency\": {\n                \"code\": \"RUB\"\n            }\n        },\n        {\n            \"id\": \"b65c8bf5-3f2b-4611-acdc-6da4f67a8e08\",\n            \"timestamp\": \"2022-02-22 09:49:18\",\n            \"company_id\": \"3c6e77d4-4dcb-456f-b67c-62ed8cc62aa8\",\n            \"user_id\": null,\n            \"amount\": -500,\n            \"amount_before\": 500,\n            \"amount_after\": 0,\n            \"order_id\": null,\n            \"custom_order_id\": null,\n            \"operation_type\": \"WITHDRAWAL\",\n            \"currency\": {\n                \"code\": \"RUB\"\n            }\n        },\n        {\n            \"id\": \"HUUfhpRxEbtMMb6AAPEf9G\",\n            \"timestamp\": \"2022-02-22 09:49:18\",\n            \"company_id\": \"3c6e77d4-4dcb-456f-b67c-62ed8cc62aa8\",\n            \"user_id\": \"98cf93bb-9312-46e2-97b6-f699ae7b3f06\",\n            \"amount\": 500,\n            \"amount_before\": 0,\n            \"amount_after\": 500,\n            \"order_id\": \"876cee04-b94a-450a-b896-84c0990a3cd6\",\n            \"custom_order_id\": \"222-336fd\",\n            \"payment_type\": \"CARD\",\n            \"operation_type\": \"CARD_DEPOSIT\",\n            \"currency\": {\n                \"code\": \"RUB\"\n            }\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","bill_transactions_admin"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"390cad4c-1585-4608-a397-2e5c3a304ef7"},{"name":"/bill_transactions_admin_excel","id":"fe372d7a-8b00-4d8f-8adf-18270d1b4364","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/bill_transactions_admin_excel","description":"<p>Экспорт транзакций для списка компаний с пагинацией</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST /bill_transactions_admin_excel?body={<br />\"companies\": [<br />{<br />\"id\": \"7bcba823-3aa4-455d-be8a-db04c39e9409\"<br />},<br />{<br />\"id\": \"fe371bd9-bba3-4c4a-b54b-b05fb77690c9\"<br />}<br />],<br />\"from\": \"2021-08-25 09:00:00\",<br />\"to\": \"2021-08-26 19:00:00\"<br />}</p>\n<p>В теле запроса необходимо отправить следующие поля:</p>\n<p>companies - списко выбранных компаний, необязательное</p>\n<p>from - начала периода</p>\n<p>to - окончания периода</p>\n<hr />\n<p>В ответе возвращается эксель файл</p>\n","urlObject":{"path":["api_v1","bill_transactions_admin_excel"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"b2669150-d596-413d-87b5-5c6db990343c","name":"/bill_transactions_admin_excel","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"first_row\": 0,\n    \"max_rows\": 100,\n    \"timezone_key\": \"UTC+3\",\n    \"from\": \"2024-04-01 00:00:00\",\n    \"to\": \"2024-05-01 00:00:00\",\n    \"dealer\": {\n        \"id\": \"c5e63357-6b63-4ea4-8b91-beb53f749f69\"\n    },\n    \"conditions\": [\n        {\"key\": \"payment_type\", \"values\": [\"CARD_DEPOSIT\", \"CASH_DEPOSIT\"]}\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://dev5.skif.pro/api_v1/bill_transactions_admin_excel"},"status":"OK","code":200,"_postman_previewlanguage":"raw","header":[{"key":"Server","value":"nginx/1.22.1","enabled":true},{"key":"Date","value":"Thu, 30 May 2024 14:18:52 GMT","enabled":true},{"key":"Content-Length","value":"12249","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Request-Time","value":"321","enabled":true},{"key":"Content-Disposition","value":"attachment; filename=bill-2024-04-01_000000-2024-05-01_000000.xlsx","enabled":true}],"cookie":[],"responseTime":null,"body":"PK\u0003\u0004-\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0018\u0000\u0000\u0000xl/worksheets/sheet1.xml��[s\u001bW���\n��4�;��4a��֙n�O�=�gZ\u0004%�I�AB�����倧2\u0013���݉�\u001d�ٕ]�\u001f��\r`���ߏ\u000fg�^^��O��{?\\����>�o�>�?��o����?>���~����j�9�.������f������/�Ǜ�\u001f�ϫ��r�~y��l�������eus�/z|��_]�/\u001fo��\u000f\u000e?��O<�ww��V��?}}\\=m\u000e&/���Ͷ��/�ϯ�\u001f���\u0010_���\u001f6������������j�=�|^�����y�o~[��\u001f�������\u000f?o\u001b������\u000f�.��w���\u0015�6�������O���W��~��ռ>�m�?��?w�\b��ϯΏF����ǲ�~�mk�����\u000f��X�����e��0ڂخ����u���\u001e�x��g�7�������͗���\u001f���d����>}}ݬ\u001f?\b����\u0011�X�n\u0016���σ��j��\u0006oV���z\r��0�5�^�Q�\u001a�y}��8Y�߬�W��5I^����5M^����^�Y�yM�תw��v/��}�\u0006���n��6�n��;��\b��ݎo�݋�{oǷ��ű��p�\u0001v/��}�.�;�\u0003�\u0017��F�K���Qh���fs��������\u0000��\u001e�>�^l��gۂ����\u000fW�.��\u0015m�o��������f��酇o\u000bo���aM�������l���/Q�\u0012\u0003\\�\u0017]b�K�u�\u0011.��%ƸD�KLp����\u0014�\b��\f���.��\u0010��4'\u0016ɛ~�H{b\u0011ڬ�'\u0016���<�\bm���\"�e�E�w�����\u0018�~:,M��\b�/ �֟�k�7�\u0002j�Km�>\u0011��\u0014����O��pD+m��фVۂ3�\u0005�ɂ�L�ibA\u0004��7�\u00133\u0000��\u0007M�\u000e\u001c�اw�ܺ�ޱ�JއAd�^C\u0001*�\"44�v\u001bP'��`Lk�\u0006���K���\u0005\u0011 N� NM��F�\u000e�8\u001d Z�O���u\u0015��r@b\r�\f�k(@%C�\r]\f��Р|�G\\�f�0\u000eU.���\u001b'\u0016D�8{�83\u0003�._\u001d4q:`����u\u001d]��C,���?�\u0015���U�Jfi��IK\r5�K��4m�k\u0010i^z��7Q,�����\u0015=��]��)\bh\u0012��@\u0014�\u0001\u001d$�`,�&֒s\r�\u0000u�\nX�H�+\u0006�ܢ1�8\u0010\u001fd���\u001d(�T$�v������m\n�R%Q�\u0012Q�>�c-\u0018�\u001e���!\u001flAU�^S\u0001k\u0005�mJ�:\u001d��+<a\u001e>ں��;O,��������\r��\u0010dV%Q�\u0012O�\u000e��\u000b��v_`-\u001fqAU�^W\u0001k\u0005��J�z-�h,Da :�.���\u001d(�T$:�D\u0007f\n:TTI\u0014�DԪrI\u000bƼy\u0016P;��\u001a����U�Z!\n]���\u0016e��m�[��Lt�[���;S,�\b�-��y����A��*�b��ZU�Zc�jk��\\��@��\nX+P�+~75(3�\u0016�\u0005*�$�R��sg�%\u0015��2ԑ�����[�\n*�\b�<�K�\u0005T\u000f9G\u0000U�z}\u0005�\u0015�0�`B'�\u0006���-�s�\u0000��^b-_��SŒ�ds6��?�\u000e%U�\u0012Y\b>�2\t����\u001d�zkt\u0016�^W\u0001k����b�zC:o�\u0016�e�����ҭ�ܩbIE�9+�AN�iQR�-q��.y��|��=\u0016���[��d��\u0002�\nY�טw�\u0006�\u0011�-vM��kT��\n�p�f�%\u0015����\u0007I\u000f\u0007HI\u0015��ժ�\u00153$�\n�t\u0018�AU�^[\u0001k\u0005�mK�5 \u000b�\u0016�\u0016���\u0001l��`�f�%\u0015��8�\u0007\u0019\u000b\u0007JI\u0015��\u0015�\u001b9\f�3C��c�x5\u001a\u000bT����\u0002�6�=\n�ٕt9\n��\u001c�a*�g�j;w�XR�y^N����p��Tq;`\u0005u�7��L�\u000b,�{VP\u0005��T�ZƊ��f\u001c�5�\u0000\u0007\n-�3X��o]��Ν+�T\u0004�å�MT�\u0013�\u0004�\u0010m$�V���9:3X(��1�*X����\u0002�K���[�\u0015�0\u000f�K��s�%\u0015��t�\u000f�\n�UI\u0015�\u0004Ԫ��zY�\u0002k��\n�\u0012��\nX+D��ތ\u001f�5�\u0000��-�\u000bY��O�nm��\u0015K*�\u001dd���p̔TqKd�*WL�,dm-?m�AU�^W\u0001k���j�\u0011t��\\0��P������v�L��\"�\u001c3�!X�)�▨�9\u0013:\u000bU[�w�5:\u000bU����B\u0015���d\r�\u001cC��-Ta&�t�[۹3Œ�Tsδ����\u0018�����[�jU=\nC�#Tm��YA�>�]\u0005�\u0015��Uo�W\u0012\r/���\u0016��,�E[۹sŒ�ds�Է�\no�*��Ȃ�\t\":\u000bY[;�+&7gr�\nX+dmW����pH�#I���\u0015�\"u��v�T��\"ל3�m���qUR�-qus&p�<\u0002�'r���Ln[\u0001k\u0005�mk��W��Xnqd�#p&�hrc&w�XR\u0011k���6V�\u000f�UI\u0015��ժS�\u0002sp�\u00031�Ҷ�AU�^W\u0001k���ꂓ�\u0006e�h\u0002o�Ya&\u000e���Ν)�T��S���U��B�TqKT��T!e\u0012�P+y�\u001b3�]\u0005�\u0015�\u0010#�5x�2Co�[��L�Ex��;S,�@u�C��\rU�r�J��\u001d��:�Kap\u0016�X˧VP���U�Z�\n]�؀*Lљ��D�.��Ν(�Td���T���J��%�V�=\u0015��)��Y\u0015Te�u\u0015�V�ڮ.��\u0006eޑ[�\u0016�0\u0013�U��Ν)�T��C���Tx]UR�-Q��D�T7d��\u0019�5:\u000bU����B\u0015��\u001b����Eo�\n3q\u0014��v�L��\"�A�j\u0013\u0015�\\y�TqKTA�[\u001bpV��v�Q\u0004�J��*`�P��\u0006�y��t��i�]��T\u001cF���;U,��5GL\u0003���s�*�▸ZU�\bpV��v�a\u0004����*`�p��z�+\u000e#x\u0001N+Z�\u0017�0\u0017�\u0011nm��\u0015K*��1���*���*���ZuƟ�\u0006g%\u000b��\\��d��\u0002�\nY��E��oȆ\u0017�}֋��q.���[۹sŒ�ds�4��\n9�J��%�V�M4\u0007g%kkg�15P���U�Z!\u000b]����lh\u0001٩[�\u0017��\u001b�0K��s\u0007�%\u0015��i`�\u0015��L�TqKh���h\u000e�2�\u0002���J5�\n��+`���}]�\u0007��lh\u0001ٯ[𗸉\u0006�d\u0002�\u0005�7X,�\b7�M\u0003\u001b�������[�\u000b�\\CAts�.T_q8\u0001���\u001a\u000bX+tmc��^F�.�Y-�+[\u001c��\t,\u0016��X��\"ۜ:\rl��_⪒*n��U%\"\u0006�\u0013h���6Q\r����\nX+hqb�n@�\b�ř\u0005,\u000eEǲ%\u0016\u000bXo�XR\u0001�0\u0007OC\u001b���[�Tq;�\u0005U����E�+�A\u0016�n_\u0001k\u0019,��gr\rn\u0010�[����P|\u0015��\f�\u001d*�T\u0004�ӧ��[��\u001fUR�-�\u0005��?�\b�r\u0019��,� +X����\u0002ֶ%X��[4��^�D�S�ŝ;Q,�H5�OC\u001b��wM���[�jU�̘�3o�\u0005:�g�k�\u0015��V�Z�\nm���Q7�\u0000_\u0019��/lq0�*���\u001d,�Td;�lm��_���*n��U9z����\u0005g��r\r����\nX+lm[\u0017�i6(�P-z\u000bW\u001c��\n��s��%\u0015��\fjh#\u0017�&r�TqK\\���X�|�\u0018�9�AV�^c\u0001k�,��'�\u0006d9\u0005�8��cq(jl��B�\u001b*�T$�3���\\x�*��Ȃ*�<`�l\u0016T�Y\u0005�\\���+`���m\tV��\u0016�e���x�\u0016w�D��\"՜?\rm�n��*n��U��5\u0007g=\u000e�3o�\u001ad�@\u001fݶ\u0002�\nTۖ\u001eF\u001a��8ݢ��ũ8�p�;w�XR\u0011lN��6j�{�*���ZU\u001e��3?�^�3\u0012�\u0006Y�zm\u0005�\u0015��-���ܢ�@ŉ8�p�;w�XR\u0011jN��6b��v��*n\t*��ls\u000e�|i��b9�����W�Z�j�\u0012�^�-\u001a\u000bU���[ܹ\u0013Œ�Ts�4�x��\u0016B�D\u0015T~�;\u0007k\u0006��b9��y��W�Z�\nm�cv�\u001e��\u001d�\u0005+tŏʖnq�\u0014K*`\u001d�id�\u0015\u001e�J��\u001d���\u001bh\u000e�rjEg~�T�5Su�\nX�T�-�\riP�Z�f�4\u0014�Y���\u001d*�T�æ�MW��K���[�jU��\u0001g�\n��̡\u0006Y�zm\u0005�\u0015���\u0001�S\r�|gТ�pš���\u0016w�P��\"�\u001c7�l�¿�R%U�\u0012WP9Z�����b>���`��\u0002�\nXۖ`�zn�X��D$/��Ν(�T�:�Tm�¿IS%U�\u0012UP9���5o�\u0005\u0015��\u0015d���\u0015�V�b[W�\u0011¡�E�\u001c߷�\u000e\u0001\f��>�t�;w�XR\u0011pN�F6_�\u001fܩ�*n\t0\u0004;��Br#|��o�k�\u0016�^[\u0001k��m�?�Ԁ*'�\u0016�\u0005+�$gY��sg�%\u0015��id�\u0015�c��*n\t�U9#���\u0004\u0000\u000b�曬\u001ad���\u0015�V�ھ.�C~j��\u0002��\u0016�%K���T\u000b�\u0002�\u001b,�T��S��\rY�ǔ���[�\u000b!��n��|M^�����\nX+lm[��4��\u001eݢ��8\u0012?^w�;w�XR�j��F\u0010�p�TqKT����uV���Wn5�J�k+`�P�mm�X�Rd�\u000b�\u001e�G�4\u0018?aw�;w�XR�mN�F6j�\u001b�*��؂*WQ\u0010���\u0018�\u0015��<�}\u0005�\u0015�\u0018.�ɰA]>\u000eՂ�\u001e�q,��\u0007\u0016\u000bZo�XR\u0011m��F6n��?��*n\t�U�m1\u0007�\u0013h����5Ȋ��+`����Ioh�,��-�,`q(Z�\u0012�\u0005�7T,�\u0000v�\u0003��\r\\��*��v\u0000\u000b��e���,ЙO\u00045Z3W�����\u0015��\u001f*j@�sp�δ�k\u001a�?9�\u0016w�H��\"�\u001c?�m��?�W%U�\u0012U���h\u000e�r�Eg>N� +U����B\u0015��M�G\u0011\u001a^�?6Ӣ����荱t�;w�XR�m���6s�C�TqKl�*WP��x\u0016��o�\u001ad.��\u0015�V�ڶ�\u0017H����\u0017�K�\u0016��-\u000eF��-���bIE����f.�{�UR�-����us(t�\u0015� +[�����ֶu�\u001f���\u001bZ@��/lq0��r�;w�XR�mΠ�6t�N���[bkU�\u0014\u00058��\u0015\u0016��_\u001f�AV�^c\u0001k��m������\u0016���{M3�%\u0014\u0016\u000bXo�XR\u0011lN��6r�[%U�\u0012X\bT��\u0018�u\u0013-Л��5�\n�k,`������o\u0003�\\;�8��š�2ʍ�ܡbIE��c�f.�\u001e��*n��U�,�9�\u0015��7Ak����V�Z�jے�!6 \u000b�\u0016G\u0016�8�\\BA�p���%\u0015��\u0010jl#\u0017�m���[�jU�j��4�@c��S�\u0015��U�Z�j����\u0006e���Ă\u0015��ƖX,X��bIE�9\u001a۴�\u000f\u001cUR�-a�0E�Zg�]�Y~�\u0014d��\u0015�V�b�$\\�,�[\u001cY��Pr��O�P��\"�\u001c>�m��G�*�▸��\u00138�uՂ�I�AV�^[\u0001k�+\f,X�*�[�X�b[r��FO�L��\u0002�I��&^\u0012S%U�\u000eXA\u0015��,7;��WM \u000bV�����\u0015��ȫ���Tq`�J]�5\u0013\u00163Uw�XR�j��&6h�s\\�TqKT��ǫ98\u001f��$�,��u\u0013�J�k-`��������;�%Z��\u001a������-�ܹbIE�9}�ج���UR�-ᵪ��;�\f\u0017���\td��5\u0016�V���\u0004��u�3\u000bXl��Z�ŝ;S,�\bv��ڠ��a���[\u0002kU\u0005\u000bѓ��\u0017�͗O$Ӆ�G��\u0000����\tY��\u0016W�\u0017\u000f�$�\u00167�����%\u0015���ib�\u0016����*n\t�U\u0015�u�m�@o��КV-h��\u0002��֋�����\u0016�(��\u00166�����%\u0015���ib�\u0016�B��*n\t�U\u0015�u��&Z�5�ThMk\u0016�^c\u0001T%k\u001b\u001brc\rȧ�b��\u0016e9��6\u0013��X��\"ۜ>Ml��W�UR�-�\u0005�\u001fv��zv�\u000f\u0003F\u0007ZA\r��n��\u0002�\n_�ۨ5��9�o`��a\u0019�iq-�pM���f�X8{�Œ��s\u001a5��\u000bߎTI\u0015��\u0019T�l�\u000b�с?�\f�r��\u000bX+�mo�\u0003C:�6����B�k\u0011��!G7K,\u0016��x��\"�\u001cOMl\u001c��hUR�-q\u0006U9C>u�38��R�����\u0002�\ng�����6t\u0003˜~/��\u0016�㑼�b��\u0017K*r�q���3|\u0013Z%U�\u0012gP���.p\u0006\u0007ފ5���k.`�p���\u000f\f��5����B�k\u0011�8\u001e\u0015/�X8{�Œ\n��9�����oʫ��ہ3��\u0019�OsF\u0007��5���m.`-s��z\u0007��i\u001bX��{�ŵ0g\u001a�V��b��\u0017K*rΉ�Ԧ7�;TI\u0015��\u0019T�l�\u000b��A~_\u0015d��5\u0017�V8c��CH\u0006\r,r����J\u00043NǗaX,���bIE�9ٚ�$���*��0�����i�`�r\r�R�z\u000bX+�mk�=A�\"\u0018,r���:\u00042v��`(\u000bdo�XR\u0011� C��\u000eGMUR�-A�DG [�Ӑ!���\\%�!{�\u0005�\u0015��ژ;k`���\u0016� ��w��BY\u0010{�Œ��s�5��\u000e'\u000fUR�-!�dG\u0010[듄!���]%�\t{�\u0005�\u0015�^��wm��-l�k��BY�zCŒ�ls�5�P��\u0016\u0002��\u0016R%���9X��]P-?{ ��zm\u0005�\u0015��+��ܢ�0Ŏ��%���\u001b(�Td�c���r8'��*n�)�4�����d���\u0005V�k����X�Z�j\u001b������\u0005�J�E{�����\u0012e���\u0015K*�����\u00068��WI\u0015�\u0004\u0017�\u0019�k�/����r�\u0014@����:\u000bd�tmg=��\u001b�\\�h/tq��%�Bכ+�T��\u0013���m�9H�TqKt!�\u0011�\u0010h�&\\`���*����+�5�u�j@V�-�\u000bY\\5?WBY�zSŒ�ds�5�A\r?ݩ�*n��U�~p\u000e�r�ń��[�,\\��\u0002Y3W���{\b�D�\u0002rHvc+Z;?VBY�z�Œ\nhg9���l�\u001fpUI\u0015�\u0003ZP�cW��h��/?��2�u�\ndMh�+��e�*CEg�J륶�(3Tw�XR\u0011jΨf6����*�■Z�?x6\u0007g>�.����ۮQ\u0016�^[���*���U�\b�\u0017��EZ�5�������\u001d,�Td�����_�Al�TqKl1�!\u0002s�V�XL\bj�\u0005��W�Z�k�\u001a��4ڐ΍��.hq,�*���\u001d+�TD;�hm��\u000f����[B�q\u0014��DG�b��A\u0005ʂ��+`��������\u0006u�E�\u0016�\u0005-��Q�[ܹcŒ�hs\f5��\u000b?V��*n\t-D*|m\f�}���\u0002��{�5���k,`�������\u0006��-�\u000b[\u001c��\b�ŝ;V,��6�P3\u001b��g\n���[b���\u001c���~�tA��^�,p��\u0002�\n\\��D�(\r轾,Т��Ź�A�[ܹsŒ�ts 5��\u000bP�J��%�\u0018�\b]k}�.��c ����Y�Z�k\u001bSx\r�J�Ew�\u000b*op�\u0016w�X��\"�\u001cH�l��\u001f\u0013��*n\t.�2\u0002\u0017r�\u0013p�\\~s\u0017e��u\u0016�V�Bc\u0002�\u0001]��.pq,���;w�XR\u0011nΣf��p\u001e�TqKpA���\u0004k�q\u0001�}��]����V�Z!\u000by��g<�>H\u0017�G{�\u000e���5�Wܹ�Œ�|s*5�!\f��J��%�\u0010��5\u0015�R'�]����Q\u0016�^c\u0001k��mLv\\��\u0016�%�����ͤܙbI\u0005�ۆ���^\u001b��J\u001de1<�EY���\u001bjA\u0006�c�5�\f�o/P5#��2�@��\u0013g\u001e���Hg��p�(\u0013�U�^\u001b�\u001cV\u001de1<�\u0006���h~\u00125D7�ˤ+j��@Պ�v�w�Խ,В��\u0006��ʿd]P{�ŢL�st�{mP�au������|e1G�\u001d�S�!͑_`�\u000e���u���Xء�����+p���\u0011�Jܛ/\u0016e\">0�m�×\u001a�Q\u0016�#q+� n��?\u000b,��o��ڕ��] {�m���\r�'����+l���ͺ��ƋE�`�k�����(��\u00116�|^��;?�^`y_~��׮���\u0002�+l\n��#~�֜X��v-O��Qד7��ܛ2\u0016eb����k\u0018J�\u0017�#t+��&t?�WX��\u001fŭI�ӷ�]�j�\u000e��f�ԉ���R-��:�&��v�w�|�(\u001fp_�~Y�6��ln>�{\\�|^U���W���eu����ޏ�������㢿���-~�����y�|��z��z�Y?�?��a�eȻ�z�z��k{�����}����n�_����������9�^\u001e|]m�>�=�<�^~������z~����a�jw]zw��m������^����������&n}�_\u001f�د�����j���yx]����p��ϟ�n�r�Y��u�r�z��l��O�ϟ�/����ͮ��D���g��ww���{��?w���VOG�û���ǽ�vs��ۗ\u0007�ß�^ەm��m���\u001e��\u0006PK\u0007\bXA\u001c��\u001b\u0000\u0000\u0000\u0000\u0000\u0000��\u0000\u0000\u0000\u0000\u0000\u0000PK\u0003\u0004-\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0013\u0000\u0000\u0000[Content_Types].xml���N\u00021\u0010�_���\u0016�0ưp��RI�\u0007��,��S:\u0005��]\u000e�\u0004Q\u0012��v�����v4Y{�V���P�\u0018p\u0006AGcü�\u001f���3,*\u0018�b��o\u0000�d<�m\u0012 #m�����\u0007)Q��\u0015�� P��٫B�<�I酚��\u001d\f�@(U�<�x�\u0004�Z��t�͑�!g��ƎUs���Z\u0015��U0G�jG\u0010��{��\to��˓���;`�{��dk�MU.��S�\\;���`�K�!�8�t\"jl\u001a��D��$\u0011�2(�-@�N�����-G�8�z���\u000f�W̋�\u0018\u0017�fw��ʆ��f��2�r����\u001c��昐\u001et��\u0003�_l��\u0012\u0019A.���\u000fD��\u001cxtc�>�\u0001s�-��=�\u0006PK\u0007\b�\u0006\u0010\u000b@\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u001d\u0004\u0000\u0000\u0000\u0000\u0000\u0000PK\u0003\u0004-\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0010\u0000\u0000\u0000docProps/app.xmlM��\n�0\u0014D�dߦ�\u0010�4� �]�[��m\u001bHnBr�~���c9s��vv�x@L�c�VU�\n@�{�c�ΧC�e�\u0014��\u0003D2����԰�(�8Oz\u0002�R�1f2��\u0014�\u0018G��h�{}w���u��0\u0013`\u000f}\u0019��L�.\u0004k��� o��+E�I�H���e{y��,���,�OS>\u0001PK\u0007\b�$/X�\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0000\u0000\u0000\u0000\u0000\u0000\u0000PK\u0003\u0004-\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0011\u0000\u0000\u0000docProps/core.xmlm�MO�0\u0010��\n�\u001dZ`1�\u0006؃fO����x1��l#�H;���-�b�z��}��̴�\u001d��|�\u000fʚ��\u0019#\t\u0018i{e���w�tK����b�\u0006\u001ab,ٵ�t\\Z\u000f��:� $Qc\u0002��!\u0007D�)\r�\u0000Z�,\u0012&���k���\u0003uB��\u0001h��\u0005Հ�\u0017(�,L�j$'e/W�{��\"�%�\u00114\u0018\f4�r��\"x\u001d�mX��<\u0006�R�4eS�pq��>�\\�-ç�̫K m}Rs�A �I\u0014p�t�\"?�Cyy��I[�b��*-Y�ox��U���ꩦ\u001c���m}����\u0019�0AH�\u0011f|Mkzv��\u000bPK\u0007\b�\u0011ѫ\r\u0001\u0000\u0000\u0000\u0000\u0000\u0000�\u0001\u0000\u0000\u0000\u0000\u0000\u0000PK\u0003\u0004-\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000b\u0000\u0000\u0000_rels/.rels���N�0\f@%�}u7$�в]\u0010�n\b�\u000f0��Fm�(\t��=ဠ�\u0018=Ʊ��-��4�w�ɉװ�jP�X�;\r/���\u000eT��-��YÙ\u0013\u001c\u000f�g\u001e)��Ի�Ta����9�#&��D������\u0012'��\u0019;\fd\u0006�\u0018wu}��7\u0003�Lu�\u001a��ހj΁װ�m��\u00071o\u0013�|�\u0005��[��\u0010K}̢̮\u001a�\u001dg\rV�S\t'�\u0010��\u0006�l�[o���8q&K��H��>_\u0019ׄ���_�2��f\u001e�C��*2|���\u0006\u000e�PK\u0007\b�\"B��\u0000\u0000\u0000\u0000\u0000\u0000\u0000J\u0002\u0000\u0000\u0000\u0000\u0000\u0000PK\u0003\u0004-\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0000\u0000\u0000xl/workbook.xml���n� \u0010D\u0005m��\u001ap�F�c�KU)����wl�\u0018ŀ\u00054��\u0017\u001bE�z���iG�S�f g�A;ˡX0 h;'�=r�<�=m`��\u0017�O�s'��6p�c\u001c+JCף\u0011a�F�颜7\"&�G\u001aF�B�\u001e1��.\u0019[S#���P��t8�t����6hc.�8����^�\u0001��><�\"b��J\u000eJ\f\u0001�6�t��x\t��DtQ�� Z\u000el��_�y��\n�\u001c\u001e\u001f�e��\u0013Vm\u0006�Q.�=g�36[ �Ғ���\u0015��j�����>HTڢ|O/��?z\u001b��\u0000PK\u0007\b�����\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u0001\u0000\u0000\u0000\u0000\u0000\u0000PK\u0003\u0004-\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u001a\u0000\u0000\u0000xl/_rels/workbook.xml.rels��Mk�0\f@���}q��\u0018�n/c����\u0000c+qh\"\u0019K�迟���@\u0007;�$��{\u000f��~Γy�\"#���i� \u0005�#\r\u000e^�O7�`D=E?1�\u0003b�n��8y�?$�YLE�8H���Z\t\tg/\rg����^�\f6�p�\u0003�U���r΀%�좃��\u001d��/\u0003�\u0003I�`|�Rˤ��:f����~\f���mF�\u000bv����\u001c�:���ׯ�������p9HB�Sy\u001dݵK~\u0004�\u0018����\u000bPK\u0007\b�\u0003;��\u0000\u0000\u0000\u0000\u0000\u0000\u00003\u0002\u0000\u0000\u0000\u0000\u0000\u0000PK\u0003\u0004-\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0014\u0000\u0000\u0000xl/sharedStrings.xml�Y�n�8\u0012\u0015�\u000b�I�)�J�-��{��\u0007�$�5\u001a[Y�\t�>�\r��krHi���5��3��|\u000fI?�����{w��0�>��=��ܩ\u001d���˧������j�\u001b/��ٗ��>�?ܸ���i\u001c/;@��O����k��0�_�ю�ë;\u0001�\u001f�G{���/\u000f����n������ \u0018+\u001e��p�����t�U9/������7�����|\u000f�\u001c��.Ͽ��6\\\u001e���bz(>=�~�MO;t�\u001f��`�\u001f��1�|z�<?=�UnW\u0012L�;\u0006o�c���3aw���Д�\b���H}�x��BcPa�t~ �B\u001aZQ�Z������\u0006��\u0002p������S\n�9rJ\u0006r���\u0010�nWY\u001c�P�\n��.TE��U}R�@I�o���B4m\u0016���/<\u001d:�*.p*�\r\fTMZl\u0018�f���ҒH��\u0000\u0019�\u000e�j�\u000b=��� �\"�@D��\u0000�\u0018���|EZ���x��\u0015�Xc*�@���H\u0012\u0006�:��;�a/A Qεt�\u0007�d=8%[����ƀT�|R��E!\u000b\u0002�\u0014���\u0014_2:(��[\u0004���M���\f�����8�5�ǀ�Ëbǋ��Z\u0012\u0016\u000f��e\u0010^�����f����E\u0011D�v���\u0016\b�\u0006�\u001f�c��=�\f��o�����Ą��\u0018����ŧ�};\u001cc.t��\u0013c\u0007�F����\u0015+\r�D\u0014䔏\u0016V��0��������T�/,�%\u0016/�\u0015}�n�\u0003k�ڔn��\u0016�D�?r�E-�Z��e��\u000f�n��tpy�\u000b�*�����<~;����!��ե&, �e�b1�\u001b���[��\f��t\u0017���3��s���\u00171K\u001e^>���;�}ǅ��R����^^����P�&�\u0011�ш�ɘp\u001c^��~1����/6�\u0013YAR%�C\u001b֖1\u0001,��\"�DR��*C\b1�\u0013/M�J4�\u0010B��\u0005\t��vM�n`��`\u000b��\u0010B,d\u0007)\f��\u0005k����:\u0005\u0018�]�\u001c���Y<��C\n�\u001e3�\u000et��\u0015M�b�\u000f{<�����ux�g<�ڡbL֒��s�,�_!\u0016���\u00018*�Pk�*\u000f�%����R��\t��lFbk�.�t\r�\u001b\u0012\u0003�-�\u0002�Uk�\u0002�ѵ.k��GV�#\u0001��@mp\u0016$�\u0015/ �\t�XM�\t+�\t[«'\u0004�M\u0016hUU\u001d\u0015\u001a`��YRgV�!�\u0010\u000b]0��\fnh��XIr�c9w|c]QՉ~���\u0010��0EpN�ew�\u001e��\u0015��.%���#fʙ�kH�P,�f�}�3$^^��t��\u0002�����\u001b��3+6}�mc�䚴��XM@郩�L��)[�\u001aL��LѴ�iV�F�\r���\r\u001cFV\t{�\u0016��\u000e�HB3ItUµ\u0001\u0016Ғ%S�3�- �\u0000\u000b�%=�l!7�\u0000�GRՀ�h*��\u0013e�L�u0i9um�-3\u0019#�jɺ�)��'�����\u0001\u0005�W+U��Ԋ*\f\u001c����w¦wG�5\u0005U(�\u0016��?y�l[�\u0004a���\u001b��Ijz�%���\u001a`uF#㊊�,\",D ���\u0010\u0015%H\u0005o�\u001eVQ+Sk�E�7\u0012eKk�\u001fF9��XfzcS9^mc�I_\n�SB�e�uU�{��8t�mW�\u0019�\u001fU�\f���P\r�3��V�^üL��/\u001c���68�-�\r�{�\r�xe�ˁC�F}#�d��\r�m�Q�2W$�r\u0005��GX(��\u0003{����\u0004lzd��$�L@�ZŶ\u0014R5K����=�4���H:�a�Vq�\\ŗ�ѫ�\u0010+��\tA��P�Bl.�m߷�I�k%3\u0005̌N4�\u0010+2X�ʆ\u001a\u0013byf�+�3k�eՄ���ئ��qDXV�$�u���\u0002�~��:몍uE6�%�����Ǘ��\u0002�i�x�8���\u0017\u0018=�]�lV��\f\u0017\"QJ�-p���/���\u001cd���ō\u0017���ޟ�b\u00127~+ª�f�����DIy����l��9b\u0016�ժ�9?��7��u\u001c���sJ���Z�k\u0002��t��+=dE�(~bI�y,�m����RO\u0001V��\u0010\u0002Œ���\nNf���\u0013K\u0012p�\n��E�`���Xݘ�(D�I_9�򇬟X\"�c�\u0010K\u0015\"XAX&�ےN��̹�\b5}��]\u000b�KFꖉ3�W�i�M7�΢\u001ek�l���\u001f�b\u0016�U~G\u001a\u0013(6�R���\u0016֏�e*!���c�t�����\u00051��;h���\u0003��5`5�D!Pf�7\t�[&�b^�϶|�<�<\u0001�\u001ba�~\\��u�mzbO���f]�\u001b\u0012X�UI?\u0016��\r�=��\u000f��-\rI�\b\u000b����we��˅�9\u0018���\r�{X���ڈe�q!��]���`\u0005�3p؎��:�.I\u0019�V�b�K�\u001d\u0007��LC\f�x\u001b�^�w�پ~�\u0017U\u0015�b\u0016������F6Ms}Ht�aީ�����2�kH�e����7m�a\u001c/��\u0006PK\u0007\bVl\\��\u0007\u0000\u0000\u0000\u0000\u0000\u0000�%\u0000\u0000\u0000\u0000\u0000\u0000PK\u0003\u0004-\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\r\u0000\u0000\u0000xl/styles.xml�SMK�0\u0010�+!wM[QD�.�B��\n^�m�\u0006�Q�(��zg��,�\n��L��{yI'��\u0015y\u0017�Kk*�_g�\b��N���/���=�ԥ\u000fG%�F!\u0002�z�+:�0=0��Qh��$\fdz�4\u000f�t\u0003�\u0013��HҊ\u0015Yv�4��֥yӍ\u000e���̈́�f\u0000�\u0019��ޚ%U�\u0004��\u000f��\u00158\u0004�\u0019eu�Ze\u001dqþ�M�Ł��Z��\u001dWr�$�,i����Z�аT�l�\u0006\r\u0003P�\u0013\u000fA8������q\u0012\u00155ֈ$\u0013�~�\u001e\u001c?����\t�*١�a��i\u001bG\u0014Y\u0011ϒq����\u0015ַ���T�\u000f@wr\u0018q\u000evb�\f�j\b:�\u0007k��\rN�5��\u0006�h\u0018c\u00030�f��T\u0004�\u0006�\u0019�N[^�\u0012���9��B�'$���3�@?�$��c��H�ǞB��9L2i��k����ū��,9�g�����.��|a\u0013>M긍)L��F��aq\u0019_\u001e\u00020-O��\u0004PK\u0007\b�n�\\�\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0015\u0004\u0000\u0000\u0000\u0000\u0000\u0000PK\u0001\u0002-\u0000\u0014\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000XA\u001c��\u001b\u0000\u0000��\u0000\u0000\u0018\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000xl/worksheets/sheet1.xmlPK\u0001\u0002-\u0000\u0014\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000�\u0006\u0010\u000b@\u0001\u0000\u0000\u001d\u0004\u0000\u0000\u0013\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000+\u001c\u0000\u0000[Content_Types].xmlPK\u0001\u0002-\u0000\u0014\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000�$/X�\u0000\u0000\u0000�\u0000\u0000\u0000\u0010\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u001d\u0000\u0000docProps/app.xmlPK\u0001\u0002-\u0000\u0014\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000�\u0011ѫ\r\u0001\u0000\u0000�\u0001\u0000\u0000\u0011\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u001e\u0000\u0000docProps/core.xmlPK\u0001\u0002-\u0000\u0014\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000�\"B��\u0000\u0000\u0000J\u0002\u0000\u0000\u000b\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�\u001f\u0000\u0000_rels/.relsPK\u0001\u0002-\u0000\u0014\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000�����\u0000\u0000\u0000�\u0001\u0000\u0000\u000f\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0012!\u0000\u0000xl/workbook.xmlPK\u0001\u0002-\u0000\u0014\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000�\u0003;��\u0000\u0000\u00003\u0002\u0000\u0000\u001a\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000L\"\u0000\u0000xl/_rels/workbook.xml.relsPK\u0001\u0002-\u0000\u0014\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000Vl\\��\u0007\u0000\u0000�%\u0000\u0000\u0014\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000p#\u0000\u0000xl/sharedStrings.xmlPK\u0001\u0002-\u0000\u0014\u0000\b\u0000\b\u0000\u0000\u0000\u0000\u0000�n�\\�\u0001\u0000\u0000\u0015\u0004\u0000\u0000\r\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�+\u0000\u0000xl/styles.xmlPK\u0005\u0006\u0000\u0000\u0000\u0000\t\u0000\t\u0000?\u0002\u0000\u0000�-\u0000\u0000\u0000\u0000"}],"_postman_id":"fe372d7a-8b00-4d8f-8adf-18270d1b4364"},{"name":"/bill_stop_auto_pay","id":"b03b8d49-05d4-40fc-8695-68cf9c862862","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/bill_stop_auto_pay","description":"<p><strong>Остановка автоплатежа для компании</strong></p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Параметры ответа:</strong></p>\n<p>В случае успешного отключения возвращается код 200 c пустым body.</p>\n<p>Если не добавлена карта или не включен автоплатеж, то возвращается ошибка.</p>\n<p>Пример ошибки:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 4220,\n    \"field\": \"\",\n    \"message\": \"Карта не добавлена\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","bill_stop_auto_pay"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b03b8d49-05d4-40fc-8695-68cf9c862862"},{"name":"/bill_start_auto_pay","id":"dfe3bde5-a560-4d52-ac13-6dc979408d33","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/bill_start_auto_pay","description":"<p><strong>Включение автоплатежа для компании</strong></p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Параметры ответа:</strong></p>\n<p>В случае успешного включения возвращается код 200 c пустым body.</p>\n<p>Если не добавлена карта или уже включен автоплатеж, то возвращантся ошибка.</p>\n<p>Пример ошибки:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 4220,\n    \"field\": \"\",\n    \"message\": \"Карта не добавлена\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","bill_start_auto_pay"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"dfe3bde5-a560-4d52-ac13-6dc979408d33"},{"name":"/bill_remove_card","id":"af8af361-b682-4418-adea-7a462aeb9a5a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/bill_remove_card","description":"<p><strong>Удаление сохраненной карты</strong></p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Параметры ответа:</strong></p>\n<p>В случае успешного удаления возвращается код 200 c пустым body.</p>\n<p>Если не добавлена карта, возвращается ошибка.</p>\n<p>Пример ошибки:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n\"code\": 4220,\n\"field\": \"\",\n\"message\": \"Карта не добавлена\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","bill_remove_card"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"af8af361-b682-4418-adea-7a462aeb9a5a"}],"id":"70031c9b-98ce-4f24-86da-3e75a5aa12cf","description":"<p>Методы для интеграции с сервисом биллинга</p>\n","_postman_id":"70031c9b-98ce-4f24-86da-3e75a5aa12cf"},{"name":"Терминалы","item":[{"name":"/terminals","id":"311bc19b-8f1a-4e4a-add7-d7f5c9d1790c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"company_id\": \"a786d1e0-5cc2-4e3d-a1f6-2c8ae06f9a39\",\n    \"imei\": \"12345678910\"\n}"},"url":"{{base_url}}/api_v1/terminals","description":"<p><strong>Создание нового терминала в компании</strong></p>\n<hr />\n<p><strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"company_id\": ID компании, обязательно\n\"imei\": Imei, текст, обязательно,\n\"password\": Пароль, текст, необязательно,\n\"is_blocked\": true, если блокирован, необязательно\n\"use_lbs_for_coords\": true, если определение координат по GPS должно дополняться координатами по LBS\n\n</code></pre><hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"company_id\": \"a786d1e0-5cc2-4e3d-a1f6-2c8ae06f9a39\",\n    \"imei\": \"12345678\",\n    \"password\": \"xyz\",\n    \"use_lbs_for_coords\": true\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Возвращается созданная запись</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"da47b5da-d030-44f0-acc4-a43107dbb090\",\n    \"company_id\": \"a786d1e0-5cc2-4e3d-a1f6-2c8ae06f9a39\",\n    \"imei\": \"12345678\",\n    \"password\": \"xyz\",\n    \"use_lbs_for_coords\": true\n}\n\n</code></pre>","urlObject":{"path":["api_v1","terminals"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"311bc19b-8f1a-4e4a-add7-d7f5c9d1790c"},{"name":"/terminals_bulk","id":"61849639-223d-49eb-9a7b-9254d493ea8c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"companies\": [\n      {\"id\": \"d852f0ef-ed7e-490b-866d-a6f1a1eb354f\"},\n      {\"id\": \"6b994029-6aa1-4e87-9207-36056ca890dd\"}\n    ],\n    \"imeis\": [\"11345679\", \"113456710\"],\n    \"password\": \"xyzt\"\n}"},"url":"{{base_url}}/api_v1/terminals_bulk","description":"<p><strong>Создание нескольких терминалов в компании</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"companies\": Список компании, обязательно\n\"imeis\": список Imei, текст, обязательно,\n\"password\": Пароль, тектс, необязательно\n\n</code></pre><hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"companies\": [\n      {\"id\": \"d852f0ef-ed7e-490b-866d-a6f1a1eb354f\"},\n      {\"id\": \"6b994029-6aa1-4e87-9207-36056ca890dd\"}\n    ],\n    \"imeis\": [\"11345679\", \"113456710\"],\n    \"password\": \"xyzt\"\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Возвращается созданные записи</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"id\": \"a4f71782-9ccf-4da2-a132-303c27c48707\",\n        \"company_id\": \"d852f0ef-ed7e-490b-866d-a6f1a1eb354f\",\n        \"imei\": \"11345679\",\n        \"password\": \"xyzt\"\n    },\n    {\n        \"id\": \"99d307f0-5c20-45bf-a6b7-d261d75327cc\",\n        \"company_id\": \"d852f0ef-ed7e-490b-866d-a6f1a1eb354f\",\n        \"imei\": \"113456710\",\n        \"password\": \"xyzt\"\n    },\n    {\n        \"id\": \"84797aa9-0aad-459a-80ac-9cd2601b587b\",\n        \"company_id\": \"6b994029-6aa1-4e87-9207-36056ca890dd\",\n        \"imei\": \"11345679\",\n        \"password\": \"xyzt\"\n    },\n    {\n        \"id\": \"f4a42e66-27eb-4e98-b51d-4f36de23458a\",\n        \"company_id\": \"6b994029-6aa1-4e87-9207-36056ca890dd\",\n        \"imei\": \"113456710\",\n        \"password\": \"xyzt\"\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","terminals_bulk"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"61849639-223d-49eb-9a7b-9254d493ea8c"},{"name":"/terminals?ids=:ids","id":"d700af52-e125-48df-9a7d-4f60b3279d7e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/terminals?ids=","description":"<p><strong>Поиск imei по ID</strong></p>\n<hr />\n<p>Возвращает массив терминалов компании</p>\n<p>Если в параметре ids содержится только один id, то вернется не массив из 1 элемента, а конкретный терминал.</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>/terminals?ids=da47b5da-d030-44f0-acc4-a43107dbb090\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"da47b5da-d030-44f0-acc4-a43107dbb090\",\n    \"company_id\": \"d88cb614-7d0e-48d5-ba95-0001825d68a8\",\n    \"imei\": \"123456\",\n    \"password\": \"xyz\",\n    \"use_lbs_for_coords\": false\n}\n\n</code></pre>","urlObject":{"path":["api_v1","terminals"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"d700af52-e125-48df-9a7d-4f60b3279d7e"},{"name":"/terminals/:id","id":"e3366a30-7eec-44a8-9019-51fd14eb00ef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"1a2e1319-abfc-4406-ae1e-dc348937ef5c\",\n    \"company_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\n    \"imei\": \"43235674543234534532\",\n    \"password\": \"\",\n    \"is_blocked\": false,\n    \"company_name\": \"0Одуванчик\",\n    \"use_lbs_for_coords\": false,\n    \"use_previous_param_value\": true\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/terminals/:id","description":"<p><strong>Обновить данные терминала</strong></p>\n<hr />\n<p>Обновляет переданные параметры</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>см метод POST /terminals</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Аналогичен одному объекту из ответа метода GET /terminals?ids=:id</p>\n","urlObject":{"path":["api_v1","terminals",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID терминала</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"e3366a30-7eec-44a8-9019-51fd14eb00ef"},{"name":"/terminals/batch","id":"b4962dc8-867b-4634-9d53-aba050c65482","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"terminals\": [\n        {\n            \"id\": \"d799058e-1be8-4404-b476-6b5e49d4844a\"\n        },\n        {\n            \"id\": \"3f6f01f0-edcd-4942-94e5-45dd8e293150\"\n        },\n        {\n            \"id\": \"56760481-d045-4091-9b5d-ad092c14a69e\"\n        }\n    ],\n    \"is_blocked\": true\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/terminals/batch","description":"<p><strong>Обновить данные терминала</strong></p>\n<hr />\n<p>Массовое обновление некоторых полей выбранных терминалв</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Боди запроса:</strong></p>\n<p>terminals - Список терминалов</p>\n<p>is_blocked - true для блокировки, false для разблокировки</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Возвращаются обновленные терминалы</p>\n<p>Пример запроса:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"terminals\": [\n        {\"id\": \"d799058e-1be8-4404-b476-6b5e49d4844a\"},\n        {\"id\": \"3f6f01f0-edcd-4942-94e5-45dd8e293150\"},\n        {\"id\": \"56760481-d045-4091-9b5d-ad092c14a69e\"}\n    ],\n    \"is_blocked\": true\n}\n\n</code></pre><p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"id\": \"d799058e-1be8-4404-b476-6b5e49d4844a\",\n        \"company_id\": \"bfbb4c66-4242-4997-8905-425245d8136f\",\n        \"dealer_id\": \"17d41d6f-a8ae-4644-9793-92988604746a\",\n        \"imei\": \"3528480xxxxxxxx\",\n        \"is_blocked\": false,\n        \"use_lbs_for_coords\": false,\n        \"use_previous_param_value\": false\n    },\n    {\n        \"id\": \"3f6f01f0-edcd-4942-94e5-45dd8e293150\",\n        \"company_id\": \"bfbb4c66-4242-4997-8905-425245d8136f\",\n        \"dealer_id\": \"17d41d6f-a8ae-4644-9793-92988604746a\",\n        \"imei\": \"3528480xxxxxxxx\",\n        \"is_blocked\": false,\n        \"use_lbs_for_coords\": false,\n        \"use_previous_param_value\": false\n    },\n    {\n        \"id\": \"56760481-d045-4091-9b5d-ad092c14a69e\",\n        \"company_id\": \"d5fbe5f4-5d68-41bc-bb43-2dea42569fdb\",\n        \"dealer_id\": \"17d41d6f-a8ae-4644-9793-92988604746a\",\n        \"imei\": \"3528480xxxxxxxx\",\n        \"is_blocked\": false,\n        \"use_lbs_for_coords\": false,\n        \"use_previous_param_value\": false\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","terminals","batch"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b4962dc8-867b-4634-9d53-aba050c65482"},{"name":"/terminals/:id","id":"48ffb111-045d-42c2-b0fd-2b4b3f55a908","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/terminals/:id","description":"<p><strong>Удаление терминала компании по его ID</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id записи</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong> 200</p>\n<p>Если терминал с таким id не найден, то возвращается ошибка 422</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 422,\n    \"field\": \"id\",\n    \"message\": \"Параметр не найден в базе\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","terminals",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID терминала</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"48ffb111-045d-42c2-b0fd-2b4b3f55a908"},{"name":"/terminals?ids=:ids","id":"f51ba4f0-128f-4e1b-95b6-95ec14c27310","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/terminals?ids=","description":"<p><strong>Планирование удаления терминалов компании по их ID</strong></p>\n<hr />\n<p>См. DELETE /units?ids=:ids</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n","urlObject":{"path":["api_v1","terminals"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"f51ba4f0-128f-4e1b-95b6-95ec14c27310"},{"name":"/terminals/list","id":"2b2697a8-da2b-46c6-a900-cad81409a6e8","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true}},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": 0,\n    \"count\": 2,\n    \"sortField\": \"imei\",\n    \"conditions\": [\n        {\n            \"field\": \"imei\",\n            \"value\": \"123\"\n        }\n    ],\n    \"companies\": [\n        {\"id\": \"6c1a0092-9f99-4fb0-a2f3-37eb8db08b31\"}\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/terminals/list","description":"<p>Поиск терминалов по фильтру</p>\n<hr />\n<p>Аналогично запросу POST /users/list</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>from - с какого найденного элемента выдавать результат.</p>\n<p>count - максимальное число элементов.</p>\n<p>sortField - поле сортировки, значения<br />[imei]</p>\n<p>sortDesc - сортировка по убыванию, значения \"true\", \"false\".</p>\n<p>conditions - условие отбора в виде массива [ {\"field\":\"значение\", \"value\":\"значение\"}, {... и т.д. ...} ].<br />значения для field - imei</p>\n<p>companies - список компаний в которых искать терминал</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Получить первые 2 imei компании 36c52c2b-64a0-45dd-a75f-3c723fffee77 или 95f38fda-b8b5-4754-8fa2-07fadb72637d имеющие подстроку \"123\"</p>\n<p>Если у пользователя роль не супервизор, то возвращается только imei компании пользователя.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 2,\n    \"sortField\": \"imei\",\n    \"conditions\": [\n        {\n            \"field\": \"imei\",\n            \"value\": \"123\"       \n        }    \n    ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 9,\n    \"list\": [\n        {\n            \"id\": \"fcdb331c-4e27-4fb3-91b6-443330dbef2c\",\n            \"company_id\": \"6c1a0092-9f99-4fb0-a2f3-37eb8db08b31\",\n            \"imei\": \"862531040831233\",\n            \"password\": \"123456\"\n        },\n        {\n            \"id\": \"0ad9df34-ce6e-4665-a1f8-f6e2d93d5d1e\",\n            \"company_id\": \"6c1a0092-9f99-4fb0-a2f3-37eb8db08b31\",\n            \"imei\": \"862531042812348\",\n            \"is_blocked\": true\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","terminals","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"2b2697a8-da2b-46c6-a900-cad81409a6e8"},{"name":"/terminals_logs?from=&max=&terminal_id=<terminal_id>","id":"9007a100-742d-4f68-87d3-ec45063d5067","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true}},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": 0,\n    \"count\": 2\n}","options":{"raw":{"language":"json"}}},"url":"https://dev.skif.pro/api_v1/terminals_logs?from=&max=&imei=","description":"<p><strong>Получение лога терминала</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>imei - IMEI терминала<br />from - начальный индекс записи, начинается с нуля<br />max - максимальное количество записей</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p>Пример запроса:</p>\n<p><a href=\"https://dev.skif.pro/api_v1/terminals_logs?from=0&amp;max=10&amp;imei=862531046859196\">https://dev.skif.pro/api_v1/terminals_logs?from=0&amp;max=10&amp;imei=862531046859196</a></p>\n<p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"imei\": \"862531046859196\",\n    \"date\": \"2022_03_28\",\n    \"report\": {\n        \"name\": \"Сырые данные\",\n        \"key\": \"pureparams\",\n        \"max_rows\": 1531,\n        \"columns\": [\n            {\n                \"key\": \"№\",\n                \"name\": \"№\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"datepoint\",\n                \"name\": \"datepoint\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"satellites\",\n                \"name\": \"satellites\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"altitude\",\n                \"name\": \"altitude\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"speedkph\",\n                \"name\": \"speedkph\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"angle\",\n                \"name\": \"angle\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"TEMP_1\",\n                \"name\": \"TEMP_1\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"INFO_MES\",\n                \"name\": \"INFO_MES\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"PWR_EXT_PARAM\",\n                \"name\": \"PWR_EXT_PARAM\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"longitude\",\n                \"name\": \"longitude\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"LONGITUDE_TAG\",\n                \"name\": \"LONGITUDE_TAG\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"DIN1\",\n                \"name\": \"DIN1\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"ANGLE_TAG\",\n                \"name\": \"ANGLE_TAG\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"ALTITUDE_TAG\",\n                \"name\": \"ALTITUDE_TAG\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"DINX_MODE\",\n                \"name\": \"DINX_MODE\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"UNIXTIME\",\n                \"name\": \"UNIXTIME\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"SPEED_TAG\",\n                \"name\": \"SPEED_TAG\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"SATELLITES_TAG\",\n                \"name\": \"SATELLITES_TAG\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"PWR_INT_PARAM\",\n                \"name\": \"PWR_INT_PARAM\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"latitude\",\n                \"name\": \"latitude\",\n                \"is_visible\": true\n            },\n            {\n                \"key\": \"LATITUDE_TAG\",\n                \"name\": \"LATITUDE_TAG\",\n                \"is_visible\": true\n            }\n        ],\n        \"rows\": [\n            {\n                \"№\": 1,\n                \"satellites\": \"15\",\n                \"altitude\": \"80\",\n                \"speedkph\": \"0\",\n                \"angle\": \"14\",\n                \"datepoint\": \"2022-03-28 12:30:37\",\n                \"TEMP_1\": \"2443\",\n                \"INFO_MES\": \"306\",\n                \"PWR_EXT_PARAM\": \"4178\",\n                \"longitude\": \"37.634151458740234\",\n                \"LONGITUDE_TAG\": \"37.634151458740234\",\n                \"DIN1\": \"2\",\n                \"ANGLE_TAG\": \"14\",\n                \"ALTITUDE_TAG\": \"80\",\n                \"DINX_MODE\": \"2\",\n                \"UNIXTIME\": \"1648470637000\",\n                \"SPEED_TAG\": \"0\",\n                \"SATELLITES_TAG\": \"15\",\n                \"PWR_INT_PARAM\": \"14727\",\n                \"latitude\": \"55.70588302612305\",\n                \"LATITUDE_TAG\": \"55.70588302612305\"\n            },\n            {\n                \"№\": 2,\n                \"satellites\": \"15\",\n                \"altitude\": \"80\",\n                \"speedkph\": \"0\",\n                \"angle\": \"14\",\n                \"datepoint\": \"2022-03-28 12:30:07\",\n                \"TEMP_1\": \"2443\",\n                \"INFO_MES\": \"306\",\n                \"PWR_EXT_PARAM\": \"0\",\n                \"longitude\": \"37.634151458740234\",\n                \"LONGITUDE_TAG\": \"37.634151458740234\",\n                \"DIN1\": \"2\",\n                \"ANGLE_TAG\": \"14\",\n                \"ALTITUDE_TAG\": \"80\",\n                \"DINX_MODE\": \"2\",\n                \"UNIXTIME\": \"1648470607000\",\n                \"SPEED_TAG\": \"0\",\n                \"SATELLITES_TAG\": \"15\",\n                \"PWR_INT_PARAM\": \"14713\",\n                \"latitude\": \"55.70588302612305\",\n                \"LATITUDE_TAG\": \"55.70588302612305\"\n            },\n            {\n                \"№\": 3,\n                \"satellites\": \"14\",\n                \"altitude\": \"80\",\n                \"speedkph\": \"0\",\n                \"angle\": \"14\",\n                \"datepoint\": \"2022-03-28 12:29:37\",\n                \"TEMP_1\": \"2443\",\n                \"INFO_MES\": \"306\",\n                \"PWR_EXT_PARAM\": \"0\",\n                \"longitude\": \"37.634151458740234\",\n                \"LONGITUDE_TAG\": \"37.634151458740234\",\n                \"DIN1\": \"2\",\n                \"ANGLE_TAG\": \"14\",\n                \"ALTITUDE_TAG\": \"80\",\n                \"DINX_MODE\": \"2\",\n                \"UNIXTIME\": \"1648470577000\",\n                \"SPEED_TAG\": \"0\",\n                \"SATELLITES_TAG\": \"14\",\n                \"PWR_INT_PARAM\": \"14713\",\n                \"latitude\": \"55.70588302612305\",\n                \"LATITUDE_TAG\": \"55.70588302612305\"\n            },\n            {\n                \"№\": 4,\n                \"satellites\": \"13\",\n                \"altitude\": \"80\",\n                \"speedkph\": \"0\",\n                \"angle\": \"14\",\n                \"datepoint\": \"2022-03-28 12:29:07\",\n                \"TEMP_1\": \"2437\",\n                \"INFO_MES\": \"306\",\n                \"PWR_EXT_PARAM\": \"522\",\n                \"longitude\": \"37.634151458740234\",\n                \"LONGITUDE_TAG\": \"37.634151458740234\",\n                \"DIN1\": \"2\",\n                \"ANGLE_TAG\": \"14\",\n                \"ALTITUDE_TAG\": \"80\",\n                \"DINX_MODE\": \"2\",\n                \"UNIXTIME\": \"1648470547000\",\n                \"SPEED_TAG\": \"0\",\n                \"SATELLITES_TAG\": \"13\",\n                \"PWR_INT_PARAM\": \"14727\",\n                \"latitude\": \"55.70588302612305\",\n                \"LATITUDE_TAG\": \"55.70588302612305\"\n            },\n            {\n                \"№\": 5,\n                \"satellites\": \"15\",\n                \"altitude\": \"80\",\n                \"speedkph\": \"0\",\n                \"angle\": \"14\",\n                \"datepoint\": \"2022-03-28 12:28:37\",\n                \"TEMP_1\": \"2437\",\n                \"INFO_MES\": \"400\",\n                \"PWR_EXT_PARAM\": \"0\",\n                \"longitude\": \"37.634151458740234\",\n                \"LONGITUDE_TAG\": \"37.634151458740234\",\n                \"DIN1\": \"2\",\n                \"ANGLE_TAG\": \"14\",\n                \"ALTITUDE_TAG\": \"80\",\n                \"DINX_MODE\": \"2\",\n                \"UNIXTIME\": \"1648470517000\",\n                \"SPEED_TAG\": \"0\",\n                \"SATELLITES_TAG\": \"15\",\n                \"PWR_INT_PARAM\": \"14713\",\n                \"latitude\": \"55.70588302612305\",\n                \"LATITUDE_TAG\": \"55.70588302612305\"\n            },\n            {\n                \"№\": 6,\n                \"satellites\": \"15\",\n                \"altitude\": \"100\",\n                \"speedkph\": \"0\",\n                \"angle\": \"150\",\n                \"datepoint\": \"2022-03-28 12:28:17\",\n                \"SATELLITES_TAG\": \"15\",\n                \"TEMP_1\": \"2437\",\n                \"ALTITUDE_TAG\": \"100\",\n                \"latitude\": \"55.70598220825195\",\n                \"LATITUDE_TAG\": \"55.70598220825195\",\n                \"SPEED_TAG\": \"0\",\n                \"ANGLE_TAG\": \"150\",\n                \"PWR_INT_PARAM\": \"14699\",\n                \"DIN1\": \"2\",\n                \"PWR_EXT_PARAM\": \"4176\",\n                \"DINX_MODE\": \"2\",\n                \"INFO_MES\": \"407\",\n                \"longitude\": \"37.6342887878418\",\n                \"LONGITUDE_TAG\": \"37.6342887878418\",\n                \"UNIXTIME\": \"1648470497000\"\n            },\n            {\n                \"№\": 7,\n                \"satellites\": \"16\",\n                \"altitude\": \"100\",\n                \"speedkph\": \"0\",\n                \"angle\": \"150\",\n                \"datepoint\": \"2022-03-28 12:28:04\",\n                \"SATELLITES_TAG\": \"16\",\n                \"TEMP_1\": \"2437\",\n                \"ALTITUDE_TAG\": \"100\",\n                \"latitude\": \"55.70598220825195\",\n                \"LATITUDE_TAG\": \"55.70598220825195\",\n                \"SPEED_TAG\": \"0\",\n                \"ANGLE_TAG\": \"150\",\n                \"PWR_INT_PARAM\": \"14686\",\n                \"DIN1\": \"2\",\n                \"PWR_EXT_PARAM\": \"521\",\n                \"DINX_MODE\": \"2\",\n                \"INFO_MES\": \"306\",\n                \"longitude\": \"37.6342887878418\",\n                \"LONGITUDE_TAG\": \"37.6342887878418\",\n                \"UNIXTIME\": \"1648470484000\"\n            },\n            {\n                \"№\": 8,\n                \"satellites\": \"15\",\n                \"altitude\": \"100\",\n                \"speedkph\": \"0\",\n                \"angle\": \"150\",\n                \"datepoint\": \"2022-03-28 12:27:34\",\n                \"SATELLITES_TAG\": \"15\",\n                \"TEMP_1\": \"2437\",\n                \"ALTITUDE_TAG\": \"100\",\n                \"latitude\": \"55.70598220825195\",\n                \"LATITUDE_TAG\": \"55.70598220825195\",\n                \"SPEED_TAG\": \"0\",\n                \"ANGLE_TAG\": \"150\",\n                \"PWR_INT_PARAM\": \"14713\",\n                \"DIN1\": \"2\",\n                \"PWR_EXT_PARAM\": \"0\",\n                \"DINX_MODE\": \"2\",\n                \"INFO_MES\": \"306\",\n                \"longitude\": \"37.6342887878418\",\n                \"LONGITUDE_TAG\": \"37.6342887878418\",\n                \"UNIXTIME\": \"1648470454000\"\n            },\n            {\n                \"№\": 9,\n                \"satellites\": \"15\",\n                \"altitude\": \"100\",\n                \"speedkph\": \"0\",\n                \"angle\": \"150\",\n                \"datepoint\": \"2022-03-28 12:27:04\",\n                \"SATELLITES_TAG\": \"15\",\n                \"TEMP_1\": \"2437\",\n                \"ALTITUDE_TAG\": \"100\",\n                \"latitude\": \"55.70598220825195\",\n                \"LATITUDE_TAG\": \"55.70598220825195\",\n                \"SPEED_TAG\": \"0\",\n                \"ANGLE_TAG\": \"150\",\n                \"PWR_INT_PARAM\": \"14713\",\n                \"DIN1\": \"2\",\n                \"PWR_EXT_PARAM\": \"0\",\n                \"DINX_MODE\": \"2\",\n                \"INFO_MES\": \"306\",\n                \"longitude\": \"37.6342887878418\",\n                \"LONGITUDE_TAG\": \"37.6342887878418\",\n                \"UNIXTIME\": \"1648470424000\"\n            },\n            {\n                \"№\": 10,\n                \"satellites\": \"15\",\n                \"altitude\": \"100\",\n                \"speedkph\": \"0\",\n                \"angle\": \"150\",\n                \"datepoint\": \"2022-03-28 12:26:34\",\n                \"SATELLITES_TAG\": \"15\",\n                \"TEMP_1\": \"2437\",\n                \"ALTITUDE_TAG\": \"100\",\n                \"latitude\": \"55.70598220825195\",\n                \"LATITUDE_TAG\": \"55.70598220825195\",\n                \"SPEED_TAG\": \"0\",\n                \"ANGLE_TAG\": \"150\",\n                \"PWR_INT_PARAM\": \"14713\",\n                \"DIN1\": \"2\",\n                \"PWR_EXT_PARAM\": \"0\",\n                \"DINX_MODE\": \"2\",\n                \"INFO_MES\": \"306\",\n                \"longitude\": \"37.6342887878418\",\n                \"LONGITUDE_TAG\": \"37.6342887878418\",\n                \"UNIXTIME\": \"1648470394000\"\n            }\n        ]\n    }\n}\n\n</code></pre><hr />\n<p><strong>Структура ответа:</strong></p>\n<p>date - Дата<br />max_rows - Максимальное количество строк<br />columns - колонки<br />с - строки, отсортированные по датам в обратном порядке</p>\n","urlObject":{"protocol":"https","path":["api_v1","terminals_logs"],"host":["dev","skif","pro"],"query":[{"description":{"content":"<p>начальный индекс записи, начинается с нуля</p>\n","type":"text/plain"},"key":"from","value":""},{"description":{"content":"<p>максимальное количество записей</p>\n","type":"text/plain"},"key":"max","value":""},{"description":{"content":"<p>IMEI терминала</p>\n","type":"text/plain"},"key":"imei","value":""}],"variable":[]}},"response":[],"_postman_id":"9007a100-742d-4f68-87d3-ec45063d5067"}],"id":"ff43d819-d071-48fc-95a9-af11bfc6f627","description":"<p>API по работе с Терминалами</p>\n","event":[{"listen":"prerequest","script":{"id":"68ec6ba2-d149-4695-b5c0-e209a66b88a0","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"72f82a6f-f7a4-4c50-ac86-154170b1e1d8","type":"text/javascript","exec":[""]}}],"_postman_id":"ff43d819-d071-48fc-95a9-af11bfc6f627"},{"name":"Ретрансляции","item":[{"name":"/retranslators","id":"dd924332-fd0a-4f39-b9a8-a47b20ef220b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Ретрансляция в Эрнис1\",\n    \"comment\": \" Комментс\",\n    \"retrans_server\": \"10.11.12.13\", \n    \"retrans_port\": 8080,\n    \"retrans_pw\": \"1234\",\n    \"retrans_protocol\": \"retranslator_wilaon_ips\",\n    \"terminals\": [\n        {\"imei\": \"51233441252927\", \"to_imei\": \"4324324234\"},\n         {\"imei\": \"350612070173768\", \"to_imei\": \"3244324\"}\n    ]\n}"},"url":"{{base_url}}/api_v1/retranslators","description":"<p><strong>Создание новой ретрансляции</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"name\": Название ретрансляции, текcт, обязательно,\n\"comment\": Комментарий, текcт, необязательно\n\"retrans_server\": Адрес сервера ретрансляции, текcт, обязательно,\n\"retrans_port\": Порт сервера ретрансляции, целое число, обязательно,\n\"retrans_pw\": Пароль ретрансляции, текст, не обязательно,\n\"retrans_protocol\": Протокол, возможные ключи получают из dictionaries, где type=retranslator_protocols\n\"is_active\": Статус, если true то ретрансляция включена, иначе отключена\n\n</code></pre><hr />\n<p><strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"name\": \"Ретрансляция в Эрнис1\",\n    \"comment\": \" Комментс\",\n    \"retrans_server\": \"10.11.12.13\", \n    \"retrans_port\": 8080,\n    \"retrans_pw\": \"1234\",\n    \"retrans_protocol\": \"retranslator_wilaon_ips\",\n    \"terminals\": [\n        {\"imei\": \"51233441252927\", \"to_imei\": \"4324324234\"},\n        {\"imei\": \"350612070173768\", \"to_imei\": \"3244324\"}\n    ]\n}\n\n</code></pre>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Возвращается созданная запись</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"2c2fd09c-5584-42cb-a3d0-4006bcfddf71\",\n    \"name\": \"Ретрансляция в Эрнис1\",\n    \"comment\": \" Комментс\",\n    \"retrans_protocol\": \"retranslator_wilaon_ips\",\n    \"retrans_server\": \"10.11.12.13\",\n    \"retrans_port\": 8080,\n    \"retrans_pw\": \"1234\",\n    \"is_active\": true,\n    \"activate_date\": \"2024-08-28 00:00:00\",\n    \"terminals\": [\n        {\n            \"imei\": \"51233441252927\",\n            \"to_imei\": \"4324324234\"\n        },\n        {\n            \"imei\": \"350612070173768\",\n            \"to_imei\": \"3244324\"\n        }\n    ]\n}\n\n</code></pre>\n<hr />\n<p><strong>Yandex retranslator</strong></p>\n<p>Для yandex retranslator используются дополнительние поля:</p>\n<p>member_name - Идентификатор участника программы, текстовое поле:<br />route_name - Идентификатор маршрута, текстовое поле:</p>\n<p>gps_category_type_key - Категория GPS-сигнала<br />public_vehicle_type_key - Тип общественного транспортного средства</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"retrans_server\": \"10.10.10.10\",\n    \"company_name\": \"0000 тест001\",\n    \"retrans_protocol\": \"ya_transport\",\n    \"retrans_port\": \"1234\",\n    \"terminals\": [\n        {\n            \"imei\": \"356917059172986\",\n            \"to_imei\": \"1233322\"\n        }\n    ],\n    \"member_name\": \"НКгоалв\",\n    \"route_name\": \"123\",\n    \"gps_category_type_key\": \"gps_category_type_s\",\n    \"public_vehicle_type_key\": \"public_vehicle_type_bus\"\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","retranslators"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"dd924332-fd0a-4f39-b9a8-a47b20ef220b"},{"name":"/retranslators?ids=:ids","id":"4d5a050a-88cb-4183-9cfe-ebb9b647c6f9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/retranslators?ids=","description":"<p><strong>Поиск imei по ID</strong></p>\n<hr />\n<p>Возвращает массив ретрансляций по ID.</p>\n<p>Если в параметре ids содержится только один id, то вернется НЕ массив из 1 элемента, а конкретная ретрансляция.</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>/retranslators?ids=eeadc5d1-9a68-4083-bef6-51173d532cb0\n\n</code></pre><p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"eeadc5d1-9a68-4083-bef6-51173d532cb0\",\n    \"name\": \"Ретрансляция в Эрнис1\",\n    \"comment\": \" Комментс\",\n    \"retrans_protocol\": \"retranslator_wilaon_ips\",\n    \"retrans_server\": \"10.11.12.13\",\n    \"retrans_port\": 8080,\n    \"retrans_pw\": \"1234\",\n    \"is_active\": true,\n    \"activate_date\": \"2024-08-28 00:00:00\",\n    \"terminals\": [\n        {\n            \"imei\": \"862531041183956\",\n            \"to_imei\": \"4324324234\"\n        },\n        {\n            \"imei\": \"862531041156705\",\n            \"to_imei\": \"3244324\"\n        }\n    ]\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","retranslators"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"4d5a050a-88cb-4183-9cfe-ebb9b647c6f9"},{"name":"/retranslators/:id","id":"62dd4f50-822a-40a6-82e3-8fd12bf2284f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"0c1641be-3ca3-4928-b640-9653882f2b60\",\n    \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n    \"imei\": \"359633107825189\",\n    \"retrans_server\": \"10.11.12.13\",\n    \"retrans_port\": 8081,\n    \"retrans_from\": \"2021-08-01 00:00:00\",\n    \"retrans_to\": \"2021-09-01 00:00:00\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/retranslators/:id","description":"<p>Обновить данные ретрансляции</p>\n<hr />\n<p>Обновляет переданные параметры</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>См метод POST /retranslators</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Аналогичен одному объекту из возврата метода GET /retranslators?ids=:id</p>\n","urlObject":{"path":["api_v1","retranslators",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID записи</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"62dd4f50-822a-40a6-82e3-8fd12bf2284f"},{"name":"/retranslators/:id","id":"36f9448f-edc2-4418-a169-66ca86906799","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/retranslators/:id","description":"<p><strong>Удаление ретрансляции по его ID</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id записи</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong> 200</p>\n<p>Если ретрансляция с таким id не найдена, то возвращается ошибка 422.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 422,\n    \"field\": \"id\",\n    \"message\": \"Параметр не найден в базе\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","retranslators",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID записи</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"36f9448f-edc2-4418-a169-66ca86906799"},{"name":"/retranslators?ids=:ids","id":"473d33a7-7efc-4b1a-9fdb-2c34f2529306","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/retranslators?ids=","description":"<p><strong>Удаление ретрансляции по id</strong></p>\n<hr />\n<p>См. DELETE /units?ids=:ids</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n","urlObject":{"path":["api_v1","retranslators"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"473d33a7-7efc-4b1a-9fdb-2c34f2529306"},{"name":"/retranslators/list","id":"11e5d58d-ce47-4b11-9718-9ba190e0eef4","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true}},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": 0,\n    \"count\": 2,\n    \"sortField\": \"imei\",\n    \"conditions\": [\n        {\n            \"field\": \"imei\",\n            \"value\": \"1\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/retranslators/list","description":"<p><strong>Поиск ретрансляции по фильтру</strong></p>\n<hr />\n<p>Аналогично запросу POST /users/list</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>from - с какого найденного элемента выдавать результат.</p>\n<p>count - максимальное число элементов.</p>\n<p>sortField - поле сортировки, значения<br />[imei]</p>\n<p>sortDesc - сортировка по убыванию, значения \"true\", \"false\".</p>\n<p>conditions - условие отбора в виде массива [ {\"field\":\"значение\", \"value\":\"значение\"}, {... и т.д. ...} ].<br />значения для field - imei, retrans_server</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Получить первые 2 imei имеющие подстроку \"123\"</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 2,\n    \"sortField\": \"imei\",\n    \"conditions\": [\n        {\n            \"field\": \"imei\",\n            \"value\": \"123\"       \n        }    \n    ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 9,\n    \"list\": [\n        {\n            \"id\": \"fcdb331c-4e27-4fb3-91b6-443330dbef2c\",\n            \"company_id\": \"6c1a0092-9f99-4fb0-a2f3-37eb8db08b31\",\n            \"imei\": \"862531040831233\",\n            \"retrans_server\": \"10.10.10.10\",\n            \"retrans_port\": 8080,\n             \"retrans_pw\": \"xyzt\"\n        },\n        {\n            \"id\": \"0ad9df34-ce6e-4665-a1f8-f6e2d93d5d1e\",\n            \"company_id\": \"6c1a0092-9f99-4fb0-a2f3-37eb8db08b31\",\n            \"imei\": \"862531042812348\",\n            \"retrans_server\": \"10.10.10.10\",\n            \"retrans_port\": 8080,\n             \"retrans_pw\": \"xyzt\"\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","retranslators","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"11e5d58d-ce47-4b11-9718-9ba190e0eef4"},{"name":"/retranslators/:id/logs","id":"a45189e1-5e72-4f88-a4a2-51a237d9e6ac","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true}},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"offset\": 0,\n    \"max\": 100,\n    \"from\": \"2024-09-17 00:00:00\",\n    \"to\": \"2024-09-17 23:59:59\",\n    \"imeis\": [\"336023881\", \"336023861\"]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/retranslators/:id/logs","description":"<p><strong>Получение лога ретрансляции</strong></p>\n<hr />\n<p><strong>Параметры запроса:</strong></p>\n<p>id - ID ретранслятора</p>\n<p><strong>Поля тела json-запроса:</strong></p>\n<p>from - дата и время начала интервала(в формате yyyy-MM-dd HH:mm:ss).</p>\n<p>to - дата и время окончания интервала(в формате yyyy-MM-dd HH:mm:ss).</p>\n<p>max - Параметр для пагинации. Максимальное число строк.</p>\n<p>offset - Параметр для пагинации. Определяет количество пропущенных строк, начиная с нулевой строки. Если параметр отсутствует в запросе, то по дефолту он равен 0.</p>\n<p>imeis - список выбранных IMEI, они должны быть выбраны из текущей ретрансляции. Если не указано или пусто, то лог получается по первому IMEI.</p>\n<p>Ответ состоит из трех полей:</p>\n<p>columns - колонки</p>\n<p>rows - строки, состоит из datetime, imei, is_error, text полей.</p>\n<p>max_rows максимальное количество строк, используется для пагинации</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST <a href=\"https://admin-dev.skif.pro/api_v1/retranslators/d8105af4-ce13-4451-b1bc-32c9988e90d1/logs\">https://admin-dev.skif.pro/api_v1/retranslators/d8105af4-ce13-4451-b1bc-32c9988e90d1/logs</a></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"offset\": 0,\n    \"max\": 100,\n    \"from\": \"2024-09-17 00:00:00\",\n    \"to\": \"2024-09-17 23:59:59\",\n    \"imeis\": [\"336023881\", \"336023861\"]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"columns\": [\n        {\n            \"key\": \"datetime\",\n            \"name\": \"Дата\"\n        },\n        {\n            \"key\": \"imei\",\n            \"name\": \"IMEI\"\n        },\n        {\n            \"key\": \"is_error\",\n            \"name\": \"Статус\"\n        },\n        {\n            \"key\": \"text\",\n            \"name\": \"Сообщение\"\n        }\n    ],\n    \"rows\": [\n        {\n            \"datetime\": \"2024-09-17 14:07:11\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:07:10\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:07:03\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:07:02\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:07:01\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Успешная отправка: \\n#D#170924;090731;0000.000000;S;00000.000000;W;0;0;0;0;NA;NA;NA;1,1,1,1;NA;battery_lvl:1:41,flg:1:2,fuel1:1:2043,fuel1_state:1:2,fuel1_temp:1:21,fuel2:1:0,fuel2_state:1:0,fuel2_temp:1:0,fuel3:1:0,fuel3_state:1:0,fuel3_temp:1:0,fuel4:1:0,fuel4_state:1:0,fuel4_temp:1:0,global_number:1:5866372,ignition:1:0,mileage:1:0,pwr_ext:2:23.4,rpm:1:0,sum_acc:1:0;6792\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:07:01\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Успешная авторизация\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:07:00\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:07:00\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:07:00\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:06:50\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:06:50\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:06:46\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Успешная отправка\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:06:31\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Успешная отправка\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:06:16\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Успешная отправка\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:06:01\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Успешная отправка\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:05:46\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Успешная отправка\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:05:31\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Успешная отправка\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:05:16\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Успешная отправка\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:05:01\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Успешная отправка: \\n#D#170924;090531;0000.000000;S;00000.000000;W;0;0;0;0;NA;NA;NA;1,1,1,1;NA;battery_lvl:1:41,flg:1:2,fuel1:1:2043,fuel1_state:1:2,fuel1_temp:1:21,fuel2:1:0,fuel2_state:1:0,fuel2_temp:1:0,fuel3:1:0,fuel3_state:1:0,fuel3_temp:1:0,fuel4:1:0,fuel4_state:1:0,fuel4_temp:1:0,global_number:1:5866364,ignition:1:0,mileage:1:0,pwr_ext:2:23.4,rpm:1:0,sum_acc:1:0;8247\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:04:46\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Успешная отправка\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:04:31\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Успешная отправка\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:04:16\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Успешная отправка\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:04:01\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Успешная отправка\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:46\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Успешная отправка\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:38\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:38\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:38\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:38\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:38\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:38\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:38\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:37\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:37\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:37\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:36\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:36\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:36\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:35\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:35\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:35\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:34\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:34\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:33\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:33\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:33\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:33\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:32\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:32\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:32\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:32\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:31\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:31\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:31\",\n            \"imei\": \"336023881\",\n            \"is_error\": false,\n            \"text\": \"Успешная отправка\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:29\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:29\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:29\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:29\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:28\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:28\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:28\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:28\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:28\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:28\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:27\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:27\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:27\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:27\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:26\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:26\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:25\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:25\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:25\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:25\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:24\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:23\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:23\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:23\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:23\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:22\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:22\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:22\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:22\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:21\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:21\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:21\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:19\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:19\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:19\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:18\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:18\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:18\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:18\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:18\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:18\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:17\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:17\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:17\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:17\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:17\",\n            \"imei\": \"336023861\",\n            \"is_error\": false,\n            \"text\": \"Connecting to 212.154.238.102:20332\",\n            \"server\": \"212.154.238.102\"\n        },\n        {\n            \"datetime\": \"2024-09-17 14:03:16\",\n            \"imei\": \"336023861\",\n            \"is_error\": true,\n            \"text\": \"Проблема авторизации: #AL#0\\r\\n\",\n            \"server\": \"212.154.238.102\"\n        }\n    ],\n    \"max_rows\": 4012\n}\n\n</code></pre>","urlObject":{"path":["api_v1","retranslators",":id","logs"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID записи</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"a45189e1-5e72-4f88-a4a2-51a237d9e6ac"}],"id":"28ffbdf8-9de7-414f-ae9a-7ba44f43f93b","description":"<p>API по работе с Ретрансляциями</p>\n","event":[{"listen":"prerequest","script":{"id":"f4bb6906-7875-44aa-8a23-65b7600184f8","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"dfa3b49d-ff7d-45b2-849a-e31cef37bbb7","type":"text/javascript","exec":[""]}}],"_postman_id":"28ffbdf8-9de7-414f-ae9a-7ba44f43f93b"},{"name":"Ретрансляция исторических данных","item":[{"name":"/retranslator_histories","id":"535ebcac-e90a-4bc8-abe9-cf8a47c77f09","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"imei\": \"324235243242354\",\n    \"terminal_type\": \"navtelecom\",\n    \"name\": \"Ретранслятор 1234\",\n    \"unit_name\": \"Man 922\",\n    \"comment\": \"Комментария 456\",\n    \"retrans_from\": \"2023-10-14 11:41:55\",\n    \"retrans_to\": \"2023-10-18 12:44:30\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/retranslator_histories","description":"<p><strong>Добавление ретрансляции исторических данных</strong></p>\n<hr />\n<p>Поля в JSON:</p>\n<p>imei - IMEI объекта</p>\n<p>terminal_type - ключ типа протокола объекта.</p>\n<p>name - имя объекта.</p>\n<p>comment - комментарий.</p>\n<p>retrans_from - период ретрансляции от в формате yyyy-MM-dd HH:mm:ss</p>\n<p>retrans_to - период ретрансляции до.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST <a href=\"https://dev5.skif.pro/api_v1/retranslator_histories\">https://dev5.skif.pro/api_v1/retranslator_histories</a></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"imei\": \"324235243242354\",\n    \"terminal_type\": \"navtelecom\",\n    \"name\": \"Ретранслятор 1234\",\n    \"unit_name\": \"Man 922\",\n    \"comment\": \"Комментария 456\",\n    \"retrans_from\": \"2023-10-12 11:41:55\",\n    \"retrans_to\": \"2023-10-13 12:44:30\"\n}\n\n</code></pre>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Если запрос успешен, тогда возвращается соозданная запись, иначе ошибка.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"435aa261-d06a-422b-b64c-1ee94b447c9e\",\n    \"imei\": \"324235243242354\",\n    \"name\": \"Ретранслятор 1234\",\n    \"unit_name\": \"Man 922\",\n    \"terminal_type\": \"navtelecom\",\n    \"comment\": \"Комментария 456\",\n    \"retrans_from\": \"2023-10-12 11:41:55\",\n    \"retrans_to\": \"2023-10-13 12:44:30\",\n    \"status\": \"WAITING\"\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","retranslator_histories"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"535ebcac-e90a-4bc8-abe9-cf8a47c77f09"},{"name":"/admin_query","id":"5d5b4e4d-c262-4218-87a6-15401b3a687d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"model\": \"retranslator_histories\",\n    \"from\": 0,\n    \"count\": 100,\n    \"value\": \"324235243242354\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/admin_query","description":"<p><strong>Получение списка ретрансляция исторических данных в админке</strong></p>\n<hr />\n<p>Поля в JSON:</p>\n<p>imei - IMEI объекта</p>\n<p>terminal_type - ключ типа протокола объекта.</p>\n<p>name - имя объекта.</p>\n<p>comment - комментарий.</p>\n<p>retrans_from - период ретрансляции от в формате yyyy-MM-dd HH:mm:ss</p>\n<p>retrans_to - период ретрансляции до.</p>\n<p>status - один из этих значений:</p>\n<p>- WAITING - ожидается.</p>\n<p>- RUNNING - в процессе.</p>\n<p>- ERROR - ошибка.</p>\n<p>- FINISHED - завершена.</p>\n<hr />\n<p><strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST <a href=\"https://dev5.skif.pro/api_v1/retranslator_histories\">https://dev5.skif.pro/api_v1/</a>admin_query</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"model\": \"retranslator_histories\",\n    \"from\": 0,\n    \"count\": 100,\n    \"value\": \"324235243242354\"\n}\n\n</code></pre>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"max\": 3,\n    \"list\": [\n        {\n            \"id\": \"0a9f0be4-168a-49d5-91f4-dce4c96fb9cc\",\n            \"imei\": \"324235243242354\",\n            \"name\": \"Ретранслятор 1234\",\n            \"unit_name\": \"Man 922\",\n            \"terminal_type\": \"navtelecom\",\n            \"comment\": \"Комментария 456\",\n            \"retrans_from\": \"2023-10-12 11:41:55\",\n            \"retrans_to\": \"2023-10-13 12:44:30\",\n            \"status\": \"WAITING\"\n        },\n        {\n            \"id\": \"435aa261-d06a-422b-b64c-1ee94b447c9e\",\n            \"imei\": \"324235243242354\",\n            \"name\": \"Ретранслятор 1234\",\n            \"unit_name\": \"Man 922\",\n            \"terminal_type\": \"navtelecom\",\n            \"comment\": \"Комментария 456\",\n            \"retrans_from\": \"2023-10-12 11:41:55\",\n            \"retrans_to\": \"2023-10-13 12:44:30\",\n            \"status\": \"RUNNING\"\n        },\n        {\n            \"id\": \"2a425f39-e2e0-4abe-a1aa-a0a7fa3b79ef\",\n            \"imei\": \"324235243242354\",\n            \"name\": \"Ретранслятор 1234\",\n            \"unit_name\": \"Man 922\",\n            \"terminal_type\": \"navtelecom\",\n            \"comment\": \"Комментария 456\",\n            \"retrans_from\": \"2023-10-14 11:41:55\",\n            \"retrans_to\": \"2023-10-18 12:44:30\",\n            \"status\": \"ERROR\",\n            \"server_answer\": \"Сервер временно не доступен\"\n        },\n        {\n            \"id\": \"2a425f39-e2e0-4abe-a1aa-a0a7fa3b79ef\",\n            \"imei\": \"324235243242354\",\n            \"name\": \"Ретранслятор 1234\",\n            \"unit_name\": \"Man 922\",\n            \"terminal_type\": \"navtelecom\",\n            \"comment\": \"Комментария 456\",\n            \"retrans_from\": \"2023-10-14 11:41:55\",\n            \"retrans_to\": \"2023-10-18 12:44:30\",\n            \"status\": \"FINISHED\",\n            \"server_answer\": \"Период ретрансляции 2023-10-14 - 2023-10-18 / Ретранслированно 22000 из 332000\"\n        }\n    ]\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","admin_query"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"5d5b4e4d-c262-4218-87a6-15401b3a687d"}],"id":"e869448b-5304-4dea-892e-4f99ade8933b","description":"<p>Ретрансляция исторических данных</p>\n","_postman_id":"e869448b-5304-4dea-892e-4f99ade8933b"},{"name":"Команды терминалов","item":[{"name":"/commands","id":"923e237c-4278-4f83-89f6-14b879d61e99","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n    \"imei\": \"100000000000008\",\n    \"command\": \"*?V\"\n}"},"url":"{{base_url}}/api_v1/commands","description":"<p><strong>Добавление новой команды</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>\"company_id\": ID компании, обязательно для дилера. Для компании необязательно - получается активная компания.<br />\"imei\": Imei, текст, обязательно.<br />\"command\": Команда, обязательно для дилера, для компании нет.<br />\"template\": шаблон команды, обязательно для компании.</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Оператор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<ol>\n<li>Создание команды дилером</li>\n</ol>\n<hr />\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"company_id\": \"a786d1e0-5cc2-4e3d-a1f6-2c8ae06f9a39\",\n    \"imei\": \"100000000000008\",\n    \"commnad\": \"*?V\"\n}\n\n</code></pre><p>Возвращается созданная запись</p>\n<p>status - статус отправки команды. Возможные значения: WAITING - в ожидании, OK - отправлена, FAIL - не удалось отправить.<br />Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"7d7bb072-9daf-4142-9b03-3efea7265a73\",\n    \"company_id\": \"a786d1e0-5cc2-4e3d-a1f6-2c8ae06f9a39\",\n    \"imei\": \"100000000000008\",\n    \"commnad\": \"*?V\",\n    \"status\": \"WAITING\"\n}\n\n</code></pre><hr />\n<ol>\n<li>Создание команды в компании</li>\n</ol>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n    \"imei\": \"100000000000008\",\n    \"template\": {\n        \"id\": \"eede4765-273c-45da-b2c6-8b331d532402\", // ID шаблонов команд\n        \"params_values\": [ // значения параметров\n            {\"key\": \"Номер выхода\", \"value\": \"2\"}\n        ]\n    }\n}\n\n</code></pre><p>Ответ:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"cc584df9-791b-4074-af7e-6bc319be6173\",\n    \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n    \"imei\": \"100000000000008\",\n    \"command\": \"*!2N\",\n    \"status\": \"WAITING\",\n    \"user_id\": \"6e8f4833-c430-4509-ac5e-e1802691655c\",\n    \"template\": {\n        \"id\": \"eede4765-273c-45da-b2c6-8b331d532402\",\n        \"name\": \"Выключения выходной линии\",\n        \"params_values\": [\n            {\n                \"key\": \"Номер выхода\",\n                \"value\": \"2\"\n            }\n        ]\n    }\n}\n\n</code></pre>","urlObject":{"path":["api_v1","commands"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"923e237c-4278-4f83-89f6-14b879d61e99"},{"name":"/commands_bulk","id":"e2713ef4-9bb4-4e67-9120-11b3e86d8f58","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n    \"imei\": \"100000000000008\",\n    \"template\": {\n        \"id\": \"eede4765-273c-45da-b2c6-8b331d532402\",\n        \"params_values\": [\n            {\n                \"key\": \"Номер выхода\",\n                \"value\": \"2\"\n            }\n        ]\n    }\n}"},"url":"{{base_url}}/api_v1/commands_bulk","description":"<p><strong>Добавить новую команду для нескольких терминалов</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>\"imeis\": Список Imei, текст массив.<br />\"command\": Команда, обязательно для дилера, для компании нет.<br />\"template\": Шаблон команды, обязательно для компании.</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Оператор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p><strong>1) Создание команды дилером</strong></p>\n<hr />\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"company_id\": \"a786d1e0-5cc2-4e3d-a1f6-2c8ae06f9a39\",\n    \"imeis\": [\"100000000000008\", \"100000000000009\"],\n    \"commnad\": \"*?V\"\n}\n\n</code></pre><p>Возвращается созданные записи</p>\n<p>status - статус отправки команды. Возможные значения: WAITING - в ожидании, OK - отправлена, FAIL - не удалось отправить<br />Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n    \"id\": \"7d7bb072-9daf-4142-9b03-3efea7265a73\",\n    \"company_id\": \"a786d1e0-5cc2-4e3d-a1f6-2c8ae06f9a39\",\n    \"imei\": \"100000000000008\",\n    \"commnad\": \"*?V\",\n    \"status\": \"WAITING\"\n  },\n  {\n    \"id\": \"7d7bb072-9daf-4142-9b03-3efea7265a73\",\n    \"company_id\": \"a786d1e0-5cc2-4e3d-a1f6-2c8ae06f9a39\",\n    \"imei\": \"100000000000008\",\n    \"commnad\": \"*?V\",\n    \"status\": \"WAITING\"\n  }\n]\n\n</code></pre><hr />\n<p><strong>2) Создание команды в компании</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n    \"imeis\": [\"100000000000008\", \"100000000000009\"],\n    \"template\": {\n        \"id\": \"eede4765-273c-45da-b2c6-8b331d532402\",\n        \"params_values\": [\n            {\"key\": \"Номер выхода\", \"value\": \"2\"}\n        ]\n    }\n}\n\n</code></pre><p>Ответ:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n    \"id\": \"7d7bb072-9daf-4142-9b03-3efea7265a73\",\n    \"company_id\": \"a786d1e0-5cc2-4e3d-a1f6-2c8ae06f9a39\",\n    \"imei\": \"100000000000008\",\n    \"commnad\": \"*?V\",\n    \"status\": \"WAITING\"\n  },\n  {\n    \"id\": \"7d7bb072-9daf-4142-9b03-3efea7265a73\",\n    \"company_id\": \"a786d1e0-5cc2-4e3d-a1f6-2c8ae06f9a39\",\n    \"imei\": \"100000000000008\",\n    \"commnad\": \"*?V\",\n    \"status\": \"WAITING\"\n  }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","commands_bulk"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e2713ef4-9bb4-4e67-9120-11b3e86d8f58"},{"name":"/commands?ids=:ids","id":"be25e14e-4169-4fa9-9fce-96d57eb707af","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/commands?ids=","description":"<p><strong>Поиск команд по ID</strong></p>\n<hr />\n<p>Возвращает массив команд по ID.</p>\n<p>Если в параметре ids содержится только один id, то вернется НЕ массив из 1 элемента, а конкретная команда.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Оператор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>/commands?ids=8d174fc8-57c8-4a35-9347-0dba76c04957\n\n</code></pre><p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"8d174fc8-57c8-4a35-9347-0dba76c04957\",\n    \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n    \"imei\": \"359633107825189\",\n    \"command\": \"command three\",\n    \"status\": \"WAITING\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","commands"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"be25e14e-4169-4fa9-9fce-96d57eb707af"},{"name":"/commands/:id","id":"176552ac-dca1-47d6-8c6d-b20b0fd63e8a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"68c00e05-a462-4b93-9698-ab411003aa1f\",\n    \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n    \"imei\": \"866795039460264\",\n    \"command\": \"*?V\",\n    \"sent_time\": \"2022-02-11 15:39:26\",\n    \"status\": \"FAIL\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/commands/:id","description":"<p><strong>Обновить данные команды</strong></p>\n<hr />\n<p>Обновляет переданные параметры</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>см метод POST /commands</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Оператор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Аналогичен одному объекту из ответа метода GET /commands?ids=:id</p>\n","urlObject":{"path":["api_v1","commands",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID записи</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"176552ac-dca1-47d6-8c6d-b20b0fd63e8a"},{"name":"/commands/:id","id":"6d140ab2-6d8b-4c3c-9689-6fa24fc1506a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/commands/:id","description":"<p><strong>Удаление команды по ее id</strong></p>\n<hr />\n<p>Удаляет команду</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id записи</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Оператор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong> 200</p>\n<p>Если команда с таким id не найдена, то возвращается ошибка 422</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 422,\n    \"field\": \"id\",\n    \"message\": \"Параметр не найден в базе\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","commands",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID записи</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"6d140ab2-6d8b-4c3c-9689-6fa24fc1506a"},{"name":"/commands/list","id":"d4e05886-6a1e-422b-89df-fe6afab45e4d","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true}},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"conditions\": [\n        {\n            \"field\": \"imei\",\n            \"value\": \"100000000000008\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/commands/list","description":"<p><strong>Поиск команды по фильтру</strong></p>\n<hr />\n<p>Аналогично запросу POST /users/list</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>from - с какого найденного элемента выдавать результат.</p>\n<p>count - максимальное число элементов.</p>\n<p>conditions - условие отбора в виде массива [ {\"field\":\"значение\", \"value\":\"значение\"}, {... и т.д. ...} ].<br />значения для field - imei</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Оператор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Получить первые 2 команды для imei</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 2,\n    \"conditions\": [\n        {\n            \"field\": \"imei\",\n            \"value\": \"862531041141236\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 2,\n    \"list\": [\n        {\n            \"id\": \"9fa4bb38-c4da-4339-8c27-eac652363c63\",\n            \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\", \n            \"imei\": \"862531041141236\", \n            \"command\": \"command xyz\", //Команда\n            \"status\": \"SENT\", //Статус\n            \"answer\": \"*@С\" // Ответ\n        },\n        {\n            \"id\": \"72019dff-e056-4137-86f8-19e790d3067b\",\n            \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n            \"imei\": \"862531041141236\",\n            \"command\": \"command abc\",\n            \"status\": \"FAIL\"\n        },\n        {\n            \"id\": \"1630c5b2-4e1d-447a-9102-97f6eb5ddf47\",\n            \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n            \"imei\": \"862531041141236\",\n            \"command\": \"command abc\",\n            \"status\": \"WAITING\"\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","commands","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d4e05886-6a1e-422b-89df-fe6afab45e4d"},{"name":"/admin_query","id":"3c8b8c64-5fa8-4fa7-a5d8-96537d53133f","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true}},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": 0,\n    \"count\": 2,\n    \"conditions\": [\n        {\n            \"field\": \"imei\",\n            \"value\": \"100000000000008\"\n        }\n    ],\n    \"model\": \"commands\"\n}","options":{"raw":{"language":"json"}}},"url":"https://dev.skif.pro/api_v1/admin_query","description":"<p><strong>Поиск команды по фильтру в админке</strong></p>\n<hr />\n<p>Аналогично запросу POST /users/list</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>from - с какого найденного элемента выдавать результат.</p>\n<p>count - максимальное число элементов.</p>\n<p>sortField - поле сортировки, значения<br />[imei]</p>\n<p>sortDesc - сортировка по убыванию, значения \"true\", \"false\".</p>\n<p>conditions - условие отбора в виде массива [ {\"field\":\"значение\", \"value\":\"значение\"}, {... и т.д. ...} ].<br />значения для field - imei</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Получить первые 2 команды для imei</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 2,\n    \"conditions\": [\n        {\n            \"field\": \"imei\",\n            \"value\": \"862531041141236\"\n        }\n    ],\n    \"model\": \"commands\"\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 2,\n    \"list\": [\n        {\n            \"id\": \"9fa4bb38-c4da-4339-8c27-eac652363c63\",\n            \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\", \n            \"imei\": \"862531041141236\", \n            \"command\": \"command xyz\", //Команда\n            \"status\": \"SENT\", //Статус\n            \"answer\": \"*@С\" // Ответ\n        },\n        {\n            \"id\": \"72019dff-e056-4137-86f8-19e790d3067b\",\n            \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n            \"imei\": \"862531041141236\",\n            \"command\": \"command abc\",\n            \"status\": \"FAIL\"\n        },\n        {\n            \"id\": \"1630c5b2-4e1d-447a-9102-97f6eb5ddf47\",\n            \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n            \"imei\": \"862531041141236\",\n            \"command\": \"command abc\",\n            \"status\": \"WAITING\"\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"protocol":"https","path":["api_v1","admin_query"],"host":["dev","skif","pro"],"query":[],"variable":[]}},"response":[],"_postman_id":"3c8b8c64-5fa8-4fa7-a5d8-96537d53133f"}],"id":"dd6c1b17-c8a4-47ad-9812-ba52ba84ede9","description":"<p>API по работе с команд терминалов</p>\n","event":[{"listen":"prerequest","script":{"id":"cd52c8b1-79d3-447a-aa47-a1dfe74f7a8f","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"9399e3b1-7fa7-4310-baa0-b129787c5f4d","type":"text/javascript","exec":[""]}}],"_postman_id":"dd6c1b17-c8a4-47ad-9812-ba52ba84ede9"},{"name":"Шаблоны команд терминалов","item":[{"name":"/commands_templates","id":"aae56a15-70dc-4098-9da3-2b947decbb7b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Команда произвольной звуковой индикации зуммером\",\n    \"terminal_type\": \"navtelecom\",\n    \"command_template\": \"*!BEEP {Кол-во импульсов в каждом такте},{Кол-во тактов в звуковой индикации},{Длительность каждого такта в 1/128 долях секунды.},{Частота звуковой индикации (Гц)}\"\n}"},"url":"{{base_url}}/api_v1/commands_templates","description":"<p><strong>Добавление нового шаблона команды</strong></p>\n<hr />\n<p><strong>Параметры:</strong><br />\"name\": Название шаблона команды.<br />\"terminal_type\": Тип терминала.<br />\"command_template\": Шаблон команды.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"name\": \"Команда произвольной звуковой индикации зуммером\",\n    \"terminal_type\": \"navtelecom\",\n    \"command_template\": \"*!BEEP {Кол-во импульсов в каждом такте},{Кол-во тактов в звуковой индикации},{Длительность каждого такта в 1/128 долях секунды.},{Частота звуковой индикации (Гц)}\"\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Возвращается созданная запись</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"edfd0b85-b056-4726-9762-fa63dc61efd2\",\n    \"dealer_id\": \"dd11e469-f929-4087-96b2-3911335015c1\",\n    \"terminal_type\": \"navtelecom\",\n    \"name\": \"Команда произвольной звуковой индикации зуммером\",\n    \"command_template\": \"*!BEEP {Кол-во импульсов в каждом такте},{Кол-во тактов в звуковой индикации},{Длительность каждого такта в 1/128 долях секунды.},{Частота звуковой индикации (Гц)}\",\n    \"params\": [\n        \"Кол-во импульсов в каждом такте\",\n        \"Кол-во тактов в звуковой индикации\",\n        \"Длительность каждого такта в 1/128 долях секунды.\",\n        \"Частота звуковой индикации (Гц)\"\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","commands_templates"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"aae56a15-70dc-4098-9da3-2b947decbb7b"},{"name":"/commands_templates?ids=:ids","id":"e7e9ecee-02e2-4369-9ef6-0aa29685b050","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/commands_templates?ids=","description":"<p><strong>Получение шаблонов команд по ID</strong></p>\n<hr />\n<p>Возвращает шаблоны команд.</p>\n<p>Если в параметре ids содержится только один id, то вернется НЕ массив из 1 элемента, а конкретный шаблон команды.</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Оператор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>/commands_templates?ids=edfd0b85-b056-4726-9762-fa63dc61efd2\n\n</code></pre><p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"edfd0b85-b056-4726-9762-fa63dc61efd2\",\n    \"dealer_id\": \"dd11e469-f929-4087-96b2-3911335015c1\",\n    \"terminal_type\": \"navtelecom\",\n    \"name\": \"Команда произвольной звуковой индикации зуммером\",\n    \"command_template\": \"*!BEEP {Кол-во импульсов в каждом такте},{Кол-во тактов в звуковой индикации},{Длительность каждого такта в 1/128 долях секунды.},{Частота звуковой индикации (Гц)}\",\n    \"params\": [\n        \"Кол-во импульсов в каждом такте\",\n        \"Кол-во тактов в звуковой индикации\",\n        \"Длительность каждого такта в 1/128 долях секунды.\",\n        \"Частота звуковой индикации (Гц)\"\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","commands_templates"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"e7e9ecee-02e2-4369-9ef6-0aa29685b050"},{"name":"/commands_templates/:id","id":"2a21f466-db12-4424-99a7-c2ae06212f4c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"68c00e05-a462-4b93-9698-ab411003aa1f\",\n    \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n    \"imei\": \"866795039460264\",\n    \"command\": \"*?V\",\n    \"sent_time\": \"2022-02-11 15:39:26\",\n    \"status\": \"FAIL\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/commands_templates/:id","description":"<p><strong>Обновить данные шаблона команды</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id - ID шаблона команды<br />см метод POST /commands_templates</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Аналогичен GET /commands_templates?ids=:id</p>\n","urlObject":{"path":["api_v1","commands_templates",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID шаблона команды</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"2a21f466-db12-4424-99a7-c2ae06212f4c"},{"name":"/commands_templates/:id","id":"fa9acce5-51e7-4c86-94ed-7d74c4c62fae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/commands_templates/:id","description":"<p><strong>Удаление шаблона команды по его id</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id записи</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Ответ: 200</strong></p>\n<p>Если команда с таким id не найдена, то возвращается ошибка 422.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 422,\n    \"field\": \"id\",\n    \"message\": \"Параметр не найден в базе\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","commands_templates",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID шаблона команды</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"fa9acce5-51e7-4c86-94ed-7d74c4c62fae"},{"name":"/commands_templates/list","id":"e7eec457-3099-4d8b-9b59-345c7d21363d","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true}},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": 0,\n    \"count\": 2,\n    \"conditions\": [\n        {\n            \"field\": \"terminal_type\",\n            \"value\": \"navtelecom\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/commands_templates/list","description":"<p><strong>Поиск шаблонов комманд по фильтру</strong></p>\n<hr />\n<p>Аналогично запросу POST /users/list</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>from - с какого найденного элемента выдавать результат.</p>\n<p>count - максимальное число элементов.</p>\n<p>conditions - условие отбора в виде массива [ {\"field\":\"значение\", \"value\":\"значение\"}, {... и т.д. ...} ].<br />Возможные значения для field - terminal_type, name</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Оператор и выше.</p>\n<hr />\n<p>Примеры:</p>\n<p><strong>1) Получение всех шаблонов команд дилера</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{}\n\n</code></pre><p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 3,\n    \"list\": [\n        {\n            \"id\": \"b6f555e8-4c69-4545-9639-44ef56bb1db5\",\n            \"dealer_id\": \"dd11e469-f929-4087-96b2-3911335015c1\",\n            \"terminal_type\": \"navtelecom\",\n            \"name\": \"Включения выходной линии\",\n            \"command_template\": \"*!{Номер выхода}Y\",\n            \"params\": [\n                \"Номер выхода\"\n            ]\n        },\n        {\n            \"id\": \"eede4765-273c-45da-b2c6-8b331d532402\",\n            \"dealer_id\": \"dd11e469-f929-4087-96b2-3911335015c1\",\n            \"terminal_type\": \"navtelecom\",\n            \"name\": \"Выключения выходной линии\",\n            \"command_template\": \"*!{Номер выхода}N\",\n            \"params\": [\n                \"Номер выхода\"\n            ]\n        },\n        {\n            \"id\": \"b91c6a18-5965-46d4-acbe-e164d4dbf11a\",\n            \"dealer_id\": \"dd11e469-f929-4087-96b2-3911335015c1\",\n            \"terminal_type\": \"navtelecom\",\n            \"name\": \"Запрос модели и версии устройства\",\n            \"command_template\": \"*?V\",\n            \"params\": []\n        }\n    ]\n}\n\n</code></pre><p><strong>2) Получение первых 2 шаблонов команд для navtelecom.</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 2,\n    \"conditions\": [\n        {\n            \"field\": \"terminal_type\",\n            \"value\": \"navtelecom\"\n        }\n    ]\n}\n\n</code></pre><p>Ответ:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 3,\n    \"list\": [\n        {\n            \"id\": \"b6f555e8-4c69-4545-9639-44ef56bb1db5\",\n            \"dealer_id\": \"dd11e469-f929-4087-96b2-3911335015c1\",\n            \"terminal_type\": \"navtelecom\",\n            \"name\": \"Включения выходной линии\",\n            \"command_template\": \"*!{Номер выхода}Y\",\n            \"params\": [\n                \"Номер выхода\"\n            ]\n        },\n        {\n            \"id\": \"eede4765-273c-45da-b2c6-8b331d532402\",\n            \"dealer_id\": \"dd11e469-f929-4087-96b2-3911335015c1\",\n            \"terminal_type\": \"navtelecom\",\n            \"name\": \"Выключения выходной линии\",\n            \"command_template\": \"*!{Номер выхода}N\",\n            \"params\": [\n                \"Номер выхода\"\n            ]\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","commands_templates","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e7eec457-3099-4d8b-9b59-345c7d21363d"},{"name":"/admin_query","id":"c45a175b-d391-4a25-b889-da1c8b1b2f27","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true}},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": 0,\n    \"count\": 100,\n    \"conditions\": [\n        {\n            \"field\": \"imei\",\n            \"value\": \"866795039460264\"\n        }\n    ],\n    \"model\": \"commands\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/admin_query","description":"<p><strong>Поиск шаблонов команд по фильтру в админке</strong></p>\n<hr />\n<p>Аналогично запросу POST /users/list</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>from - с какого найденного элемента выдавать результат</p>\n<p>count - максимальное число элементов</p>\n<p>sortField - поле сортировки, значения<br />[imei]</p>\n<p>sortDesc - сортировка по убыванию? значения \"true\", \"false\".</p>\n<p>conditions - условие отбора в виде массива [ {\"field\":\"значение\", \"value\":\"значение\"}, {... и т.д. ...} ].<br />Возможные значения для field - terminal_type, name</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p>Примеры:</p>\n<p><strong>1) Получение всех шаблонов команд дилера.</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"model\": \"commands_templates\"\n}\n\n</code></pre><p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 3,\n    \"list\": [\n        {\n            \"id\": \"b6f555e8-4c69-4545-9639-44ef56bb1db5\",\n            \"dealer_id\": \"dd11e469-f929-4087-96b2-3911335015c1\",\n            \"terminal_type\": \"navtelecom\",\n            \"name\": \"Включения выходной линии\",\n            \"command_template\": \"*!{Номер выхода}Y\",\n            \"params\": [\n                \"Номер выхода\"\n            ]\n        },\n        {\n            \"id\": \"eede4765-273c-45da-b2c6-8b331d532402\",\n            \"dealer_id\": \"dd11e469-f929-4087-96b2-3911335015c1\",\n            \"terminal_type\": \"navtelecom\",\n            \"name\": \"Выключения выходной линии\",\n            \"command_template\": \"*!{Номер выхода}N\",\n            \"params\": [\n                \"Номер выхода\"\n            ]\n        },\n        {\n            \"id\": \"b91c6a18-5965-46d4-acbe-e164d4dbf11a\",\n            \"dealer_id\": \"dd11e469-f929-4087-96b2-3911335015c1\",\n            \"terminal_type\": \"navtelecom\",\n            \"name\": \"Запрос модели и версии устройства\",\n            \"command_template\": \"*?V\",\n            \"params\": []\n        }\n    ]\n}\n\n</code></pre><p><strong>2) Получение первых 2 шаблонов команд для navtelecom.</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 2,\n    \"conditions\": [\n        {\n            \"field\": \"terminal_type\",\n            \"value\": \"navtelecom\"\n        }\n    ],\n    \"model\": \"commands_templates\"\n}\n\n</code></pre><p>Ответ:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 3,\n    \"list\": [\n        {\n            \"id\": \"b6f555e8-4c69-4545-9639-44ef56bb1db5\",\n            \"dealer_id\": \"dd11e469-f929-4087-96b2-3911335015c1\",\n            \"terminal_type\": \"navtelecom\",\n            \"name\": \"Включения выходной линии\",\n            \"command_template\": \"*!{Номер выхода}Y\",\n            \"params\": [\n                \"Номер выхода\"\n            ]\n        },\n        {\n            \"id\": \"eede4765-273c-45da-b2c6-8b331d532402\",\n            \"dealer_id\": \"dd11e469-f929-4087-96b2-3911335015c1\",\n            \"terminal_type\": \"navtelecom\",\n            \"name\": \"Выключения выходной линии\",\n            \"command_template\": \"*!{Номер выхода}N\",\n            \"params\": [\n                \"Номер выхода\"\n            ]\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","admin_query"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c45a175b-d391-4a25-b889-da1c8b1b2f27"}],"id":"4cc39c19-2454-48ea-8db7-da7d48827620","description":"<p>API по работе с шаблонами команд терминалов</p>\n","event":[{"listen":"prerequest","script":{"id":"3abbea78-7af5-4c69-9814-00c6f22c0c0d","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"f5403b23-3c30-41b7-bfe9-a5246231c95b","type":"text/javascript","exec":[""]}}],"_postman_id":"4cc39c19-2454-48ea-8db7-da7d48827620"},{"name":"Интеграторы","item":[{"name":"/dealers","id":"e1b3b1c4-df27-41ba-bffe-308fb5d04c40","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"type\": {\"key\": \"legal_entity\"}, \n    \"name\": \"ООО \\\"Рога и Копыта\\\"\",\n    \"email\": \"vegeho71508@epeva.com\",\n    \"inn\": \"364322233444512\",\n    \"phone\": \"+7898423456334\",\n    \"password\": \"123456aa\",\n    \"contact_person\": \"Иванов Иван Иванович\",\n    \"address\": \"Лининский проспект, 116к1, Москва, 119415\",\n    \"services\": \"Мониторинг транспорта\",\n    \"tariff_description\": \"от 200 руб/мес за 1 объект\"\n}"},"url":"{{base_url}}/api_v1/dealers","description":"<p><strong>Создание нового дилера</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"type\": Тип организации: “Юридическое лицо” или “Индивидуальный предприниматель”. Справочник с типом    'dealer_types'\n\"name\": Название, строка, обязательно. С таким названием создается компания\n\"email\": Email, строка, обязательно\n\"inn\": ИНН, строка, обязательно\n\"phone\": Телефон контактного центра, строка, обязательно\n\"contact_person\": Контактное лицо, строка, обязательно\n\"is_default\": true, если интегратор по умолчанию, его нельзя удалить.  Нельзя сделать дилера по умолчанию \n\"password\": Пароль \n\"sms_tariff\": Количество доступных SMS для уведоиления за месяц,\n\"address\": Адрес,\n\"services\": Услуги,\n\"tariff_description\": Описание тарифа\n\"telegram_bot_token\": Токен для телеграм бот\n\n</code></pre><hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\ntype': {'key': 'legal_entity'}\n\"name\": \"ООО Новый Скиф\",\n\"email\": \"newskif@skif.pro\",\n\"inn\": \"11122233\",\n\"phone\": \"+78981234567\",\n\"contact_person\": \"Иванов Иван Иванович\",\n\"address\": \"Ленинский проспект, 116к1, Москва, 119415\",\n\"services\": \"Мониторинг транспорта\",\n\"tariff_description\": \"от 200 руб/мес за 1 объект\",\n\"telegram_bot_token\": \"6734990111:RTF6Tik\"\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Возвращается созданная запись.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n\"id\": \"8ce34b65-49da-4bac-bbce-379da83e9638\",\n\"type\": {\"key\": \"legal_entity\", \"value\": \"Юридическое лицо\", \"type\": \"dealer_types\"}\n\"is_default\": false,\n\"name\": \"ООО \"Новый Скиф\"\",\n\"inn\": \"11122233444\",\n\"phone\": \"+78981234568\",\n\"email\": \"newskif@skif.pro\",\n\"contact_person\": \"Иванов Иван Иванович\",\n\"address\": \"Лининский проспект, 116к1, Москва, 119415\",\n\"services\": \"Мониторинг транспорта\",\n\"tariff_description\": \"от 200 руб/мес за 1 объект\",\n\"telegram_bot_token\": \"6734990111:RTF6Tik5\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","dealers"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e1b3b1c4-df27-41ba-bffe-308fb5d04c40"},{"name":"/dealers/invite","id":"3cbe2742-7200-47e8-b49c-853667fb1362","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"gopixo6537@epeva.com\"\n}"},"url":"{{base_url}}/api_v1/dealers/invite","description":"<p><strong>Приглашение к дилеру</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>'email' - приглашаемая электронная почта</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n\"email\": \"abc@mail.com\"\n}\n\n</code></pre><p>Возвращается OK если такоq email не зарегистрован в системе и правильный email, иначе ошибка со статусом 422&amp;<br />Ссылка в писmме на почту направляет на стрaницу /register?invite_id=&amp;email=</p>\n","urlObject":{"path":["api_v1","dealers","invite"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3cbe2742-7200-47e8-b49c-853667fb1362"},{"name":"/registrate_dealer","id":"c111e754-874c-4698-9077-a0cc4506ae34","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"type\": {\"key\": \"legal_entity\"}, \n    \"name\": \"ООО \\\"Новая Скиф\\\"\",\n    \"email\": \"newskif2@skif.pro\",\n    \"inn\": \"111222334454\",\n    \"password\": \"12345A\",\n    \"phone\": \"+789812345687\",\n    \"contact_person\": \"Иванов Иван Иванович\"\n}"},"url":"{{base_url}}/api_v1/registrate_dealer","description":"<p><strong>Регистрация дилера</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"type\": Тип организации: “Юридическое лицо” или “Индивидуальный предприниматель”. Справочник с типом    'dealer_types'\n\"name\": Название компании, строка, обязательно. С таким названием создается компания.\n\"email\": Email, строка, обязательно\n\"inn\": ИНН, строка, обязательно\n\"phone\": Телефон контактного центра, строка, обязательно\n\"contact_person\": Контактное лицо, строка, обязательно\n\"is_default\": true, если интегратор по умолчанию, его нельзя удалить.  Нелзя сделать интегратора по умолчанию \n\"password\": Пароль \n\"captcha\" - код с картинки получамой методом GET /captcha\n\n</code></pre><hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n\"type\": {\"key\": \"legal_entity\"}\n\"name\": \"ООО Новый Скиф\",\n\"email\": \"skif@skif.pro\",\n\"inn\": \"11122233\",\n\"phone\": \"+78981234567\",\n\"contact_person\": \"Иванов Иван Иванович\",\n\"capcha\": \"atxgs\"\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong><br />Код 200 и пустой body в случае успеха.<br />Если уже есть аккаунт (см. /approve) с таким email возращается код 422 и body c ошибкой session.errors.emailAlreadyRegistered<br />В случае частого вызова метода, а именно чаще чем раз в 30 секунд возвращаем код 400 и body validation.errors.often_request</p>\n","urlObject":{"path":["api_v1","registrate_dealer"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c111e754-874c-4698-9077-a0cc4506ae34"},{"name":"/dealers?ids=:ids","id":"783f9569-213c-4993-97b5-9f0d8604deba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/dealers?ids=","description":"<p><strong>Поиск дилера по ID</strong></p>\n<hr />\n<p>Возвращает массив дилеров по ID.</p>\n<p>Если в параметре ids содержится только один id, то вернется НЕ массив из 1 элемента, а конкретный интергатор.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>/dealers?ids=8ce34b65-49da-4bac-bbce-379da83e9638\n\n</code></pre><p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"8ce34b65-49da-4bac-bbce-379da83e9638\",\n    \"type\": {\n        \"key\": \"legal_entity\",\n        \"type\": \"dealer_types\",\n        \"value\": \"Юридическое лицо\"\n    },\n    \"inn\": \"1231231233220\",\n    \"phone\": \"+7899323236\",\n    \"email\": \"email@skif.com\",\n    \"contact_person\": \"Ivanov Ivan\",\n    \"name\": \"СКИФ ЭПП\",\n    \"server\": \"212.158.160.177\",\n    \"sms_tariff\": 1000,\n    \"address\": \"Лининский проспект, 116к1, Москва, 119415\",\n    \"services\": \"Мониторинг транспорта\", \n    \"tariff_description\": \"от 200 руб/мес за 1 объект\",\n    \"billing\": {\n        \"merchant\": \"111222333\",\n        \"system\": \"MODULBANK\",\n        \"key\": \"key123xyz\",\n        \"default_unit_price\": 260,\n        \"default_trial_length_days\": 10,\n        \"default_period_length_days\": 30,\n        \"qr_unit_price\": 270,\n        \"qr_trial_length_days\": 20,\n        \"qr_period_length_days\": 40,\n        \"public_offer_path\": \"/files/dealer_offer/1933792985_8ce34b65-49da-4bac-bbce-379da83e9638.pdf\"\n    },\n    \"is_default\": false,\n    \"telegram_bot_token\": \"6734990111:RTF6Tik5\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","dealers"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"783f9569-213c-4993-97b5-9f0d8604deba"},{"name":"/dealer/:inn","id":"6589e0c6-7f9f-45b9-84de-dde162e10367","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/dealer/:inn","description":"<p><strong>Получение общедоступной информации дилера по ИНН</strong></p>\n<hr />\n<p>Возвращает объект дилера по ИНН.</p>\n<p>Если такой дилер не найден, то приходит ошибка с кодом 422, а в теле ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\"code\":4220,\"field\":\"\",\"message\":\"Не найден такой дилер\"}\n\n</code></pre><hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api_v1/dealer/364322233444512\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"name\": \"ООО \\\"Рога и Копыта\\\"\", //Имя\n    \"type\": { //Тип организации,key=legal_entity для Юридическое лицо, key=individual_entrepreneur для \n Индивидуальный предприниматель         \n                 \"key\": \"legal_entity\",\n        \"type\": \"dealer_types\",\n        \"value\": \"Юридическое лицо\"\n    },\n    \"inn\": \"364322233444512\", // ИНН\n    \"address\": \"Ленинский проспект, 116к1, Москва, 119415\",//Адрес\n    \"services\": \"Мониторинг транспорта\",//Услуги\n    \"tariff_description\": \"от 200 руб/мес за 1 объект\",// Описание тарифа\n    \"contact_person\": \"Иванов Иван Иванович\",//Контактное лицо\n    \"email\": \"vegeho71508@epeva.com\",//Email\n    \"phone\": \"7898423456334\",//Телефон\n    \"system\": { //Система оплаты, key=MODULBANK для модульбанка, key=PAYBOX для paybox \n        \"key\": \"MODULBANK\",\n        \"type\": \"payment_types\",\n        \"value\": \"Модульбанк\"\n    },\n    \"public_offer_link\": \"https://dev5.skif.pro/api_v1//files/dealer_offer/1397418377_526c18df-d7d2-4de5-b50a-263515a374e2.pdf\" // Ссылка для загрузки оферту \n}\n\n</code></pre>","urlObject":{"path":["api_v1","dealer",":inn"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"inn"}]}},"response":[],"_postman_id":"6589e0c6-7f9f-45b9-84de-dde162e10367"},{"name":"/dealers/:id","id":"4b9584c4-8f57-4b15-83a4-320d52930ca4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"dd11e469-f929-4087-96b2-3911335015c1\",\n    \"is_default\": false,\n    \"type\": {\n        \"key\": \"legal_entity\",\n        \"type\": \"dealer_types\",\n        \"value\": \"Юридическое лицо\"\n    },\n    \"inn\": \"34324324324\",\n    \"phone\": \"+7787878\",\n    \"email\": \"ewqew123@mail.com\",\n    \"contact_person\": \"XXXXXXX\",\n    \"name\": \"Мониторинг Плюс Москва\",\n    \"server\": \"178.90.136.62\",\n    \"sms_tokens\": [\"dy1U71vtQCmhd3ssQCdlAg:APA91bEXYJWhD9cyEn4ey8x_1gEetf3-SRBVD6w_F9NIariIeYZhMV8fSC38RlkX4tiVmTTZ8Q1L-SpOjPf97L0u-FMHCseA0AhNnCYavVoFcSApJ-4dSOBi66EG74I4Gi4G3RGwWYOk\"],\n    \"_default\": false,\n    \"_delete\": false\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/dealers/:id","description":"<p><strong>Обновить данные дилера</strong></p>\n<hr />\n<p><strong>Роль:</strong> Редактор тарифа и выше.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"8ce34b65-49da-4bac-bbce-379da83e9638\", //ID дилера\n    \"type\": {  // Тип организации\n        \"key\": \"legal_entity\",\n        \"type\": \"dealer_types\",\n        \"value\": \"Юридическое лицо\"\n    },\n    \"inn\": \"1231231233220\", //ИНН\n    \"phone\": \"+7899323236\", // Номер телефона\n    \"email\": \"email@skif.com\", // Email\n    \"contact_person\": \"Ivanov Ivan\", //Контактное лицо\n    \"name\": \"СКИФ ЭПП\",//Название компании\n    \"server\": \"212.158.160.177\",//Сервер для отправки данных терминала\n    \"sms_tariff\": 1000, //SMS тариф\n    \"address\": \"Лининский проспект, 116к1, Москва, 119415\",//Адрес\n    \"services\": \"Мониторинг транспорта\", // Услуги\n    \"tariff_description\": \"от 200 руб/мес за 1 объект\", //Описание тарифа\n    \"billing\": { //Биллинг\n        \"system\": \"MODULBANK\", //Платежная система, обязательное, получается из справочника type = payment_types\n        \"merchant\": \"111222333\",// Идентификатор магазина, обязательное\n        \"key\": \"key123xyz\",//Секретный ключ, обязательное\n        \"default_unit_price\": 260, Стоимость одного объекта по умолчанию, обязательное\n        \"default_trial_length_days\": 10, Пробный период (дней) по умолчанию, обязательное\n        \"default_period_length_days\": 30, Период оплаты (дней)  по умолчанию, обязательное\n        \"qr_unit_price\": 270, Стоимость одного объекта  по qr, необязательное\n        \"qr_trial_length_days\": 20,Пробный период (дней) по qr, необязательное\n        \"qr_period_length_days\": 40, Период оплаты (дней)  по qr, необязательное\n        \"public_offer_path\": \"/files/dealer_offer/1933792985_8ce34b65-49da-4bac-bbce-379da83e9638.pdf\" //Публичная оферта (Прикрепленный файл и подсказка - это соглашение об использовании мобильного приложения будет отображаться вашим пользователям), необязательное\n    },\n    \"is_default\": false,\n    \"telegram_bot_token\": \"6734990111:RTF6Tik\"\n}\n\n</code></pre><p>см метод POST /dealers</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Аналогичен одному объекту из возврата метода GET /dealers?ids=:id</p>\n","urlObject":{"path":["api_v1","dealers",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID интегратора</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"4b9584c4-8f57-4b15-83a4-320d52930ca4"},{"name":"/dealers/:id/block_unblock","id":"b290d571-0105-4b29-9bd9-a996ad1fca69","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"block\": true\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/dealers/:id/block_unblock","description":"<p><strong>Блокировка / разблокировка интегратора</strong></p>\n<hr />\n<p>Блокирует / разблокирует интегратора.</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id - ID интегратора</p>\n<p>В теле запроса отправить \"block\": true для блокировки, \"block\": false для разблокировки</p>\n<hr />\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"block\": true\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","dealers",":id","block_unblock"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID интегратора</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"b290d571-0105-4b29-9bd9-a996ad1fca69"},{"name":"/dealers/:id","id":"87ee1cb5-172b-471b-964a-ea2c19c26a61","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/dealers/:id","description":"<p><strong>Удаление дилера по его id</strong></p>\n<hr />\n<p>Удаляет дилера</p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id записи</p>\n<hr />\n<p><strong>Ответ:</strong> 200</p>\n<p>Если дилер с таким id не найден возвращается ошибка 422.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 422,\n    \"field\": \"id\",\n    \"message\": \"Параметр не найден в базе\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","dealers",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID интегратора</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"87ee1cb5-172b-471b-964a-ea2c19c26a61"},{"name":"/dealers_admin_query","id":"9a6a247f-62fe-4247-b71a-42a3a02d9267","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"connection":true}},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n   \"value\": \"Новая Скиф\",\n   \"from\": 0,\n   \"count\": 100\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/dealers_admin_query","description":"<p><strong>Поиск интеграторов в админке</strong></p>\n<hr />\n<p>Поиск выполняется по полей name, email, phone</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>Найти по названию \"Новый Скиф\"</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n   \"value\": \"Новый Скиф\",\n   \"from\": 0,\n   \"count\": 100\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 2,\n    \"list\": [\n        {\n            \"id\": \"2cbd9d97-329d-4631-9161-b11556561b77\",\n            \"is_default\": false,\n            \"name\": \"ООО Новый Скиф\",\n            \"inn\": \"11122233\",\n            \"phone\": \"+78981234567\",\n            \"email\": \"skif@skif.pro\",\n            \"contact_person\": \"Иванов Иван Иванович\",\n            \"regions\": [],\n            \"_default\": false\n        },\n        {\n            \"id\": \"8ce34b65-49da-4bac-bbce-379da83e9638\",\n            \"is_default\": false,\n            \"name\": \"ООО \\\"Новый Скиф2\\\"\",\n            \"inn\": \"11122233444\",\n            \"phone\": \"+78981234568\",\n            \"email\": \"newskif@skif.pro\",\n            \"contact_person\": \"Иванов Иван Иванович\",\n            \"regions\": [\n                \"Узбекистан\",\n                \"Туркменистан\"\n            ],\n            \"_default\": false\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","dealers_admin_query"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"9a6a247f-62fe-4247-b71a-42a3a02d9267"},{"name":"/dealers/send_email/static","id":"3d00c23a-88b8-4411-b950-a6cc55d74c4d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"dealer_key\": \"legal_entity\",\n    \"company_name\": \"company_name\",\n    \"inn\": \"456984332\",\n    \"username\": \"username\",\n    \"user_email\": \"user_email\",\n    \"phone\" : \"+7999999999\",\n    \"captcha\" : \"p54xa\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/dealers/send_email/static","description":"<p>dealer_key:</p>\n<p>legal_entity</p>\n<p>individual_entrepreneur</p>\n","urlObject":{"path":["api_v1","dealers","send_email","static"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3d00c23a-88b8-4411-b950-a6cc55d74c4d"}],"id":"4353f434-b660-42b3-9319-8115aeed709c","description":"<p>API по работе с Интеграторами</p>\n","event":[{"listen":"prerequest","script":{"id":"d0c52b86-0711-41f2-9fd9-95e389d79953","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"eccce03b-25b8-4f22-917e-f65e1ce1f797","type":"text/javascript","exec":[""]}}],"_postman_id":"4353f434-b660-42b3-9319-8115aeed709c"},{"name":"Коробочное решение","item":[{"name":"/boxes/create_code","id":"19c94d7c-98d1-4f96-a00e-050df0917b05","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"units\": [\n        {\"id\": \"c031563b-31df-43ab-b60d-7c79cd4ae500\"}\n    ]\n}"},"url":"{{base_url}}/api_v1/boxes/create_code","description":"<p><strong>Создание нового кода для коробочного решения</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>units: список объектов (пока обрабатывается только один объект)</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"units\": [\n        {\"id\": \"c031563b-31df-43ab-b60d-7c79cd4ae500\"}\n    ]\n}\n\n</code></pre><hr />\n<p>Пример ответа:</p>\n<p>Возвращается созданная запись</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"e5020ef9-1d9f-4e80-a189-d54b5a6535a8\",\n    \"dealer_id\": \"b0de9e77-3ae1-4a1d-b246-6ba1bccf0052\",\n    \"unit_id\": \"c031563b-31df-43ab-b60d-7c79cd4ae500\",\n    \"code\": \"A6P29V\",\n    \"link\": \"https://app.skif.page.link/?link=https://dev.skif.pro/boxes?code=A6P29V&amp;apn=ru.skifapp.skif&amp;amv=27&amp;afl=https://dev.skif.pro/c\",\n    \"used\": false\n}\n\n</code></pre><p>Имеет значение code - Шестизначный код и link - cсылка для QR кода.<br />Если уже был создан код для данного объекта тогда возвращается созданная запись.</p>\n","urlObject":{"path":["api_v1","boxes","create_code"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"19c94d7c-98d1-4f96-a00e-050df0917b05"},{"name":"/boxes/create_unit","id":"19bc4431-432e-4099-a0b6-3c3fdaf8aacc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"new_user\": false,\n    \"code\": \"SYSM1I\",\n    \"company\": {\n        \"id\": \"43e5a836-8070-4151-9e77-a5954d4d8b5d\"\n    },\n    \"unit_name\": \"Bersendz benz Bus 111\",\n    \"unit_type\": {\n        \"key\": \"car\"\n    }\n}"},"url":"{{base_url}}/api_v1/boxes/create_unit","description":"<p><strong>Создание объекта по коду из коробочного решения</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<ol>\n<li>Если выбран \"Я новый пользователь SKIF.PRO\" то выполняется регистрация, при этом указать new_user=true и данные для регистрация.</li>\n</ol>\n<p>Пример запроса:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"new_user\": true, \n    \"code\": \"A6P29V\", // код\n    \"userProviderId\": \"gurkacarti@vusra.com\", // email\n    \"type\": \"EMAIL\", \n    \"company_name\": \"Company123\", // название компании\n    \"name\": \"Саша\", // Имя пользователя\n    \"phone\": \"+7(894)455-32-43\", // телефон\n    \"password\": \"12345abc\", //пароль\n    \"timezone\": {\n        \"key\": \"UTC+3\"// получить список от GET /properties type=timezones\n    }, // таймзона компании\n    \"unit_name\": \"Bersendz benz Bus 455\", // Имя объекта\n    \"unit_type\": {\"key\": \"bus\"} // Тип объекта, получить список от GET /properties type=unit_type\n}\n\n</code></pre><hr />\n<p>Создается новая компания, пользователь с указанном email, паролем и объектом. Возвращает новую сессию со статусом OK, если всё ok, иначе ошибка со статусом 422.</p>\n<ol>\n<li>Если выбран \"У меня есть учетная запись SKIF.PRO\" тогда указать код, компанию и данные объекта</li>\n</ol>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"new_user\": false,\n    \"code\": \"ARKMV1\",\n    \"company\": {\n        \"id\": \"9b18ce93-c4eb-4479-a978-36c640c54f31\"\n    },\n    \"unit_name\": \"Bersendz benz Bus 455\",\n    \"unit_type\": {\"key\": \"bus\"}\n}\n\n</code></pre><hr />\n<p>﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n","urlObject":{"path":["api_v1","boxes","create_unit"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"19bc4431-432e-4099-a0b6-3c3fdaf8aacc"},{"name":"/boxes/:id","id":"0ab08474-46ed-46e4-a022-baf001f51eb7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"message\": \"abcXYZ\"\n}"},"url":"{{base_url}}/api_v1/boxes/:id","description":"<p><strong>Обновление данных кода по ID</strong></p>\n<hr />\n<p><strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Параметры:</strong><br />message - информационный текст</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"message\": \"some message\"\n}\n\n</code></pre><hr />\n<p>Возвращает обновленную запись</p>\n","urlObject":{"path":["api_v1","boxes",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"0ab08474-46ed-46e4-a022-baf001f51eb7"},{"name":"/boxes?code=<code>","id":"8620f3aa-c589-4869-b930-f7bc0c1203a8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/api_v1/boxes?code=AT1FPU","description":"<p><strong>Получение информации о коде</strong></p>\n<hr />\n<p><strong>Параметры:</strong><br />code - шестизначный код в коробке</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Ответ:</strong><br />used - true если уже использовался</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"483f0de0-b8d1-4822-b672-d7d35c659373\",\n    \"dealer_id\": \"dd11e469-f929-4087-96b2-3911335015c1\",\n    \"unit_id\": \"4bb05676-1d99-4552-a037-1288c3e60b83\",\n    \"code\": \"AT1FPU\",\n    \"link\": \"https://appskif.page.link/?link=https://dev.skif.pro/c?code=AT1FPU&amp;apn=ru.skifapp.skif&amp;amv=27&amp;ibi=com.skifApp.SKIF2&amp;isi=1540602214&amp;imv=1.4.6&amp;efr=1\",\n    \"used\": true\n}\n\n</code></pre>","urlObject":{"path":["api_v1","boxes"],"host":["{{base_url}}"],"query":[{"key":"code","value":"AT1FPU"}],"variable":[]}},"response":[],"_postman_id":"8620f3aa-c589-4869-b930-f7bc0c1203a8"}],"id":"12617d46-663b-4ab9-a757-e5dce05eebcf","description":"<p>API по работе с коробочным решением</p>\n","event":[{"listen":"prerequest","script":{"id":"b6ae4c20-7d9b-4c15-a4d4-3aa2ebe38d09","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"85a3ba9c-6c19-4553-aac7-b6d5f5d3361c","type":"text/javascript","exec":[""]}}],"_postman_id":"12617d46-663b-4ab9-a757-e5dce05eebcf"},{"name":"Эмулятор трека","item":[{"name":"/emulators/start","id":"8a5cf57f-92e5-4701-be80-5d1675b7d7a7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/emulators/start?terminal_type=egts&imei=862273040897712&fake_imei=33344455566777&from=2023-09-30 21:00:00&to=2023-10-00 16:41:55","description":"<p><strong>Начать эмуляцию</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>terminal_type - ключ типа терминала, протокол реального и фейкого объекта должен быть таким же.</p>\n<p>imei - реальный imei, с которого нужно начинать эмуляцию.<br />fake_imei - imei созданного объекта для теста.<br />date_from - Дата и время начала, в формате yyy-MM-dd HH:mm:ss в UTC<br />date_to - Дата и время окончания, в формате yyy-MM-dd HH:mm:ss в UTC</p>\n<hr />\n<p><strong>Пример запроса:</strong><br />GET <a href=\"https://dev.skif.pro/api_v1/emulators/start?imei=862273041373150&amp;fake_imei=33344455566777&amp;from=2021-11-11\">https://dev.skif.pro/api_v1/emulators/start?imei=862273041373150&amp;fake_imei=33344455566777&amp;from=2021-11-11</a> 10:10:00&amp;to=2021-11-11 10:15:00</p>\n","urlObject":{"path":["api_v1","emulators","start"],"host":["{{base_url}}"],"query":[{"key":"terminal_type","value":"egts"},{"key":"imei","value":"862273040897712"},{"key":"fake_imei","value":"33344455566777"},{"key":"from","value":"2023-09-30 21:00:00"},{"key":"to","value":"2023-10-00 16:41:55"}],"variable":[]}},"response":[],"_postman_id":"8a5cf57f-92e5-4701-be80-5d1675b7d7a7"},{"name":"/emulators/stop","id":"b84e16f7-bd86-4edd-9d1d-35ed380ac7b5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/emulators/stop?fake_imei=33344455566777","description":"<p><strong>Остановить эмуляцию</strong></p>\n<hr />\n<p>Например:<br />GET <a href=\"https://dev.skif.pro/api_v1/emulators/stop?fake_imei=33344455566777\">https://dev.skif.pro/api_v1/emulators/stop?fake_imei=33344455566777</a></p>\n","urlObject":{"path":["api_v1","emulators","stop"],"host":["{{base_url}}"],"query":[{"key":"fake_imei","value":"33344455566777"}],"variable":[]}},"response":[],"_postman_id":"b84e16f7-bd86-4edd-9d1d-35ed380ac7b5"},{"name":"/emulators/show","id":"52072e4b-5dcb-4ac0-9810-a9615042729f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/emulators/show","description":"<p><strong>Получение списка фейковых imei для которых запущен эмулятор</strong></p>\n","urlObject":{"path":["api_v1","emulators","show"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"52072e4b-5dcb-4ac0-9810-a9615042729f"}],"id":"f4edca35-9895-45b9-957f-37939fe8dbd0","_postman_id":"f4edca35-9895-45b9-957f-37939fe8dbd0","description":""},{"name":"Интеграция с ЕФИС","item":[{"name":"/efis/units","id":"b0a81646-5e3b-4bdd-9053-42d368e0bf09","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/efis/units","description":"<p><strong>Получение всех объектов</strong></p>\n<hr />\n<p>Возвращает массив - список объектов в компании. Какдые строки имеют следующие поля:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n\"id\": &lt;uint&gt;, //ID объекта\n\"nm\": &lt;text&gt;, //название\n\"pos\":  { // Последняя информация о местоположение\n    “t”:&lt;unit&gt;, //UTC время  в секундах\n”y”:&lt;double&gt;,//широта\n”x”:&lt;double&gt;, //долгота\n”s”:&lt;int&gt;, //скорость \n”c”:&lt;int&gt; ,// курс \n”sc”: &lt;int&gt;// количество спутников\n},\n\"tempsens\": [ // Информация о показаниях датчиков температуры\n    {\n    \"id”:&lt;bigint&gt;, //ID датчика\n            \"n\":&lt;text&gt;, //название датчика\n            \"p\":&lt;text&gt;, //первый параметр датчика\n            \"v\":&lt;double&gt; //значение датчика\n  },\n  …\n]\n   }\n]    \n\n</code></pre><hr />\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"id\": 1777673690,\n        \"nm\": \"Маршрутка\",\n        \"pos\": {\n            \"t\": 1645709415,\n            \"y\": 53.141914,\n            \"x\": 63.581444,\n            \"s\": 0.0,\n            \"c\": 120.0,\n            \"sc\": 18.0\n        },\n        \"tempsens\": [\n            {\n                \"id\": 5406794727589329475,\n                \"n\": \"Temp sensor\",\n                \"p\": \"temp_d_1\",\n                \"v\": 13.6\n            }\n        ]\n    },\n    …\n]\n\n</code></pre>","urlObject":{"path":["api_v1","efis","units"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b0a81646-5e3b-4bdd-9053-42d368e0bf09"},{"name":"/efis/units/:id/messages/:time_from/:time_to?index_from=<uint>&index_to=<uint>","id":"22a75c8c-0e99-4f6a-a403-9bdbd6d464e7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/efis/units/:id/messages/:time_from/:time_to?index_from=&index_to","description":"<p><strong>Получение сообщений для одного объекта</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>   {id}: &lt;uint&gt; ID объекта \n   {time_from}: &lt;uint&gt; начало интервала (время UTC, Unix  timestamp в секундах)\n   {time_to}: &lt;uint&gt; окончание интервала (время UTC, Unix  timestamp в секундах)\n   {index_from}: &lt;uint&gt; индекс первого сообщения, которое будет получено, индексы начинается с нуля\n   {index_to}: &lt;uint&gt; индекс последного сообщения, которое будет получено, index_to не принадлежит интервалу, т.е сообщении в позициях [index_from, index_to). index_to-index_from не может быть больше 1000\n\n</code></pre><hr />\n<p>﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p>Возвращает массив - список сообщений.<br />Какдые строки имеют следующие поля:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n   {\n     “t”: &lt;uint&gt;, //время UTC в сукундах\n     “index”:&lt;uint&gt;, //индекс сообщении, индексы начиначется с нуля\n     “pos”: {} //  // информация о позиции в этом сообщении, см. GET /api_v1/units\n     \"p\": {  // значения параметров, отображается только не нулевые значения \n           “key”: value\n      },\n     \"tempsens\": [ // Значения температурных датчиков, см. GET /api_v1/units\n      ….\n     ]\n   }\n  …\n]\n\n</code></pre><p><strong>Пример:</strong><br />Запрос:<br />/api_v1/efis/units/1777673690/messages/1645448226/1645534626?index_from=0&amp;index_to=1000</p>\n<p>Ответ:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[{\n        \"t\": 1645448228,\n        \"index\": 0,\n        \"pos\": {\n            \"y\": 53.214832,\n            \"x\": 63.637047,\n            \"z\": 0,\n            \"s\": 0,\n            \"c\": 221,\n            \"sc\": 15\n        },\n        \"p\": {\n            \"navi_sensor_st_rec\": 1.0,\n            \"hours_t37\": 15.0,\n            \"gsm_level\": 31.0,\n            \"navi_sensor_st_valid\": 1.0,\n            \"voltage_main\": 28361.0,\n            \"virt_acc_wakeup\": 1.0,\n            \"vol_a_in_1\": 34.0,\n            \"latitude\": 53.214832,\n            \"entry_num\": 1078507.0,\n            \"angle\": 221.0,\n            \"dut_485_1\": 592.0,\n            \"event_id\": 4545.0,\n            \"virt_acc_sh3\": 1.0,\n            \"communication_st\": 1.0,\n            \"longitude\": 63.637047,\n            \"satellites\": 15.0,\n            \"mileage_cur\": 33964.230469,\n            \"altitude\": 1665.0,\n            \"voltage_res\": 4127.0,\n            \"dut_temp_485_1\": 5.0\n        },\n        \"tempsens\": [{\n            \"id\": 5406794727589329475,\n            \"n\": \"Temp sensor\",\n            \"p\": \"temp_d_1\",\n            \"v\": 13.4\n        }]\n    },\n    {\n        \"t\": 1645448229,\n        \"index\": 1,\n        \"pos\": {\n            \"y\": 53.214825,\n            \"x\": 63.637035,\n            \"z\": 0,\n            \"s\": 5,\n            \"c\": 221,\n            \"sc\": 15\n        },\n        \"p\": {\n            \"speedkph\": 5.0,\n            \"navi_sensor_st_rec\": 1.0,\n            \"hours_t37\": 15.0,\n            \"gsm_level\": 31.0,\n            \"navi_sensor_st_valid\": 1.0,\n            \"voltage_main\": 28362.0,\n            \"virt_acc_wakeup\": 1.0,\n            \"vol_a_in_1\": 34.0,\n            \"latitude\": 53.214825,\n            \"entry_num\": 1078508.0,\n            \"angle\": 221.0,\n            \"dut_485_1\": 592.0,\n            \"event_id\": 5897.0,\n            \"virt_acc_sh3\": 1.0,\n            \"communication_st\": 1.0,\n            \"longitude\": 63.637035,\n            \"satellites\": 15.0,\n            \"mileage_cur\": 33964.234375,\n            \"altitude\": 1668.0,\n            \"voltage_res\": 4127.0,\n            \"dut_temp_485_1\": 5.0\n        },\n        \"tempsens\": [{\n            \"id\": 5406794727589329475,\n            \"n\": \"Temp sensor\",\n            \"p\": \"temp_d_1\",\n            \"v\": 14.5\n        }]\n    }\n…\n]\n\n</code></pre>","urlObject":{"path":["api_v1","efis","units",":id","messages",":time_from",":time_to"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Индекс первого сообщения, которое будет получено</p>\n","type":"text/plain"},"key":"index_from","value":""},{"description":{"content":"<p>Индекс последного сообщения, которое будет получено</p>\n","type":"text/plain"},"key":"index_to","value":""}],"variable":[{"description":{"content":"<p>ID объекта</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"},{"description":{"content":"<p>Начало интервала (время UTC, Unix  timestamp в секундах</p>\n","type":"text/plain"},"type":"any","value":"","key":"time_from"},{"description":{"content":"<p>Окончание интервала (время UTC, Unix  timestamp в секундах)</p>\n","type":"text/plain"},"type":"any","value":"","key":"time_to"}]}},"response":[],"_postman_id":"22a75c8c-0e99-4f6a-a403-9bdbd6d464e7"},{"name":"/efis/units/messages/:time_from/:time_to?index_from=<uint>&index_to=<uint>","id":"c8f134de-83b0-4e85-b8d7-9d5c49aa3f8b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/efis/units/messages/:time_from/:time_to?index_from=&index_to=","description":"<p><strong>Получение сообщений для всех объектов</strong></p>\n<hr />\n<p>Параметры:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>   {time_from}: &lt;uint&gt; начало интервала (время UTC, Unix  timestamp в секундах)\n   {time_to}: &lt;uint&gt; окончание интервала (время UTC, Unix  timestamp в секундах)\n   {index_from}: &lt;uint&gt; индекс первого сообщения, которое будет получено, индексы начинается с нуля\n   {index_to}: &lt;uint&gt; индекс последного сообщения, которое будет получено, index_to не принадлежит интервалу, т.е сообщении в позициях [index_from, index_to). index_to-index_from не может быть больше 1000\n\n</code></pre><hr />\n<p>﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p>Возвращает массив - список сообщений.<br />Какдые строки имеют следующие поля:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n   {\n     “t”: &lt;uint&gt;, //время UTC в секундах\n     “index”:&lt;uint&gt;, //индекс сообщения, индексы начиначется с нуля\n     “id”:&lt;uint&gt;, //ID объекта\n     “pos”: {} //  // информация о позиции в этом сообщении, см. GET /api_v1/units\n     \"p\": {  // значения параметров, отображается только не нулевые значения \n           “key”: value\n      },\n     \"tempsens\": [ // Значения температурных датчиков, см. GET /api_v1/units\n      ….\n     ]\n   }\n  …\n]\n\n</code></pre><p>Сообщения сортируются по объектам, для объекты по времени</p>\n<hr />\n<p><strong>Пример:</strong><br />Запрос:<br />/api_v1/efis/units/messages/1645448226/1645534626?index_from=2&amp;index_to=4</p>\n<p>Ответ:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n  {\n    \"index\": 2,\n    \"id\": 906772659,\n    \"t\": 1645500784,\n    \"tp\": \"ud\",\n    \"pos\": {\n      \"y\": 58.205078125,\n      \"x\": 54.68750762939453,\n      \"z\": 0,\n      \"s\": 32,\n      \"c\": 117,\n      \"sc\": 9\n    },\n    \"tempsens\": [],\n    \"p\": {\n      \"altitude\": 126,\n      \"speedkph\": 32,\n      \"pwr_int\": 36,\n      \"latitude\": 58.205078125,\n      \"pwr_ext\": 142,\n      \"angle\": 117,\n      \"longitude\": 54.68750762939453,\n      \"satellites\": 9,\n      \"hdop\": 112,\n      \"is_valid\": 1,\n      \"input_2\": 8,\n      \"input_4\": 19\n    }\n  },\n  {\n    \"index\": 3,\n    \"id\": 906772659,\n    \"t\": 1645500787,\n    \"tp\": \"ud\",\n    \"pos\": {\n      \"y\": 58.204891204833984,\n      \"x\": 54.688175201416016,\n      \"z\": 0,\n      \"s\": 26,\n      \"c\": 119,\n      \"sc\": 9\n    },\n    \"tempsens\": [],\n    \"p\": {\n      \"altitude\": 126,\n      \"speedkph\": 26,\n      \"pwr_int\": 36,\n      \"latitude\": 58.204891204833984,\n      \"pwr_ext\": 141,\n      \"angle\": 119,\n      \"longitude\": 54.688175201416016,\n      \"satellites\": 9,\n      \"hdop\": 112,\n      \"is_valid\": 1,\n      \"input_4\": 19\n    }\n  }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","efis","units","messages",":time_from",":time_to"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Индекс первого сообщения, которое будет получено</p>\n","type":"text/plain"},"key":"index_from","value":""},{"description":{"content":"<p>Индекс последного сообщения, которое будет получено</p>\n","type":"text/plain"},"key":"index_to","value":""}],"variable":[{"description":{"content":"<p>Начало интервала (время UTC, Unix  timestamp в секундах)</p>\n","type":"text/plain"},"type":"any","value":"","key":"time_from"},{"description":{"content":"<p>Окончание интервала (время UTC, Unix  timestamp в секундах)</p>\n","type":"text/plain"},"type":"any","value":"","key":"time_to"}]}},"response":[],"_postman_id":"c8f134de-83b0-4e85-b8d7-9d5c49aa3f8b"}],"id":"2cd99586-4551-48af-9464-84794b972f97","_postman_id":"2cd99586-4551-48af-9464-84794b972f97","description":""},{"name":"Отзывы","item":[{"name":"/feedback","id":"81e445f1-f3ff-4e64-bc5b-09af26b90e7e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"rating\": 5,\n    \"type\": {\"key\": \"proposal\"},\n    \"message\": \"Все супер!!!\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/feedback","description":"<p><strong>Создание нового отзыва</strong></p>\n<hr />\n<p>Поля запроса JSON:<br />rating - число от 1 до 5, обязательное<br />message - текст отзыва, обязательное<br />type - тип отзыва, выбрать из GET /properties где type=feedback_type, обязательное</p>\n<p>Пример запроса:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"rating\": 5,\n    \"type\": {\"key\": \"proposal\"},\n    \"message\": \"Все супер!!!\"\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"78516162-cf8a-4056-bdaa-73ca6311a1d5\",\n    \"company\": {\n        \"id\": \"1792239f-47eb-42b3-aef7-c49a3cc6988e\",\n        \"name\": \"Мониторинг Плюс Москва\"\n    },\n    \"user\": {\n        \"id\": \"6e8f4833-c430-4509-ac5e-e1802691655c\",\n        \"name\": \"azat\",\n        \"email\": \"yusupovazat@gmail.com\"\n    },\n    \"type\": {\n        \"key\": \"proposal\",\n        \"type\": \"feedback_type\",\n        \"value\": \"Предложение\"\n    },\n    \"rating\": 5,\n    \"message\": \"Все супер!!!\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","feedback"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"81e445f1-f3ff-4e64-bc5b-09af26b90e7e"},{"name":"/feedback/:id","id":"5120c169-4f26-4db0-9766-3ef1a15b38d7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"{\n    \"rating\": 5,\n    \"type\": {\"key\": \"proposal\"},\n    \"message\": \"Все супер!!!\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/feedback/:id","description":"<p><strong>Удаление отзыва по ID</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://dev.skif.pro/api_v1/feedback/03d5be4f-4adb-4bd7-99b2-ab0edaaa414a\n\n</code></pre>","urlObject":{"path":["api_v1","feedback",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID отзыва</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"5120c169-4f26-4db0-9766-3ef1a15b38d7"},{"name":"/feedback?ids=ids","id":"6d0eec01-b6c3-461b-a9ca-3a8dd53382b0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/feedback?ids=","description":"<p><strong>Поиск отзыва по ID</strong></p>\n<hr />\n<p>Возвращает массив отзывов по ID.</p>\n<p>Если в параметре ids содержится только один id, то вернется НЕ массив из 1 элемента, а конкретный отзыв.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>GET /feedback?ids=78516162-cf8a-4056-bdaa-73ca6311a1d5</p>\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"78516162-cf8a-4056-bdaa-73ca6311a1d5\",\n    \"company\": {\n        \"id\": \"1792239f-47eb-42b3-aef7-c49a3cc6988e\",\n        \"name\": \"Мониторинг Плюс Москва\"\n    },\n    \"user\": {\n        \"id\": \"6e8f4833-c430-4509-ac5e-e1802691655c\",\n        \"name\": \"azat\",\n        \"email\": \"yusupovazat@gmail.com\"\n    },\n    \"type\": {\n        \"key\": \"proposal\",\n        \"type\": \"feedback_type\",\n        \"value\": \"Предложение\"\n    },\n    \"rating\": 5,\n    \"message\": \"Все супер!!!\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","feedback"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"6d0eec01-b6c3-461b-a9ca-3a8dd53382b0"},{"name":"/feedback_admin_query","id":"67e681d1-1a2f-4b1e-a4ab-2ea6cadc3eb5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": 0,\n    \"count\": 10,\n    \"value\": 5\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/feedback_admin_query","description":"<p>Быстрый поиск отзывов в админ панеле</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 10,\n    \"value\": 5\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 1,\n    \"list\": [\n        {\n            \"id\": \"78516162-cf8a-4056-bdaa-73ca6311a1d5\",\n            \"company\": {\n                \"id\": \"1792239f-47eb-42b3-aef7-c49a3cc6988e\",\n                \"name\": \"Мониторинг Плюс Москва\"\n            },\n            \"user\": {\n                \"id\": \"6e8f4833-c430-4509-ac5e-e1802691655c\",\n                \"name\": \"azat\",\n                \"email\": \"yusupovazat@gmail.com\"\n            },\n            \"type\": {\n                \"key\": \"proposal\",\n                \"type\": \"feedback_type\",\n                \"value\": \"Предложение\"\n            },\n            \"rating\": 5,\n            \"message\": \"Все супер!!!\"\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","feedback_admin_query"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"67e681d1-1a2f-4b1e-a4ab-2ea6cadc3eb5"},{"name":"/feedback/list","id":"80ba70e0-1cc6-4472-9801-bf8bb0ba2ec1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": 0,\n    \"count\": 2,\n    \"conditions\": [\n        {\"field\": \"type.key\", \"value\": \"proposal\"}\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/feedback/list","description":"<p><strong>Поиск отзывов</strong></p>\n<hr />\n<p>from - начальный индекс.<br />count - количество записей.<br />conditions - условия.<br />field - название поля, возможные значения: rating, type.key.<br />value - значение.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 10,\n    \"conditions\": [\n        {\"field\": \"rating\", \"value\": \"5\"}\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 1,\n    \"list\": [\n        {\n            \"id\": \"78516162-cf8a-4056-bdaa-73ca6311a1d5\",\n            \"company\": {\n                \"id\": \"1792239f-47eb-42b3-aef7-c49a3cc6988e\",\n                \"name\": \"Мониторинг Плюс Москва\"\n            },\n            \"user\": {\n                \"id\": \"6e8f4833-c430-4509-ac5e-e1802691655c\",\n                \"name\": \"azat\",\n                \"email\": \"yusupovazat@gmail.com\"\n            },\n            \"type\": {\n                \"key\": \"proposal\",\n                \"type\": \"feedback_type\",\n                \"value\": \"Предложение\"\n            },\n            \"rating\": 5,\n            \"message\": \"Все супер!!!\"\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","feedback","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"80ba70e0-1cc6-4472-9801-bf8bb0ba2ec1"}],"id":"4a281ac4-6dd7-401e-a6d3-023ca7cef7bf","_postman_id":"4a281ac4-6dd7-401e-a6d3-023ca7cef7bf","description":""},{"name":"Ссылки доступа (Локатор)","item":[{"name":"/locators","id":"d944e551-91af-4f9c-bb14-c9d9a128a6c1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"Имя\",\n    \"units\": [{\"id\": \"1f6fe207-31c9-4cd0-894b-7b1cb85944c9\"}],\n    \"date_from\": \"2022-10-28 00:00:00\",\n    \"date_to\": \"2022-10-29 00:00:00\",\n    \"description\": \"Сопроводительное письмо\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/locators","description":"<p><strong>Cоздание ссылки для объекта, по которой пользователь без доступа к SKIF.PRO может следить за объектом на карте</strong></p>\n<hr />\n<p>Ссылка на объект формируется следующим образом: {{base_url}}/locator?id=:locator_id</p>\n<hr />\n<p>Поля запроса JSON:</p>\n<p>name - Название<br />units - объекты или units_groups - группы объектов<br />date_from - время начала<br />date_to - время окончания<br />description - Сопроводительное письмо</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p>Пример запроса:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"name\": \"Имя\",\n    \"units\": [\n        {\"id\": \"1f6fe207-31c9-4cd0-894b-7b1cb85944c9\"}, \n        {\"id\": \"3fb49648-49d9-4ab7-9ec9-1577dc6164d4\"}\n    ],\n    \"date_from\": \"2022-09-27 00:00:00\",\n    \"date_to\": \"2022-09-28 00:00:00\",\n    \"description\": \"Some text\"\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<p>status - определяется автоматически: запланировано, запущено или завершено<br />active - true, если отключено</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"7b58f5a0-947d-446f-ad77-3cfd4a68a956\",\n    \"name\": \"Имя\",\n    \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n    \"units\": [{\n        \"id\": \"1f6fe207-31c9-4cd0-894b-7b1cb85944c9\",\n        \"name\": \"Маршрутка\"\n    },{\n        \"id\": \"3fb49648-49d9-4ab7-9ec9-1577dc6164d4\",\n        \"name\": \"Бензовоз\"\n     }\n    ],\n    \"date_from\": \"2022-09-27 00:00:00\",\n    \"date_to\": \"2022-09-28 00:00:00\",\n    \"description\": \"Some text\",\n    \"status\": {\n        \"key\": \"locator_running\",\n        \"type\": \"locator_type\",\n        \"value\": \"Запущено\"\n    },\n    \"is_active\": true\n}\n\n</code></pre><p><strong>Для группы объектов:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"name\": \"Имя\",\n    \"units_groups\": [{\n        \"id\": \"a707cc43-c585-4022-8584-f1b0881e7d71\"\n    },{\n        \"id\": \"3dee5ff9-808f-4536-bec3-9e146bca9327\"\n     }\n    ],\n    \"date_from\": \"2025-01-08 00:00:00\",\n    \"date_to\": \"2025-10-29 00:00:00\",\n    \"description\": \"Сопроводительное письмо\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","locators"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d944e551-91af-4f9c-bb14-c9d9a128a6c1"},{"name":"/locators For Group","id":"fec45468-0557-4396-855d-d1b50fb9d3b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"units_group\": {\"id\": \"a707cc43-c585-4022-8584-f1b0881e7d71\"},\n    \"date_from\": \"2025-01-08 00:00:00\",\n    \"date_to\": \"2025-10-29 00:00:00\",\n    \"description\": \"Сопроводительное письмо\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/locators","description":"<p><strong>Cоздание ссылки для объекта, по которой пользователь без доступа ко SKIF.PRO может следить за объектом на карте</strong></p>\n<hr />\n<p>Поля запроса JSON:<br />unit - объект или units_group - группа объектов<br />date_from - время начала<br />date_to - время окончания<br />description - Сопроводительное письмо</p>\n<hr />\n<p>Пример запроса:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"unit\": {\"id\": \"1f6fe207-31c9-4cd0-894b-7b1cb85944c9\"},\n    \"date_from\": \"2022-09-27 00:00:00\",\n    \"date_to\": \"2022-09-28 00:00:00\",\n    \"description\": \"Some text\"\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<p>status - определяется автоматически: запланировано, запущено или завершено<br />active - true, если отключено</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"7b58f5a0-947d-446f-ad77-3cfd4a68a956\",\n    \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n    \"unit\": {\n        \"id\": \"1f6fe207-31c9-4cd0-894b-7b1cb85944c9\",\n        \"name\": \"Маршрутка\"\n    },\n    \"date_from\": \"2022-09-27 00:00:00\",\n    \"date_to\": \"2022-09-28 00:00:00\",\n    \"description\": \"Some text\",\n    \"status\": {\n        \"key\": \"locator_running\",\n        \"type\": \"locator_type\",\n        \"value\": \"Запущено\"\n    },\n    \"is_active\": true\n}\n\n</code></pre><p><strong>Для группы:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"units_group\": {\n        \"id\": \"a707cc43-c585-4022-8584-f1b0881e7d71\"\n    },\n    \"date_from\": \"2025-01-08 00:00:00\",\n    \"date_to\": \"2025-10-29 00:00:00\",\n    \"description\": \"Сопроводительное письмо\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","locators"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"fec45468-0557-4396-855d-d1b50fb9d3b9"},{"name":"/locators?ids=ids","id":"12b95576-6cf1-4bdb-ba66-482d2389c02e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/locators?ids=","description":"<p><strong>Поиск локаторов по ID</strong></p>\n<hr />\n<p>Возвращает массив локаторов по ID.</p>\n<p>Если в параметре ids содержится только один id, то вернется НЕ массив из 1 элемента, а конкретный локатор.</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>GET /locators?ids=5bf87787-9592-41c7-a25e-500cc1234402</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"5bf87787-9592-41c7-a25e-500cc1234402\",\n    \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n    \"units\": [{\n        \"id\": \"1f6fe207-31c9-4cd0-894b-7b1cb85944c9\",\n        \"name\": \"Маршрутка\",\n        \"imei\": \"338770698941441\",\n        \"icon\": {\n            \"key\": \"van_universal2_red\",\n            \"type\": \"unit_icon\",\n            \"value\": \"Иконка\"\n        }\n    },{\n        \"id\": \"3dee5ff9-808f-4536-bec3-9e146bca9327\",\n        \"name\": \"Бензовоз\",\n        \"imei\": \"514295160184391\",\n        \"icon\": {\n            \"key\": \"van_universal2_red\",\n            \"type\": \"unit_icon\",\n            \"value\": \"Иконка\"\n        }\n    }\n    ],\n    \"date_from\": \"2022-10-28 00:00:00\",\n    \"date_to\": \"2022-10-29 00:00:00\",\n    \"status\": {\n        \"key\": \"locator_finished\",\n        \"type\": \"locator_type\",\n        \"value\": \"Завершено\"\n    },\n    \"is_active\": true,\n    \"description\": \"Сопроводительное письмо\",\n    \"_active\": true\n}\n\n</code></pre>","urlObject":{"path":["api_v1","locators"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"12b95576-6cf1-4bdb-ba66-482d2389c02e"},{"name":"/locator?id=:id","id":"75d1ace3-80b1-4cc1-93c3-bf1669828294","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/locator?id=","description":"<p><strong>Получение информации о локаторе по ID</strong></p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>GET /locator?id=ee07b417-a85f-4fc5-a37a-416f98295ab7</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Возвращаются следующие поля:</p>\n<ul>\n<li>unit - информация об объекта: id, name, icon.</li>\n<li>icon - ключ иконки объекта.</li>\n<li>is_active - активность.</li>\n<li>description - описание.</li>\n<li>date_from - дата и время начала.</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"ee07b417-a85f-4fc5-a37a-416f98295ab7\",\n    \"is_active\": true,\n    \"description\": \"ывфв\",\n    \"date_from\": \"2025-01-03 00:00:00\",\n    \"date_to\": \"2025-01-31 00:00:00\",\n    \"unit\": {\n        \"id\": \"4c99d470-d356-43d9-a35b-f30e72c501c0\",\n        \"name\": \"Дрон Леталка\",\n        \"icon\": \"quadrocopter_blue\"\n    }\n}\n\n</code></pre>\n<p>Возвращает запись локатора, если он найден, иначе ошибка с кодом 422:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n\"code\": 4220,\n\"message\": \"Неверная ссылка доступа\"\n}\n\n</code></pre><hr />\n<p><strong>Для группы объектов:</strong></p>\n<p>Вместо unit приходит units_group. В нем units - информация об объектах.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"11647617-3d50-42f5-94a7-e2f199e4cc4c\",\n    \"is_active\": true,\n    \"description\": \"Сопроводительное письмо\",\n    \"date_from\": \"2025-01-08 00:00:00\",\n    \"date_to\": \"2025-10-29 00:00:00\",\n    \"units_group\": {\n        \"id\": \"a707cc43-c585-4022-8584-f1b0881e7d71\",\n        \"name\": \"Шлишуе\",\n        \"units\": [\n            {\n                \"id\": \"2b7dee48-7804-4544-b0f0-e7f98ccffa24\",\n                \"name\": \"Galileo2\",\n                \"icon\": \"car_red\"\n            },\n            {\n                \"id\": \"4c99d470-d356-43d9-a35b-f30e72c501c0\",\n                \"name\": \"Дрон Леталка\",\n                \"icon\": \"quadrocopter_blue\"\n            },\n            {\n                \"id\": \"abe8c77e-4cbd-4d66-b1fe-723610cdfa32\",\n                \"name\": \"Galileo Test\",\n                \"icon\": \"autocrane_red\"\n            },\n            {\n                \"id\": \"c6286fe0-a597-43d0-b60f-2058bafbb9e0\",\n                \"name\": \"Курьер пиццерии\",\n                \"icon\": \"car_red\"\n            },\n            {\n                \"id\": \"c9f37a6a-56ff-450d-9e5b-16539f643e27\",\n                \"name\": \"Galileo1\",\n                \"icon\": \"car_red\"\n            }\n        ]\n    }\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","locator"],"host":["{{base_url}}"],"query":[{"key":"id","value":""}],"variable":[]}},"response":[],"_postman_id":"75d1ace3-80b1-4cc1-93c3-bf1669828294"},{"name":"/locators/:id","id":"7422fbb1-67cc-4d1f-8b98-cdfa73acb970","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": 0,\n    \"count\": 10,\n    \"value\": 5\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/locators/:id","description":"<p><strong>Удаление локатора по ID</strong></p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n","urlObject":{"path":["api_v1","locators",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID локатора</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"7422fbb1-67cc-4d1f-8b98-cdfa73acb970"},{"name":"/locators/list","id":"8ed7db1e-9877-4b62-837e-6d914b693281","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"from\": 0,\n    \"count\": 10,\n    \"conditions\": [\n        {\"field\": \"unit.id\", \"value\": \"1f6fe207-31c9-4cd0-894b-7b1cb85944c9\"}\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/locators/list","description":"<p><strong>Поиск локаторов</strong></p>\n<hr />\n<p>from - начальный индекс.<br />count - количество записей.<br />conditions - условия<br />field - название поля, возвожные значения: unit.id, date_from, date_to.<br />value - значение</p>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"from\": 0,\n    \"count\": 10,\n    \"conditions\": [\n        {\"field\": \"unit.id\", \"value\": \"1f6fe207-31c9-4cd0-894b-7b1cb85944c9\"}\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 2,\n    \"list\": [\n        {\n            \"id\": \"56e539a1-5709-49b2-a3a3-5bc0710e0098\",\n            \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n            \"unit\": {\n                \"id\": \"1f6fe207-31c9-4cd0-894b-7b1cb85944c9\"\n            },\n            \"date_from\": \"2022-09-27 00:00:00\",\n            \"date_to\": \"2022-09-28 00:00:00\",\n            \"is_active\": true,\n            \"_active\": true\n        },\n        {\n            \"id\": \"7b58f5a0-947d-446f-ad77-3cfd4a68a956\",\n            \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n            \"unit\": {\n                \"id\": \"1f6fe207-31c9-4cd0-894b-7b1cb85944c9\"\n            },\n            \"date_from\": \"2022-09-27 00:00:00\",\n            \"date_to\": \"2022-09-28 00:00:00\",\n            \"is_active\": true,\n            \"description\": \"Some text\",\n            \"_active\": true\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","locators","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8ed7db1e-9877-4b62-837e-6d914b693281"},{"name":"/locators/:id","id":"ef52378d-ff17-4b82-aa66-e0934da33161","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"7b58f5a0-947d-446f-ad77-3cfd4a68a956\",\n    \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n    \"units\": [{\n        \"id\": \"1f6fe207-31c9-4cd0-894b-7b1cb85944c9\",\n        \"name\": \"Маршрутка\"\n    }],\n    \"date_from\": \"2022-09-27 00:00:00\",\n    \"date_to\": \"2022-09-29 00:00:00\",\n    \"status\": {\n        \"key\": \"locator_running\",\n        \"type\": \"locator_type\",\n        \"value\": \"Запушено\"\n    },\n    \"is_active\": true,\n    \"_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/locators/:id","description":"<p><strong>Обновление данных локатора</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>см метод POST /locators</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Аналогичен одному объекту из ответа метода GET /locators?ids=:id</p>\n","urlObject":{"path":["api_v1","locators",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID локатора</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"ef52378d-ff17-4b82-aa66-e0934da33161"}],"id":"c64aeda0-92ee-421e-b1bf-ea6bebf7f2cb","event":[{"listen":"prerequest","script":{"id":"6a396a89-5f83-448b-ad05-4eac00957d10","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"cafa6fcb-4dba-4be6-8b06-acc4638a7d15","type":"text/javascript","exec":[""]}}],"_postman_id":"c64aeda0-92ee-421e-b1bf-ea6bebf7f2cb","description":""},{"name":"Импорт из Wialon","item":[{"name":"/loadwln/:company_id/units/analyze_terminals","id":"ab1fdf66-a6ed-4ab5-ad22-f88d40ab4369","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","src":"/home/azat/Desktop/OLJA_ARGO_Units/Босколь.zip"}]},"url":"{{base_url}}/api_v1/loadwln/:company_id/units/analyze_terminals","description":"<p><strong>Проверка терминалов при загрузке объектов из Wialon</strong></p>\n<hr />\n<p><strong>Параметры запроса:</strong><br />company_id - ID компании</p>\n<p>В FormData в поле file необходимо отправить zip или xml файл.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST /api_v1/loadwln/3aafd100-c44d-4b04-ae93-06978b908ea9/units/analyze_terminals</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<p>id - уникальный ID сеанса. В последующих запросах необходимо указать этот ID.<br />terminals - список предлагаемых преобразований для терминалов.<br />- key - названия терминала в wialon.<br />- value - терминал в скиф, его можно изменить. Если совпадений не найдено, тогда возвращается null.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"b0bdff74-6901-4366-a06a-c32dfde15e5b\",\n    \"terminals\": [\n        {\n            \"key\": \"Navtelecom Signal S-2551\",\n            \"value\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            }\n        },\n        {\n            \"key\": \"Teltonika FM1100\",\n            \"value\": {\n                \"key\": \"teltonica_fm1100\",\n                \"type\": \"terminal_type\",\n                \"value\": \"teltonica_fm1100\"\n            }\n        },\n        {\n            \"key\": \"Teltonika FM4200\",\n            \"value\": {\n                \"key\": \"teltonica_fm4200\",\n                \"type\": \"terminal_type\",\n                \"value\": \"teltonica_fm4200\"\n            }\n        },\n        {\n            \"key\": \"Navtelecom SMART\",\n            \"value\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            }\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","loadwln",":company_id","units","analyze_terminals"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"company_id"}]}},"response":[],"_postman_id":"ab1fdf66-a6ed-4ab5-ad22-f88d40ab4369"},{"name":"/loadwln/:company_id/units/analyze_params","id":"c595c07d-843d-45fb-ab70-10fcf17ea77d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"b0bdff74-6901-4366-a06a-c32dfde15e5b\",\n    \"terminals\": [\n        {\n            \"key\": \"Navtelecom Signal S-2551\",\n            \"value\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            }\n        },\n        {\n            \"key\": \"Teltonika FM1100\",\n            \"value\": {\n                \"key\": \"teltonica_fm1100\",\n                \"type\": \"terminal_type\",\n                \"value\": \"teltonica_fm1100\"\n            }\n        },\n        {\n            \"key\": \"Teltonika FM4200\",\n            \"value\": {\n                \"key\": \"teltonica_fm4200\",\n                \"type\": \"terminal_type\",\n                \"value\": \"teltonica_fm4200\"\n            }\n        },\n        {\n            \"key\": \"Navtelecom SMART\",\n            \"value\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            }\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/loadwln/:company_id/units/analyze_params","description":"<p><strong>Запрос проверки параметров при загрузке объектов из Wialon</strong></p>\n<hr />\n<p><strong>Параметры запроса:</strong><br />company_id - ID компании</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST /api_v1/loadwln/3aafd100-c44d-4b04-ae93-06978b908ea9/units/analyze_params</p>\n<p>Тело запроса:<br />id - ID сеанса которое получено из первого запроса POST /loadwln/:company_id/units/analyze_terminals<br />terminals - список преобразований для терминалов<br />- key - названия терминала в wialon<br />- value - терминал в скиф</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"b0bdff74-6901-4366-a06a-c32dfde15e5b\",\n    \"terminals\": [\n        {\n            \"key\": \"Navtelecom Signal S-2551\",\n            \"value\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            }\n        },\n        {\n            \"key\": \"Teltonika FM1100\",\n            \"value\": {\n                \"key\": \"teltonica_fm1100\",\n                \"type\": \"terminal_type\",\n                \"value\": \"teltonica_fm1100\"\n            }\n        },\n        {\n            \"key\": \"Teltonika FM4200\",\n            \"value\": {\n                \"key\": \"teltonica_fm4200\",\n                \"type\": \"terminal_type\",\n                \"value\": \"teltonica_fm4200\"\n            }\n        },\n        {\n            \"key\": \"Navtelecom SMART\",\n            \"value\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            }\n        }\n    ]\n}\n\n</code></pre><hr />\n<p>Пример ответа:</p>\n<p>id - уникальный ID сеанса. Такой же, как в запросе.<br />terminals_params - список предлагаемых преобразований для параметров датчиков.<br />terminal_type - тип терминала.<br />params - список предлагаемых преобразований для терминала.<br />- key - название параметра в wialon.<br />- value - название параметра в скиф, можно изменить значение. Если не найден, тогда возвращается null.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"b0bdff74-6901-4366-a06a-c32dfde15e5b\",\n    \"terminals_params\": [\n        {\n            \"terminal_type\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            },\n            \"params\": [\n                {\n                    \"key\": \"engine_load\",\n                    \"value\": null\n                },\n                {\n                    \"key\": \"engine_coolant_temp\",\n                    \"value\": null\n                },\n                {\n                    \"key\": \"engine_rpm\",\n                    \"value\": null\n                },\n                {\n                    \"key\": \"in2\",\n                    \"value\": \"in_2_st\"\n                },\n                {\n                    \"key\": \"touch_key\",\n                    \"value\": \"touch_mem_key\"\n                },\n                {\n                    \"key\": \"in1\",\n                    \"value\": \"in_1_st\"\n                },\n                {\n                    \"key\": \"in4\",\n                    \"value\": \"in_4_st\"\n                },\n                {\n                    \"key\": \"in3\",\n                    \"value\": \"in_3_st\"\n                },\n                {\n                    \"key\": \"in5\",\n                    \"value\": \"in_5_st\"\n                },\n                {\n                    \"key\": \"can_fuel_volume\",\n                    \"value\": null\n                },\n                {\n                    \"key\": \"can_engine_hours\",\n                    \"value\": null\n                },\n                {\n                    \"key\": \"can_fuel_consumpt\",\n                    \"value\": null\n                },\n                {\n                    \"key\": \"out1\",\n                    \"value\": \"out_1_st\"\n                },\n                {\n                    \"key\": \"accel_pedal_pos\",\n                    \"value\": null\n                }\n            ]\n        },\n        {\n            \"terminal_type\": {\n                \"key\": \"teltonica_fm4200\",\n                \"type\": \"terminal_type\",\n                \"value\": \"teltonica_fm4200\"\n            },\n            \"params\": [\n                {\n                    \"key\": \"in1\",\n                    \"value\": \"din1\"\n                },\n                {\n                    \"key\": \"in3\",\n                    \"value\": \"din3\"\n                }\n            ]\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","loadwln",":company_id","units","analyze_params"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"company_id"}]}},"response":[],"_postman_id":"c595c07d-843d-45fb-ab70-10fcf17ea77d"},{"name":"/loadwln/:company_id/units/create","id":"aa92eee5-2d91-4243-8a8e-870d2c1751f1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"b0bdff74-6901-4366-a06a-c32dfde15e5b\",\n    \"terminals_params\": [\n        {\n            \"terminal_type\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            },\n            \"params\": [\n                {\n                    \"key\": \"engine_load\",\n                    \"value\": \"can_eng_load\"\n                },\n                {\n                    \"key\": \"engine_coolant_temp\",\n                    \"value\": \"dut_temp_485_3\"\n                },\n                {\n                    \"key\": \"engine_rpm\",\n                    \"value\": \"can_rpm\"\n                },\n                {\n                    \"key\": \"in2\",\n                    \"value\": \"in_2_st\"\n                },\n                {\n                    \"key\": \"touch_key\",\n                    \"value\": \"touch_mem_key\"\n                },\n                {\n                    \"key\": \"in1\",\n                    \"value\": \"in_1_st\"\n                },\n                {\n                    \"key\": \"in4\",\n                    \"value\": \"in_4_st\"\n                },\n                {\n                    \"key\": \"in3\",\n                    \"value\": \"in_3_st\"\n                },\n                {\n                    \"key\": \"in5\",\n                    \"value\": \"in_5_st\"\n                },\n                {\n                    \"key\": \"can_fuel_volume\",\n                    \"value\": \"can_fuel_rate\"\n                },\n                {\n                    \"key\": \"can_engine_hours\",\n                    \"value\": \"can_eng_hours\"\n                },\n                {\n                    \"key\": \"can_fuel_consumpt\",\n                    \"value\": \"can_fuel_level\"\n                },\n                {\n                    \"key\": \"out1\",\n                    \"value\": \"out_1_st\"\n                },\n                {\n                    \"key\": \"accel_pedal_pos\",\n                    \"value\": \"can_accel_pos\"\n                }\n            ]\n        },\n        {\n            \"terminal_type\": {\n                \"key\": \"teltonica_fm4200\",\n                \"type\": \"terminal_type\",\n                \"value\": \"teltonica_fm4200\"\n            },\n            \"params\": [\n                {\n                    \"key\": \"in1\",\n                    \"value\": \"din1\"\n                },\n                {\n                    \"key\": \"in3\",\n                    \"value\": \"din3\"\n                }\n            ]\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/loadwln/:company_id/units/create","description":"<p><strong>Запрос создания объектов при загрузке объекты из Wialon</strong></p>\n<hr />\n<p><strong>Параметры запроса:</strong><br />company_id - ID компании</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST /api_v1/loadwln/3aafd100-c44d-4b04-ae93-06978b908ea9/units/analyze_params</p>\n<p>Тело запроса:<br />id - ID сеанса которое получено из первого запроса POST /loadwln/:company_id/units/analyze_terminals<br />terminals_params - список преобразований для параметров датчиков.<br />terminal_type - тип терминала.<br />params - список преобразований пераметров для терминала.<br />- key - название параметра в wialon.<br />- value - название параметра в скиф.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"b0bdff74-6901-4366-a06a-c32dfde15e5b\",\n    \"terminals_params\": [\n        {\n            \"terminal_type\": {\n                \"key\": \"navtelecom\",\n                \"type\": \"terminal_type\",\n                \"value\": \"Navtelecom\"\n            },\n            \"params\": [\n                {\n                    \"key\": \"engine_load\",\n                    \"value\": \"can_eng_load\"\n                },\n                {\n                    \"key\": \"engine_coolant_temp\",\n                    \"value\": \"dut_temp_485_3\"\n                },\n                {\n                    \"key\": \"engine_rpm\",\n                    \"value\": \"can_rpm\"\n                },\n                {\n                    \"key\": \"in2\",\n                    \"value\": \"in_2_st\"\n                },\n                {\n                    \"key\": \"touch_key\",\n                    \"value\": \"touch_mem_key\"\n                },\n                {\n                    \"key\": \"in1\",\n                    \"value\": \"in_1_st\"\n                },\n                {\n                    \"key\": \"in4\",\n                    \"value\": \"in_4_st\"\n                },\n                {\n                    \"key\": \"in3\",\n                    \"value\": \"in_3_st\"\n                },\n                {\n                    \"key\": \"in5\",\n                    \"value\": \"in_5_st\"\n                },\n                {\n                    \"key\": \"can_fuel_volume\",\n                    \"value\": \"can_fuel_rate\"\n                },\n                {\n                    \"key\": \"can_engine_hours\",\n                    \"value\": \"can_eng_hours\"\n                },\n                {\n                    \"key\": \"can_fuel_consumpt\",\n                    \"value\": \"can_fuel_level\"\n                },\n                {\n                    \"key\": \"out1\",\n                    \"value\": \"out_1_st\"\n                },\n                {\n                    \"key\": \"accel_pedal_pos\",\n                    \"value\": \"can_accel_pos\"\n                }\n            ]\n        },\n        {\n            \"terminal_type\": {\n                \"key\": \"teltonica_fm4200\",\n                \"type\": \"terminal_type\",\n                \"value\": \"teltonica_fm4200\"\n            },\n            \"params\": [\n                {\n                    \"key\": \"in1\",\n                    \"value\": \"din1\"\n                },\n                {\n                    \"key\": \"in3\",\n                    \"value\": \"din3\"\n                }\n            ]\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"result\": \"Добавлены 4 объекты\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","loadwln",":company_id","units","create"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"company_id"}]}},"response":[],"_postman_id":"aa92eee5-2d91-4243-8a8e-870d2c1751f1"},{"name":"/loadwln/:company_id/units/add_services","id":"0f57a10a-ea97-4409-a15e-6215eb9be724","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","src":"/home/azat/Downloads/А898МТ.wlp"}]},"url":"{{base_url}}/api_v1/loadwln/:company_id/units/add_services","description":"<p><strong>Параметры запроса:</strong><br />company_id - ID компании</p>\n<p>В теле запроса в form-data укажите zip или wlp файл в поле file</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST /api_v1/loadwln/3aafd100-c44d-4b04-ae93-06978b908ea9/units/add_services</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"result\": \"Обновлена ТО для объектов 1\",\n    \"found_units\": [\n        \"А898МТ\"\n    ],\n    \"not_found_units\": []\n}\n\n</code></pre>","urlObject":{"path":["api_v1","loadwln",":company_id","units","add_services"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"company_id"}]}},"response":[],"_postman_id":"0f57a10a-ea97-4409-a15e-6215eb9be724"},{"name":"/loadwln/geozones/create","id":"606d65cf-902c-4e11-b793-121d955aa036","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","src":"/home/azat/Downloads/example.kmz"},{"key":"companies_ids","value":"c968398b-be00-4b4a-9e2c-7d7bdc0d43ad,c0c7d3e7-3dab-4fc8-aba6-6c8169efe3e3","type":"text"}]},"url":"{{base_url}}/api_v1/loadwln/geozones/create","description":"<p><strong>Загрузка геозон из форматов kml, kmz и zip</strong></p>\n<hr />\n<p>В FormData необходимо отправить следующие поля:</p>\n<p>file - отправить файл с форматом kml, kmz и zip. ZIP-файл может содержать несколько файлов KML. Максимальный размер файла 5 Мб.</p>\n<p>companies_ids - ID компаний, разделенные запятыми.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST /api_v1/loadwln/geozones/create</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<p>В случае успеха статус ответа — 200, а тело ответа содержит информацию о количестве добавленных геозон:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"result\": \"Добавлены геозоны: 4\"\n}\n\n</code></pre><p>В случае ошибки тело ответа содержит информацию об ошибке:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"error\": {\n    \"code\": 4220,\n    \"message\": \"Геозоны не найдены\"\n  }\n}\n\n</code></pre>","urlObject":{"path":["api_v1","loadwln","geozones","create"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"606d65cf-902c-4e11-b793-121d955aa036"},{"name":"/loadwln/:units_id/data/analyze_params","id":"2cd264ac-4b42-4ccf-82c8-5f15686f0e4c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","src":"/home/azat/skif_projects/skif_units/test/data/geozones.kml"}]},"url":"{{base_url}}/api_v1/loadwln/:units_id/geozones/create","description":"<p><strong>Загрузка геозон из формата kml</strong></p>\n<hr />\n<p>Параметры запроса:<br />company_id - ID компании<br />В FormData в поле file необходимо отправить kml файл.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST /api_v1/loadwln/3aafd100-c44d-4b04-ae93-06978b908ea9/geozones/create</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"result\": \"Добавлены 4 геозоны\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","loadwln",":units_id","geozones","create"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"units_id"}]}},"response":[],"_postman_id":"2cd264ac-4b42-4ccf-82c8-5f15686f0e4c"},{"name":"/loadwln/:units_id/data/create","id":"5849c77f-1551-4763-8045-19d152b4817e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","src":"/home/azat/skif_projects/skif_units/test/data/geozones.kml"}]},"url":"{{base_url}}/api_v1/loadwln/3aafd100-c44d-4b04-ae93-06978b908ea9/geozones/create","description":"<p><strong>Загрузка геозон из формата kml</strong></p>\n<hr />\n<p><strong>Параметры запроса:</strong><br />company_id - ID компании<br />В FormData в поле file необходимо отправить kml файл.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST /api_v1/loadwln/3aafd100-c44d-4b04-ae93-06978b908ea9/geozones/create</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"result\": \"Добавлены 4 геозоны\"\n}\n\n</code></pre>","urlObject":{"path":["api_v1","loadwln","3aafd100-c44d-4b04-ae93-06978b908ea9","geozones","create"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"5849c77f-1551-4763-8045-19d152b4817e"}],"id":"830df9f0-a87b-448e-8c46-b3086edb8618","_postman_id":"830df9f0-a87b-448e-8c46-b3086edb8618","description":""},{"name":"Удаление данных","item":[{"name":"/data_deletions","id":"bb1b1854-4252-4ef5-89b3-91b5be819a46","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"start_date\": \"2022-08-01 12:30:09\",\n    \"finish_date\": \"2022-08-02 15:31:19\",\n    \"unit\": {\n        \"id\": \"97fba3d2-841b-43cd-911a-073b84ad5438\"\n    }\n}"},"url":"{{base_url}}/api_v1/data_deletions","description":"<p><strong>Удаление данных для объекта в диапазоне дат</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>\"start_date\": Начала интервала, в формате yyyy-MM-dd HH:mm:ss<br />\"finish_date\": Конец интервала, в формате yyyy-MM-dd HH:mm:ss<br />\"unit\": Объект, достаточно указать ID.</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"start_date\": \"2022-08-01 12:30:09\",\n    \"finish_date\": \"2022-08-02 15:31:19\",\n    \"unit\": {\n        \"id\": \"97fba3d2-841b-43cd-911a-073b84ad5438\"\n    }\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"62cc8ce7-da3d-4e1e-8086-4a8e165fcd1f\",\n    \"start_date\": \"2022-08-01 12:30:09\",\n    \"finish_date\": \"2022-08-02 15:31:19\",\n    \"unit\": {\n        \"id\": \"97fba3d2-841b-43cd-911a-073b84ad5438\"\n    }\n}\n\n</code></pre>","urlObject":{"path":["api_v1","data_deletions"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"bb1b1854-4252-4ef5-89b3-91b5be819a46"},{"name":"/data_deletions/:id","id":"8f23b05e-1b35-4813-92c9-a88835744cdc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"{{base_url}}/api_v1/data_deletions/:id","description":"<p><strong>Отмена удаления данных для объекта в диапазоне дат</strong></p>\n<hr />\n<p><strong>Параметры:</strong><br />id - ID записи</p>\n<hr />\n<p><strong>Пример запроса:</strong><br />DELETE /data_deletions/62cc8ce7-da3d-4e1e-8086-4a8e165fcd1f</p>\n","urlObject":{"path":["api_v1","data_deletions",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID записи</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"8f23b05e-1b35-4813-92c9-a88835744cdc"},{"name":"/data_deletions/list","id":"866e13dd-0390-4936-80bb-018db79dbabf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"conditions\": [\n        {\n            \"field\": \"unit.id\",\n            \"value\": \"97fba3d2-841b-43cd-911a-073b84ad5438\"\n        },\n        {\n            \"field\": \"start_date\",\n            \"value\": \"2022-08-01 00:00:00\"\n        },\n        {\n            \"field\": \"finish_date\",\n            \"value\": \"2022-08-30 00:00:00\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/data_deletions/list","description":"<p><strong>Получение списка удаленных интервалов</strong></p>\n<hr />\n<p>В conditions можно указать фильтры:</p>\n<ul>\n<li><p>unit.id - ID объекта</p>\n</li>\n<li><p>start_date - Дата, от</p>\n</li>\n<li><p>finish_date - Дата, до</p>\n</li>\n</ul>\n<hr />\n<p>﻿﻿﻿<strong>Роль:</strong> Читатель и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"conditions\": [\n        {\n            \"field\": \"unit.id\",\n            \"value\": \"97fba3d2-841b-43cd-911a-073b84ad5438\"\n        },\n        {\n            \"field\": \"start_date\",\n            \"value\": \"2022-08-01 00:00:00\"\n        },\n        {\n            \"field\": \"finish_date\",\n            \"value\": \"2022-08-30 00:00:00\"\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"max\": 4,\n    \"list\": [\n        {\n            \"id\": \"5a1e36c2-a389-4a80-8acb-ec913d54df29\",\n            \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n            \"imei\": \"359633107825189\",\n            \"start_date\": \"2022-08-10 00:00:00\",\n            \"finish_date\": \"2022-08-12 00:00:00\"\n        },\n        {\n            \"id\": \"c2efec3c-5dda-4c53-904f-d79acce20537\",\n            \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n            \"imei\": \"359633107825189\",\n            \"start_date\": \"2022-08-15 00:00:00\",\n            \"finish_date\": \"2022-08-20 00:00:00\"\n        },\n        {\n            \"id\": \"4877a5cc-b26b-4aca-95c6-2bd3480f9495\",\n            \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n            \"imei\": \"359633107825189\",\n            \"start_date\": \"2022-08-18 00:00:00\",\n            \"finish_date\": \"2022-08-21 00:00:00\"\n        },\n        {\n            \"id\": \"9b0389a4-b149-4b01-9ee7-7766c58b8d4a\",\n            \"company_id\": \"3aafd100-c44d-4b04-ae93-06978b908ea9\",\n            \"imei\": \"359633107825189\",\n            \"start_date\": \"2022-08-23 02:00:00\",\n            \"finish_date\": \"2022-08-24 22:00:00\"\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","data_deletions","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"866e13dd-0390-4936-80bb-018db79dbabf"}],"id":"af84ca20-4164-4eb9-92a6-2131bff4a75a","_postman_id":"af84ca20-4164-4eb9-92a6-2131bff4a75a","description":""},{"name":"Видео","item":[{"name":"/videos","id":"69f01981-d010-4827-8e16-bbf586ff6c1b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"units\": [\n        {\n            \"id\": \"d0dd6178-fd10-4f49-8627-a386ac35b8c3в\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/videos","description":"<p><strong>Запрос на получение видео-потоков для регистратора, связанного с объектом</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>id объекта.</p>\n<p>Сейчас обрабатывается только первый объект в списке.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"units\": [\n        {\n            \"id\": \"d0dd6178-fd10-4f49-8627-a386ac35b8c3\"\n        }\n    ]\n}\n\n</code></pre><p>В доп полях передаваемых объектов должны быть прописаны поля со соледующими ключами:</p>\n<p>1. Видео устройство - video_device_name<br />2. ID-видео устройства - video_device_id<br />3. Камеры (потоки) - video_cameras (числа через запятую)</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>stream - код потока</p>\n<p>url - url потока</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"stream\": \"0\",\n        \"url\": \"http://dev.skif.pro:9090/start?deviceid=019000021045&amp;channel=1&amp;stream=1&amp;token=9f44b390f3a00875528d529912e535adb77aef235f8fe492661bcdcc22ae3e0a\"\n    },\n    {\n        \"stream\": \"1\",\n        \"url\": \"http://dev.skif.pro:9090/start?deviceid=019000021045&amp;channel=2&amp;stream=1&amp;token=9f44b390f3a00875528d529912e535adb77aef235f8fe492661bcdcc22ae3e0a\"\n    }\n]\n\n</code></pre><p>Возможные виды ошибок:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"code\": 5000,\n    \"message\": \"Внутренняя ошибка сервера\"\n}\n\n</code></pre><p>где code - внутренний код ошибки.</p>\n<p>message - текст, который можно отобразить пользователю.</p>\n","urlObject":{"path":["api_v1","videos"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"69f01981-d010-4827-8e16-bbf586ff6c1b"}],"id":"be438d80-6281-4939-b7e5-86f9ac20b08e","_postman_id":"be438d80-6281-4939-b7e5-86f9ac20b08e","description":""},{"name":"Группы доступа","item":[{"name":"/units_groups_access?units_group_id=units_group_id","id":"f3aaa147-4ed8-4d3b-9ac0-159e060ffa1a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/units_groups_access?units_group_id=","description":"<p><strong>Получение списка пользователей, имеющих доступ к группе объектов</strong></p>\n<hr />\n<p><strong>Параметры запроса:</strong></p>\n<p>units_group_id - ID группы</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Приходит JSON массив. Каждый элемент имеет:</p>\n<ul>\n<li><p>id - ID действия</p>\n</li>\n<li><p>key - ключ действия</p>\n</li>\n<li><p>name - название действия</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"actions\": [\n            {\n                \"id\": \"8a94afa3-2f4d-4cae-84ed-05197e412e56\",\n                \"key\": \"update_unit\",\n                \"name\": \"Редактирование объекта\"\n            },\n            {\n                \"id\": \"fb369ecf-4446-45e7-9835-57bad481f161\",\n                \"key\": \"delete_unit\",\n                \"name\": \"Удаление объекта\"\n            },\n            {\n                \"id\": \"415b7e76-3c57-439c-bbb9-1b1e7eb78a0f\",\n                \"key\": \"update_unit_imei\",\n                \"name\": \"Изменение IMEI объекта\"\n            }\n        ],\n        \"user\": {\n            \"id\": \"95568a4b-9ca8-4552-95d1-d22ce5020cdc\",\n            \"name\": \"User1\"\n        }\n    },\n    {\n        \"actions\": [\n            {\n                \"id\": \"8a94afa3-2f4d-4cae-84ed-05197e412e56\",\n                \"key\": \"update_unit\",\n                \"name\": \"Редактирование объекта\",\n                \"role_key\": \"EDITOR\"\n            },\n            {\n                \"id\": \"fb369ecf-4446-45e7-9835-57bad481f161\",\n                \"key\": \"delete_unit\",\n                \"name\": \"Удаление объекта\"\n            },\n            {\n                \"id\": \"415b7e76-3c57-439c-bbb9-1b1e7eb78a0f\",\n                \"key\": \"update_unit_imei\",\n                \"name\": \"Изменение IMEI объекта\"\n            },\n            {\n                \"id\": \"262b7e97-dbfa-4288-9878-ad564672796e\",\n                \"key\": \"update_unit_name_icon\",\n                \"name\": \"Обновление названия и иконки объекта\"\n            },\n            {\n                \"id\": \"5f182c77-dfa7-4fb2-947a-2a1fc44ee83b\",\n                \"key\": \"get_unit\",\n                \"name\": \"Просмотр объекта\"\n            }\n        ],\n        \"user\": {\n            \"id\": \"e09239ea-b09f-4801-94c8-cc15af7606a4\",\n            \"name\": \"User2\"\n        }\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","units_groups_access"],"host":["{{base_url}}"],"query":[{"key":"units_group_id","value":""}],"variable":[]}},"response":[],"_postman_id":"f3aaa147-4ed8-4d3b-9ac0-159e060ffa1a"},{"name":"/units_groups_access/:company_id?units_group_id=units_group_id","id":"20171c93-e556-45a3-82d3-1154ef7ed5ea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/units_groups_access/:company_id?units_group_id=","description":"<p><strong>Получение списка пользователей, имеющих доступ к группе объектов</strong></p>\n<hr />\n<p><strong>Параметры запроса:</strong></p>\n<p>company_id - ID компании</p>\n<p>units_group_id - ID группы</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Приходит JSON массив. Каждый элемент имеет:</p>\n<ul>\n<li><p>id - ID действия</p>\n</li>\n<li><p>key - ключ действия</p>\n</li>\n<li><p>name - название действия</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"actions\": [\n            {\n                \"id\": \"8a94afa3-2f4d-4cae-84ed-05197e412e56\",\n                \"key\": \"update_unit\",\n                \"name\": \"Редактирование объекта\"\n            },\n            {\n                \"id\": \"fb369ecf-4446-45e7-9835-57bad481f161\",\n                \"key\": \"delete_unit\",\n                \"name\": \"Удаление объекта\"\n            },\n            {\n                \"id\": \"415b7e76-3c57-439c-bbb9-1b1e7eb78a0f\",\n                \"key\": \"update_unit_imei\",\n                \"name\": \"Изменение IMEI объекта\"\n            }\n        ],\n        \"user\": {\n            \"id\": \"95568a4b-9ca8-4552-95d1-d22ce5020cdc\",\n            \"name\": \"User1\"\n        }\n    },\n    {\n        \"actions\": [\n            {\n                \"id\": \"8a94afa3-2f4d-4cae-84ed-05197e412e56\",\n                \"key\": \"update_unit\",\n                \"name\": \"Редактирование объекта\",\n                \"role_key\": \"EDITOR\"\n            },\n            {\n                \"id\": \"fb369ecf-4446-45e7-9835-57bad481f161\",\n                \"key\": \"delete_unit\",\n                \"name\": \"Удаление объекта\"\n            },\n            {\n                \"id\": \"415b7e76-3c57-439c-bbb9-1b1e7eb78a0f\",\n                \"key\": \"update_unit_imei\",\n                \"name\": \"Изменение IMEI объекта\"\n            },\n            {\n                \"id\": \"262b7e97-dbfa-4288-9878-ad564672796e\",\n                \"key\": \"update_unit_name_icon\",\n                \"name\": \"Обновление названия и иконки объекта\"\n            },\n            {\n                \"id\": \"5f182c77-dfa7-4fb2-947a-2a1fc44ee83b\",\n                \"key\": \"get_unit\",\n                \"name\": \"Просмотр объекта\"\n            }\n        ],\n        \"user\": {\n            \"id\": \"e09239ea-b09f-4801-94c8-cc15af7606a4\",\n            \"name\": \"User2\"\n        }\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","units_groups_access",":company_id"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>ID группы</p>\n","type":"text/plain"},"key":"units_group_id","value":""}],"variable":[{"description":{"content":"<p>ID компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"company_id"}]}},"response":[],"_postman_id":"20171c93-e556-45a3-82d3-1154ef7ed5ea"},{"name":"/units_groups_access/:units_group_id","id":"c5b32349-b7e0-4211-a5e2-4628749ef086","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"[\n    {\n        \"actions\": [\n            {\n                \"id\": \"5a1b7d86-122a-4fe8-b364-0531db41951a\",\n                \"key\": \"get_unit\",\n                \"name\": \"Просмотр объекта\",\n                \"role_key\": \"READER\",\n                \"is_unit_action\": true,\n                \"_unit_action\": true,\n                \"_delete\": false\n            }\n        ],\n        \"user\": {\n            \"id\": \"ec8dc446-f72e-4524-88be-2980c960706a\",\n            \"name\": \"hafobe2078@larland.com\"\n        }\n    },\n    {\n        \"actions\": [\n            {\n                \"id\": \"5a1b7d86-122a-4fe8-b364-0531db41951a\",\n                \"key\": \"get_unit\",\n                \"name\": \"Просмотр объекта\",\n                \"role_key\": \"READER\",\n                \"is_unit_action\": true,\n                \"_unit_action\": true,\n                \"_delete\": false\n            }\n        ],\n        \"user\": {\n            \"id\": \"473e1c5e-497f-4ca2-b359-0ccf1e5bb27b\",\n            \"name\": \"Офис \"\n        }\n    },\n    {\n        \"actions\": [\n            {\n                \"id\": \"c7d844c5-ede8-41bb-8679-9a1782815c20\",\n                \"key\": \"update_unit\",\n                \"name\": \"Редактирование объекта\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": true,\n                \"_unit_action\": true,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"7c20d415-6b8c-47fe-b5d4-737e55f1f7a7\",\n                \"key\": \"delete_unit\",\n                \"name\": \"Удаление объекта\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": true,\n                \"_unit_action\": true,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"e5b7aa86-36c3-49db-ad93-7fcfc4f3a790\",\n                \"key\": \"update_unit_name_icon\",\n                \"name\": \"Обновление названия и иконки объекта\",\n                \"parent_id\": \"c7d844c5-ede8-41bb-8679-9a1782815c20\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": true,\n                \"_unit_action\": true,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"5a1b7d86-122a-4fe8-b364-0531db41951a\",\n                \"key\": \"get_unit\",\n                \"name\": \"Просмотр объекта\",\n                \"role_key\": \"READER\",\n                \"is_unit_action\": true,\n                \"_unit_action\": true,\n                \"_delete\": false\n            }\n        ],\n        \"user\": {\n            \"id\": \"161fb066-94c8-474c-9ff4-d53daa70312c\",\n            \"name\": \"Офис1\"\n        }\n    }\n]","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units_groups_access/:units_group_id","description":"<p><strong>Обновление списка пользователей, имеющих доступ к группе объектов</strong></p>\n<hr />\n<p><strong>Параметры запроса:</strong></p>\n<p>units_group_id - ID группы</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Приходит JSON массив. Каждый элемент имеет: actions и user.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"actions\": [\n            {\n                \"id\": \"8a94afa3-2f4d-4cae-84ed-05197e412e56\",\n                \"key\": \"update_unit\",\n                \"name\": \"Редактирование объекта\"\n            },\n            {\n                \"id\": \"fb369ecf-4446-45e7-9835-57bad481f161\",\n                \"key\": \"delete_unit\",\n                \"name\": \"Удаление объекта\"\n            },\n            {\n                \"id\": \"415b7e76-3c57-439c-bbb9-1b1e7eb78a0f\",\n                \"key\": \"update_unit_imei\",\n                \"name\": \"Изменение IMEI объекта\"\n            }\n        ],\n        \"user\": {\n            \"id\": \"95568a4b-9ca8-4552-95d1-d22ce5020cdc\",\n            \"name\": \"User1\"\n        }\n    },\n    {\n        \"actions\": [\n            {\n                \"id\": \"8a94afa3-2f4d-4cae-84ed-05197e412e56\",\n                \"key\": \"update_unit\",\n                \"name\": \"Редактирование объекта\",\n                \"role_key\": \"EDITOR\"\n            },\n            {\n                \"id\": \"fb369ecf-4446-45e7-9835-57bad481f161\",\n                \"key\": \"delete_unit\",\n                \"name\": \"Удаление объекта\"\n            },\n            {\n                \"id\": \"415b7e76-3c57-439c-bbb9-1b1e7eb78a0f\",\n                \"key\": \"update_unit_imei\",\n                \"name\": \"Изменение IMEI объекта\"\n            },\n            {\n                \"id\": \"262b7e97-dbfa-4288-9878-ad564672796e\",\n                \"key\": \"update_unit_name_icon\",\n                \"name\": \"Обновление названия и иконки объекта\"\n            },\n            {\n                \"id\": \"5f182c77-dfa7-4fb2-947a-2a1fc44ee83b\",\n                \"key\": \"get_unit\",\n                \"name\": \"Просмотр объекта\"\n            }\n        ],\n        \"user\": {\n            \"id\": \"e09239ea-b09f-4801-94c8-cc15af7606a4\",\n            \"name\": \"User2\"\n        }\n    }\n]\n\n</code></pre><p>Запрос и ответ имеет структура такой же как GET /units_groups_access?units_group_id=units_group_id</p>\n","urlObject":{"path":["api_v1","units_groups_access",":units_group_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID группы</p>\n","type":"text/plain"},"type":"any","value":"","key":"units_group_id"}]}},"response":[],"_postman_id":"c5b32349-b7e0-4211-a5e2-4628749ef086"},{"name":"/units_groups_access","id":"521d19aa-12d0-42cb-b717-35e212fa13a1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"Newgroup5\",\n    \"units\": [\n        {\n            \"id\": \"1f6f6863-e202-4bbd-8186-11380e3b6476\"\n        }\n    ],\n    \"users\": [\n        {\n            \"id\": \"844cb9af-9158-4418-95d7-de9df14ae4d7\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units_groups_access","description":"<p><strong>Создание новой группы с доступом</strong></p>\n<hr />\n<p>name - имя группы</p>\n<p>units - объекты</p>\n<p>users - пользователи</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"name\": \"Newgroup5\",\n    \"units\": [\n        {\n            \"id\": \"1f6f6863-e202-4bbd-8186-11380e3b6476\"\n        }\n    ],\n    \"users\": [\n        {\n            \"id\": \"844cb9af-9158-4418-95d7-de9df14ae4d7\"\n        }\n    ]\n}\n\n</code></pre><p>Возвращает созданную группу. Указанные пользователи будут иметь доступ к этой группе</p>\n","urlObject":{"path":["api_v1","units_groups_access"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"521d19aa-12d0-42cb-b717-35e212fa13a1"},{"name":"/units_groups_access/:company_id/:units_group_id","id":"50d0a445-e85d-4896-bd35-cf926db0123e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"[\n    {\n        \"actions\": [\n            {\n                \"id\": \"5a1b7d86-122a-4fe8-b364-0531db41951a\",\n                \"key\": \"get_unit\",\n                \"name\": \"Просмотр объекта\",\n                \"role_key\": \"READER\",\n                \"is_unit_action\": true,\n                \"_unit_action\": true,\n                \"_delete\": false\n            }\n        ],\n        \"user\": {\n            \"id\": \"1445da1b-6976-492a-8df0-7e790e69e553\",\n            \"name\": \"Ivan\",\n            \"role\": {\n                \"id\": \"6592d562-e965-43bd-9d9e-8319cabd6291\",\n                \"key\": \"OPERATOR\",\n                \"value\": \"Оператор\"\n            }\n        },\n        \"available_actions_keys\": [\n            \"update_unit\",\n            \"delete_unit\",\n            \"update_unit_imei\",\n            \"update_unit_name_icon\",\n            \"get_unit\"\n        ]\n    },\n    {\n        \"actions\": [\n            {\n                \"id\": \"c7d844c5-ede8-41bb-8679-9a1782815c20\",\n                \"key\": \"update_unit\",\n                \"name\": \"Редактирование объекта\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": true,\n                \"_unit_action\": true,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"7c20d415-6b8c-47fe-b5d4-737e55f1f7a7\",\n                \"key\": \"delete_unit\",\n                \"name\": \"Удаление объекта\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": true,\n                \"_unit_action\": true,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"0e83be60-b808-4f06-b6db-e01377720d47\",\n                \"key\": \"update_unit_imei\",\n                \"name\": \"Изменение IMEI объекта\",\n                \"parent_id\": \"c7d844c5-ede8-41bb-8679-9a1782815c20\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": true,\n                \"_unit_action\": true,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"5a1b7d86-122a-4fe8-b364-0531db41951a\",\n                \"key\": \"get_unit\",\n                \"name\": \"Просмотр объекта\",\n                \"role_key\": \"READER\",\n                \"is_unit_action\": true,\n                \"_unit_action\": true,\n                \"_delete\": false\n            }\n        ],\n        \"user\": {\n            \"id\": \"8462404e-99a9-4226-ae14-2f59e0400768\",\n            \"name\": \"vayokor918@ikumaru.com\",\n            \"role\": {\n                \"id\": \"ed858ec5-a3c7-4901-9078-efc65a350b93\",\n                \"key\": \"ADMIN\",\n                \"value\": \"Новая роль1124124\"\n            }\n        },\n        \"available_actions_keys\": [\n            \"update_unit\",\n            \"delete_unit\",\n            \"update_unit_imei\",\n            \"update_unit_name_icon\",\n            \"get_unit\"\n        ]\n    }\n]","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units_groups_access/:company_id/:units_group_id","description":"<p><strong>Обновление списка пользователей, имеющих доступ к группе объектов</strong></p>\n<hr />\n<p><strong>Параметры запроса:</strong></p>\n<p>company_id - ID компании</p>\n<p>units_group_id - ID группы</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Ответ:</strong></p>\n<p>Приходит JSON массив. Каждый элемент имеет: actions и user</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"actions\": [\n            {\n                \"id\": \"8a94afa3-2f4d-4cae-84ed-05197e412e56\",\n                \"key\": \"update_unit\",\n                \"name\": \"Редактирование объекта\"\n            },\n            {\n                \"id\": \"fb369ecf-4446-45e7-9835-57bad481f161\",\n                \"key\": \"delete_unit\",\n                \"name\": \"Удаление объекта\"\n            },\n            {\n                \"id\": \"415b7e76-3c57-439c-bbb9-1b1e7eb78a0f\",\n                \"key\": \"update_unit_imei\",\n                \"name\": \"Изменение IMEI объекта\"\n            }\n        ],\n        \"user\": {\n            \"id\": \"95568a4b-9ca8-4552-95d1-d22ce5020cdc\",\n            \"name\": \"User1\"\n        }\n    },\n    {\n        \"actions\": [\n            {\n                \"id\": \"8a94afa3-2f4d-4cae-84ed-05197e412e56\",\n                \"key\": \"update_unit\",\n                \"name\": \"Редактирование объекта\",\n                \"role_key\": \"EDITOR\"\n            },\n            {\n                \"id\": \"fb369ecf-4446-45e7-9835-57bad481f161\",\n                \"key\": \"delete_unit\",\n                \"name\": \"Удаление объекта\"\n            },\n            {\n                \"id\": \"415b7e76-3c57-439c-bbb9-1b1e7eb78a0f\",\n                \"key\": \"update_unit_imei\",\n                \"name\": \"Изменение IMEI объекта\"\n            },\n            {\n                \"id\": \"262b7e97-dbfa-4288-9878-ad564672796e\",\n                \"key\": \"update_unit_name_icon\",\n                \"name\": \"Обновление названия и иконки объекта\"\n            },\n            {\n                \"id\": \"5f182c77-dfa7-4fb2-947a-2a1fc44ee83b\",\n                \"key\": \"get_unit\",\n                \"name\": \"Просмотр объекта\"\n            }\n        ],\n        \"user\": {\n            \"id\": \"e09239ea-b09f-4801-94c8-cc15af7606a4\",\n            \"name\": \"User2\"\n        }\n    }\n]\n\n</code></pre><p>Запрос и ответ имеют такую же структуру, как GET /units_groups_access?units_group_id=units_group_id</p>\n","urlObject":{"path":["api_v1","units_groups_access",":company_id",":units_group_id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID компании</p>\n","type":"text/plain"},"type":"any","value":"","key":"company_id"},{"description":{"content":"<p>ID группы</p>\n","type":"text/plain"},"type":"any","value":"","key":"units_group_id"}]}},"response":[],"_postman_id":"50d0a445-e85d-4896-bd35-cf926db0123e"},{"name":"New Request","id":"10b92c0e-99f3-4ec2-abea-df684250ed93","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"","urlObject":{"query":[],"variable":[]}},"response":[],"_postman_id":"10b92c0e-99f3-4ec2-abea-df684250ed93"}],"id":"a56d1f3d-81ef-4eaa-b605-b71c5bb95c53","_postman_id":"a56d1f3d-81ef-4eaa-b605-b71c5bb95c53","description":""},{"name":"Другое","item":[{"name":"/send_push","id":"c0c370bc-e6e3-4962-a5dc-45c1efef8d60","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"title\": \"Тест\",\n    \"body\": \"Проверка пуш\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/send_push","description":"<p><strong>Отправка push-уведомлений пользователям компаний дилера</strong></p>\n<hr />\n<p><strong>Параметры:</strong></p>\n<p>title - тема</p>\n<p>body - текст уведомления</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<ol>\n<li>Отправка всем пользователям компаний дилера</li>\n</ol>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"title\": \"Тест\",\n    \"body\": \"Проверка пуш\"\n}\n\n</code></pre>\n<p>2. Отправка всем пользователям конкретной компании, в поле company_id указать ID компании</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"title\": \"Тест\",\n    \"body\": \"Проверка пуш\",\n    \"company_id\": \"5fb53281-23b1-42ac-a336-315edcd0a30e\"\n}\n\n</code></pre>\n<p>3. Отправка конкретному пользователю, указать в поле user_id ID пользователя</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"title\": \"Тест\",\n  \"body\": \"Проверка пуш\",\n  \"user_id\": \"1c74912a-ebcd-47e0-8828-8bcfcc7ef59d\"\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","send_push"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c0c370bc-e6e3-4962-a5dc-45c1efef8d60"},{"name":"/terminals/columns/<iterminal_type>/<imei>","id":"21c9add9-8b58-4b63-bdb8-32038c87d3ac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/terminals/columns/arnavi/xxxxxx","description":"<hr />\n<p><strong>Роль:</strong> Редактор тарифа и выше.</p>\n","urlObject":{"path":["api_v1","terminals","columns","arnavi","xxxxxx"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"21c9add9-8b58-4b63-bdb8-32038c87d3ac"},{"name":"/branding","id":"0979ffe7-a4b1-4d64-862e-b8588063fe50","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/branding","description":"<p><strong>Получение брендинга по текущему домену</strong></p>\n<hr />\n<p>Поля, необходимые для фронта:</p>\n<ol>\n<li><p>Название [Текст]: Название компании интегратора. Это название будет заменять название “SKIF.PRO” в системе. - title</p>\n</li>\n<li><p>Логотип [Изображение]: Логотип компании интегратора, данный логотип будет отображаться в интерфейсе системы. - logo</p>\n</li>\n<li><p>Ссылка на сайт интегратора [Текст]: Гиперссылка (интегратор может дать ссылку на свой сайт). Ссылка срабатывает при клике на Логотип или Название (в email письмах). Необязательные данные. - site</p>\n</li>\n<li><p>Обложка для страницы входа [Изображение]: Изображение которое отображается на странице входа (логина). Необязательные данные. Если изображение от интегратора нет, то используется стандартное обложка (важно: не обложка SKIF.PRO, а стандартная обложка).- background</p>\n</li>\n<li><p>Контакты [Текст]: Любая текстовая информация от интегратора, предполагается что это будет контактная информация техподдержки (не более 320 символов) - contacts</p>\n</li>\n</ol>\n<p>Для получение файлов логотипа и Обложки для страницы входа вызывать /api_v1/&lt;значение поля logo&gt; и /api_v1/&lt;значение поля background&gt;</p>\n","urlObject":{"path":["api_v1","branding"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"0979ffe7-a4b1-4d64-862e-b8588063fe50"},{"name":"/terminals/columns/<iterminal_type>/<imei> Copy","id":"12e2017e-3a89-4569-8cc0-a6ed0c32e7cd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"terminal_type\": \"arnavi\",\n    \"check_imei\": \"xxxxxx\",\n    \"columns\": [{\"key\":\"sos_state\"}]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/terminals/columns","description":"<hr />\n<p><strong>Роль:</strong> Редактор тарифа и выше.</p>\n","urlObject":{"path":["api_v1","terminals","columns"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"12e2017e-3a89-4569-8cc0-a6ed0c32e7cd"}],"id":"73d1e809-8c06-4e58-a24d-d532553d37d0","_postman_id":"73d1e809-8c06-4e58-a24d-d532553d37d0","description":""},{"name":"Роли","item":[{"name":"/roles","id":"7d27b40e-18c5-4cce-910e-2dd6d90eb3bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/roles","description":"<p><strong>Получение всех ролей</strong></p>\n<hr />\n<p>Структура роли :</p>\n<ul>\n<li><p>id - uuid, идентификатор роли.</p>\n</li>\n<li><p>key - string, ключ роли.</p>\n</li>\n<li><p>value - string, название роли</p>\n</li>\n<li><p>is_default - boolean, true, если роль по умолчанию для всех компаний, иначе только для текущий компании.</p>\n</li>\n<li><p>actions - массив действий.</p>\n</li>\n</ul>\n<p>Элементы действий имеют такую структуру:</p>\n<ul>\n<li><p>id - uuid, идентификатор действия.</p>\n</li>\n<li><p>key - string, ключ действия.</p>\n</li>\n<li><p>name - string, название действия.</p>\n</li>\n</ul>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"id\": \"3fbd6629-f854-46e9-a190-cae0eb7fb5f0\",\n        \"is_default\": true,\n        \"key\": \"NO_ACCESS\",\n        \"value\": \"Без доступа\",\n        \"actions\": []\n    },\n    {\n        \"id\": \"808942ea-a102-47cb-889d-859b182f160c\",\n        \"is_default\": true,\n        \"key\": \"OBSERVER\",\n        \"value\": \"Наблюдатель\",\n        \"actions\": [\n            {\n                \"id\": \"3185300e-e471-4fdd-ad80-4c73288f58f4\",\n                \"key\": \"generate_report\",\n                \"name\": \"Генерация отчетов\",\n                \"role_key\": \"OBSERVER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"fd7ee65f-5fd3-46c8-ad39-ce1227816ed6\",\n                \"key\": \"generate_journal\",\n                \"name\": \"Смотреть Журнала\",\n                \"parent_id\": \"3185300e-e471-4fdd-ad80-4c73288f58f4\",\n                \"role_key\": \"OBSERVER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"0fd9f710-cad6-4a8c-bd5d-59f1332b8d52\",\n                \"key\": \"generate_other_reports\",\n                \"name\": \"Генерация отчета(Кроме журнала)\",\n                \"parent_id\": \"3185300e-e471-4fdd-ad80-4c73288f58f4\",\n                \"role_key\": \"OBSERVER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            }\n        ]\n    },\n    {\n        \"id\": \"7d7292e4-e246-44e1-ac70-b1c7f23e464c\",\n        \"is_default\": true,\n        \"key\": \"READER\",\n        \"value\": \"Читатель\",\n        \"actions\": [\n            {\n                \"id\": \"3185300e-e471-4fdd-ad80-4c73288f58f4\",\n                \"key\": \"generate_report\",\n                \"name\": \"Генерация отчетов\",\n                \"role_key\": \"OBSERVER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"fd7ee65f-5fd3-46c8-ad39-ce1227816ed6\",\n                \"key\": \"generate_journal\",\n                \"name\": \"Смотреть Журнала\",\n                \"parent_id\": \"3185300e-e471-4fdd-ad80-4c73288f58f4\",\n                \"role_key\": \"OBSERVER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"0fd9f710-cad6-4a8c-bd5d-59f1332b8d52\",\n                \"key\": \"generate_other_reports\",\n                \"name\": \"Генерация отчета(Кроме журнала)\",\n                \"parent_id\": \"3185300e-e471-4fdd-ad80-4c73288f58f4\",\n                \"role_key\": \"OBSERVER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"fff20839-8dbc-46ad-98bf-0f01d91ff184\",\n                \"key\": \"get_units\",\n                \"name\": \"Просмотр всех объектов\",\n                \"role_key\": \"READER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"c3be2a31-04be-4531-bf79-d67490e42453\",\n                \"key\": \"get_users\",\n                \"name\": \"Чтение справочника пользователей\",\n                \"role_key\": \"READER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            }\n        ]\n    },\n    {\n        \"id\": \"6592d562-e965-43bd-9d9e-8319cabd6291\",\n        \"is_default\": true,\n        \"key\": \"OPERATOR\",\n        \"value\": \"Оператор\",\n        \"actions\": [\n            {\n                \"id\": \"3185300e-e471-4fdd-ad80-4c73288f58f4\",\n                \"key\": \"generate_report\",\n                \"name\": \"Генерация отчетов\",\n                \"role_key\": \"OBSERVER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"fd7ee65f-5fd3-46c8-ad39-ce1227816ed6\",\n                \"key\": \"generate_journal\",\n                \"name\": \"Смотреть Журнала\",\n                \"parent_id\": \"3185300e-e471-4fdd-ad80-4c73288f58f4\",\n                \"role_key\": \"OBSERVER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"0fd9f710-cad6-4a8c-bd5d-59f1332b8d52\",\n                \"key\": \"generate_other_reports\",\n                \"name\": \"Генерация отчета(Кроме журнала)\",\n                \"parent_id\": \"3185300e-e471-4fdd-ad80-4c73288f58f4\",\n                \"role_key\": \"OBSERVER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"441a9b9f-ac5d-4f90-8c2a-98d3ac7121af\",\n                \"key\": \"cud_events\",\n                \"name\": \"Создание/Редактирование/Удаление Событий\",\n                \"role_key\": \"OPERATOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"fff20839-8dbc-46ad-98bf-0f01d91ff184\",\n                \"key\": \"get_units\",\n                \"name\": \"Просмотр всех объектов\",\n                \"role_key\": \"READER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"c3be2a31-04be-4531-bf79-d67490e42453\",\n                \"key\": \"get_users\",\n                \"name\": \"Чтение справочника пользователей\",\n                \"role_key\": \"READER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"48138886-6220-41fe-adbe-72e479d8e22d\",\n                \"key\": \"commands\",\n                \"name\": \"Отправка Команд\",\n                \"role_key\": \"OPERATOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            }\n        ]\n    },\n    {\n        \"id\": \"8ae01b09-95dc-445a-8b92-b570cfa94a04\",\n        \"is_default\": true,\n        \"key\": \"EDITOR\",\n        \"value\": \"Редактор\",\n        \"actions\": [\n            {\n                \"id\": \"3185300e-e471-4fdd-ad80-4c73288f58f4\",\n                \"key\": \"generate_report\",\n                \"name\": \"Генерация отчетов\",\n                \"role_key\": \"OBSERVER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"fd7ee65f-5fd3-46c8-ad39-ce1227816ed6\",\n                \"key\": \"generate_journal\",\n                \"name\": \"Смотреть Журнала\",\n                \"parent_id\": \"3185300e-e471-4fdd-ad80-4c73288f58f4\",\n                \"role_key\": \"OBSERVER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"0fd9f710-cad6-4a8c-bd5d-59f1332b8d52\",\n                \"key\": \"generate_other_reports\",\n                \"name\": \"Генерация отчета(Кроме журнала)\",\n                \"parent_id\": \"3185300e-e471-4fdd-ad80-4c73288f58f4\",\n                \"role_key\": \"OBSERVER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"4132cf99-98fd-47d0-a7c5-fbd2fa167336\",\n                \"key\": \"create_units\",\n                \"name\": \"Создание объектов\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"1c0ff6a6-e1e6-4d20-bb86-b94cd175aa91\",\n                \"key\": \"cud_geozones\",\n                \"name\": \"Создание/Редактирование/Удаление Геозон\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"77d71ff0-bb6c-447c-af3c-4c0fbe17b5c9\",\n                \"key\": \"cud_notifications\",\n                \"name\": \"Создание/Редактирование/Удаление Шаблонов Уведомлений\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"405bb5f4-d0f0-44cc-9550-4f44f1ae9d61\",\n                \"key\": \"cud_trips\",\n                \"name\": \"Создание/Редактирование/Удаление Рейсов\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"aace4f55-fcf5-4aba-ba32-d3a2335b76e2\",\n                \"key\": \"cud_mailings\",\n                \"name\": \"Создание/Редактирование/Удаление Рассылок\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"1e79a78d-4ed6-494d-90e4-2ebbd15e80bd\",\n                \"key\": \"cud_trailers\",\n                \"name\": \"Создание/Редактирование/Удаление Прицепов\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"ede4829f-9ecf-474c-ba20-a2b00c687591\",\n                \"key\": \"cud_units_groups\",\n                \"name\": \"Создание/Редактирование/Удаление Групп\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"f9df739b-9e3a-4feb-80c4-a3a1519d0b54\",\n                \"key\": \"cud_report_templates\",\n                \"name\": \"Создание/Редактирование/Удаление Шаблонов отчетов\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"441a9b9f-ac5d-4f90-8c2a-98d3ac7121af\",\n                \"key\": \"cud_events\",\n                \"name\": \"Создание/Редактирование/Удаление Событий\",\n                \"role_key\": \"OPERATOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"d95323ae-0b58-4e91-a7e5-1e862fa07a85\",\n                \"key\": \"update_units\",\n                \"name\": \"Редактирование всех объектов\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"e4de9d83-fb37-447e-855a-1ee81902490f\",\n                \"key\": \"delete_units\",\n                \"name\": \"Удаление всех объектов\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"fff20839-8dbc-46ad-98bf-0f01d91ff184\",\n                \"key\": \"get_units\",\n                \"name\": \"Просмотр всех объектов\",\n                \"role_key\": \"READER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"c3be2a31-04be-4531-bf79-d67490e42453\",\n                \"key\": \"get_users\",\n                \"name\": \"Чтение справочника пользователей\",\n                \"role_key\": \"READER\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"877ea798-f16d-490f-ab1c-218ab172a244\",\n                \"key\": \"cud_locators\",\n                \"name\": \"Создание/Редактирование/Удаление/Просмотр Ссылки доступа\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"48138886-6220-41fe-adbe-72e479d8e22d\",\n                \"key\": \"commands\",\n                \"name\": \"Отправка Команд\",\n                \"role_key\": \"OPERATOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            }\n        ]\n    },\n    {\n        \"id\": \"2c34a621-b048-494b-bc50-80ec835fed17\",\n        \"is_default\": false,\n        \"company_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\n        \"key\": \"EDITOR\",\n        \"value\": \"Редактор геозон и шаблонов отчетов\",\n        \"actions\": [\n            {\n                \"id\": \"1c0ff6a6-e1e6-4d20-bb86-b94cd175aa91\",\n                \"key\": \"cud_geozones\",\n                \"name\": \"Создание/Редактирование/Удаление Геозон\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"f9df739b-9e3a-4feb-80c4-a3a1519d0b54\",\n                \"key\": \"cud_report_templates\",\n                \"name\": \"Создание/Редактирование/Удаление Шаблонов отчетов\",\n                \"role_key\": \"EDITOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            }\n        ]\n    },\n    {\n        \"id\": \"41607791-8948-460b-8950-d60a9c57c372\",\n        \"is_default\": true,\n        \"key\": \"ADMIN\",\n        \"value\": \"Администратор\",\n        \"actions\": [\n            {\n                \"id\": \"6da12577-da5c-426d-8626-5ad628adcb29\",\n                \"key\": \"cud_users\",\n                \"name\": \"Изменение справочника пользователей\",\n                \"role_key\": \"ADMIN\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            }\n        ]\n    },\n    {\n        \"id\": \"d9566448-3518-4389-8a39-662f4d6e71ec\",\n        \"is_default\": true,\n        \"key\": \"SUPERVISOR\",\n        \"value\": \"Супервизор\",\n        \"actions\": [\n            {\n                \"id\": \"116e6564-2aa3-4783-9b08-e6a0bbfddec9\",\n                \"key\": \"cud_terminals\",\n                \"name\": \"Создание/Редактирование/Удаление Терминалов\",\n                \"role_key\": \"SUPERVISOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"487de2c6-7b5e-40a1-83d7-d0f25331d9b7\",\n                \"key\": \"cud_company\",\n                \"name\": \"Создание/Редактирование компании\",\n                \"role_key\": \"SUPERVISOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            },\n            {\n                \"id\": \"9f0c1c49-7a06-4474-b051-610588317502\",\n                \"key\": \"delete_company\",\n                \"name\": \"Удаление компаний\",\n                \"role_key\": \"SUPERVISOR\",\n                \"is_unit_action\": false,\n                \"_unit_action\": false,\n                \"_delete\": false\n            }\n        ]\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","roles"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"7d27b40e-18c5-4cce-910e-2dd6d90eb3bd"},{"name":"/actions","id":"8472ec19-9462-4075-8874-c6c622015fde","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/actions","description":"<p><strong>Получение всех действий</strong></p>\n<hr />\n<p>Возвращается массив действий.</p>\n<p>Элементы действий имеют такую структуру:</p>\n<ul>\n<li><p>id - uuid, идентификатор действия.</p>\n</li>\n<li><p>key - string, ключ действия.</p>\n</li>\n<li><p>name - string, название действия.</p>\n</li>\n</ul>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"id\": \"3185300e-e471-4fdd-ad80-4c73288f58f4\",\n        \"key\": \"generate_report\",\n        \"name\": \"Генерация отчетов\",\n        \"role_key\": \"OBSERVER\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"fd7ee65f-5fd3-46c8-ad39-ce1227816ed6\",\n        \"key\": \"generate_journal\",\n        \"name\": \"Смотреть Журнала\",\n        \"parent_id\": \"3185300e-e471-4fdd-ad80-4c73288f58f4\",\n        \"role_key\": \"OBSERVER\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"0fd9f710-cad6-4a8c-bd5d-59f1332b8d52\",\n        \"key\": \"generate_other_reports\",\n        \"name\": \"Генерация отчета(Кроме журнала)\",\n        \"parent_id\": \"3185300e-e471-4fdd-ad80-4c73288f58f4\",\n        \"role_key\": \"OBSERVER\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"5a1b7d86-122a-4fe8-b364-0531db41951a\",\n        \"key\": \"get_unit\",\n        \"name\": \"Просмотр объекта\",\n        \"role_key\": \"READER\",\n        \"is_unit_action\": true,\n        \"_unit_action\": true,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"fff20839-8dbc-46ad-98bf-0f01d91ff184\",\n        \"key\": \"get_units\",\n        \"name\": \"Просмотр всех объектов\",\n        \"role_key\": \"READER\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"c3be2a31-04be-4531-bf79-d67490e42453\",\n        \"key\": \"get_users\",\n        \"name\": \"Чтение справочника пользователей\",\n        \"role_key\": \"READER\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"441a9b9f-ac5d-4f90-8c2a-98d3ac7121af\",\n        \"key\": \"cud_events\",\n        \"name\": \"Создание/Редактирование/Удаление Событий\",\n        \"role_key\": \"OPERATOR\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"48138886-6220-41fe-adbe-72e479d8e22d\",\n        \"key\": \"commands\",\n        \"name\": \"Отправка Команд\",\n        \"role_key\": \"OPERATOR\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"4132cf99-98fd-47d0-a7c5-fbd2fa167336\",\n        \"key\": \"create_units\",\n        \"name\": \"Создание объектов\",\n        \"role_key\": \"EDITOR\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"1c0ff6a6-e1e6-4d20-bb86-b94cd175aa91\",\n        \"key\": \"cud_geozones\",\n        \"name\": \"Создание/Редактирование/Удаление Геозон\",\n        \"role_key\": \"EDITOR\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"77d71ff0-bb6c-447c-af3c-4c0fbe17b5c9\",\n        \"key\": \"cud_notifications\",\n        \"name\": \"Создание/Редактирование/Удаление Шаблонов Уведомлений\",\n        \"role_key\": \"EDITOR\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"405bb5f4-d0f0-44cc-9550-4f44f1ae9d61\",\n        \"key\": \"cud_trips\",\n        \"name\": \"Создание/Редактирование/Удаление Рейсов\",\n        \"role_key\": \"EDITOR\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"aace4f55-fcf5-4aba-ba32-d3a2335b76e2\",\n        \"key\": \"cud_mailings\",\n        \"name\": \"Создание/Редактирование/Удаление Рассылок\",\n        \"role_key\": \"EDITOR\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"1e79a78d-4ed6-494d-90e4-2ebbd15e80bd\",\n        \"key\": \"cud_trailers\",\n        \"name\": \"Создание/Редактирование/Удаление Прицепов\",\n        \"role_key\": \"EDITOR\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"ede4829f-9ecf-474c-ba20-a2b00c687591\",\n        \"key\": \"cud_units_groups\",\n        \"name\": \"Создание/Редактирование/Удаление Групп\",\n        \"role_key\": \"EDITOR\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"f9df739b-9e3a-4feb-80c4-a3a1519d0b54\",\n        \"key\": \"cud_report_templates\",\n        \"name\": \"Создание/Редактирование/Удаление Шаблонов отчетов\",\n        \"role_key\": \"EDITOR\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"c7d844c5-ede8-41bb-8679-9a1782815c20\",\n        \"key\": \"update_unit\",\n        \"name\": \"Редактирование объекта\",\n        \"role_key\": \"EDITOR\",\n        \"is_unit_action\": true,\n        \"_unit_action\": true,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"7c20d415-6b8c-47fe-b5d4-737e55f1f7a7\",\n        \"key\": \"delete_unit\",\n        \"name\": \"Удаление объекта\",\n        \"role_key\": \"EDITOR\",\n        \"is_unit_action\": true,\n        \"_unit_action\": true,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"0e83be60-b808-4f06-b6db-e01377720d47\",\n        \"key\": \"update_unit_imei\",\n        \"name\": \"Изменение IMEI объекта\",\n        \"parent_id\": \"c7d844c5-ede8-41bb-8679-9a1782815c20\",\n        \"role_key\": \"EDITOR\",\n        \"is_unit_action\": true,\n        \"_unit_action\": true,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"e5b7aa86-36c3-49db-ad93-7fcfc4f3a790\",\n        \"key\": \"update_unit_name_icon\",\n        \"name\": \"Обновление названия и иконки объекта\",\n        \"parent_id\": \"c7d844c5-ede8-41bb-8679-9a1782815c20\",\n        \"role_key\": \"EDITOR\",\n        \"is_unit_action\": true,\n        \"_unit_action\": true,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"d95323ae-0b58-4e91-a7e5-1e862fa07a85\",\n        \"key\": \"update_units\",\n        \"name\": \"Редактирование всех объектов\",\n        \"role_key\": \"EDITOR\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"e4de9d83-fb37-447e-855a-1ee81902490f\",\n        \"key\": \"delete_units\",\n        \"name\": \"Удаление всех объектов\",\n        \"role_key\": \"EDITOR\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"877ea798-f16d-490f-ab1c-218ab172a244\",\n        \"key\": \"cud_locators\",\n        \"name\": \"Создание/Редактирование/Удаление/Просмотр Ссылки доступа\",\n        \"role_key\": \"EDITOR\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"6da12577-da5c-426d-8626-5ad628adcb29\",\n        \"key\": \"cud_users\",\n        \"name\": \"Изменение справочника пользователей\",\n        \"role_key\": \"ADMIN\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"6dddfa19-2f20-4d5e-929e-2b489430a1cb\",\n        \"key\": \"finance_report\",\n        \"name\": \"Доступ к финансовому отчету\",\n        \"role_key\": \"ADMIN\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"f478bb8c-ad0c-4595-b9a6-a1198fc69bda\",\n        \"key\": \"cud_roles\",\n        \"name\": \"Изменение ролей\",\n        \"role_key\": \"ADMIN\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"116e6564-2aa3-4783-9b08-e6a0bbfddec9\",\n        \"key\": \"cud_terminals\",\n        \"name\": \"Создание/Редактирование/Удаление Терминалов\",\n        \"role_key\": \"SUPERVISOR\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"487de2c6-7b5e-40a1-83d7-d0f25331d9b7\",\n        \"key\": \"cud_company\",\n        \"name\": \"Создание/Редактирование компании\",\n        \"role_key\": \"SUPERVISOR\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    },\n    {\n        \"id\": \"9f0c1c49-7a06-4474-b051-610588317502\",\n        \"key\": \"delete_company\",\n        \"name\": \"Удаление компаний\",\n        \"role_key\": \"SUPERVISOR\",\n        \"is_unit_action\": false,\n        \"_unit_action\": false,\n        \"_delete\": false\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","actions"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8472ec19-9462-4075-8874-c6c622015fde"},{"name":"/roles?ids=id","id":"c6b3cc9c-3e21-4119-b64c-8757e9e72de2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/roles?ids=","description":"<p><strong>Получение роли по ее ID</strong></p>\n<hr />\n<p>Может использоваться для получения роли при поступлении сообщения в сокет об обновлении роли другими пользователями.</p>\n<p>Возвращается роль в виде JSON</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p><a href=\"https://dev5.skif.pro/api_v1/roles?ids=f1db015a-4848-4518-8cad-2dfd5d6f4407\">https://dev5.skif.pro/api_v1/roles?ids=f1db015a-4848-4518-8cad-2dfd5d6f4407</a></p>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Структура ответа такая же, как в запросе GET /roles. Только возвращается не массив, а один элемент.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"f1db015a-4848-4518-8cad-2dfd5d6f4407\",\n    \"is_default\": false,\n    \"company_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\n    \"key\": \"EDITOR\",\n    \"value\": \"Редактор геозон и шаблонов отчетов 2\",\n    \"actions\": [\n        {\n            \"id\": \"1c0ff6a6-e1e6-4d20-bb86-b94cd175aa91\",\n            \"key\": \"cud_geozones\",\n            \"name\": \"Создание/Редактирование/Удаление Геозон\",\n            \"role_key\": \"EDITOR\",\n            \"is_unit_action\": false,\n            \"_unit_action\": false,\n            \"_delete\": false\n        },\n        {\n            \"id\": \"f9df739b-9e3a-4feb-80c4-a3a1519d0b54\",\n            \"key\": \"cud_report_templates\",\n            \"name\": \"Создание/Редактирование/Удаление Шаблонов отчетов\",\n            \"role_key\": \"EDITOR\",\n            \"is_unit_action\": false,\n            \"_unit_action\": false,\n            \"_delete\": false\n        }\n    ],\n    \"_default\": false\n}\n\n</code></pre>","urlObject":{"path":["api_v1","roles"],"host":["{{base_url}}"],"query":[{"key":"ids","value":""}],"variable":[]}},"response":[],"_postman_id":"c6b3cc9c-3e21-4119-b64c-8757e9e72de2"},{"name":"/roles","id":"bab91009-6e2b-4a9e-94e8-9685efeee5f7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"key\": \"EDITOR\",\n    \"value\": \"Редактор геозон и шаблонов отчетов 444\",\n    \"actions\": [\n        {\n            \"id\": \"1c0ff6a6-e1e6-4d20-bb86-b94cd175aa91\",\n            \"key\": \"cud_geozones\",\n            \"name\": \"Создание/Редактирование/Удаление Геозон\",\n            \"role_key\": \"EDITOR\",\n            \"is_unit_action\": false,\n            \"_unit_action\": false,\n            \"_delete\": false\n        },\n        {\n            \"id\": \"f9df739b-9e3a-4feb-80c4-a3a1519d0b54\",\n            \"key\": \"cud_report_templates\",\n            \"name\": \"Создание/Редактирование/Удаление Шаблонов отчетов\",\n            \"role_key\": \"EDITOR\",\n            \"is_unit_action\": false,\n            \"_unit_action\": false,\n            \"_delete\": false\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://dev5.skif.pro/api_v1/roles","description":"<p><strong>Создание новой роли в компании</strong></p>\n<hr />\n<p><strong>Структура запроса:</strong></p>\n<ul>\n<li><p>value - string, название новой роли.</p>\n</li>\n<li><p>actions - массив действий, выбранный из списка действий базовой роли.</p>\n</li>\n</ul>\n<p>Для создания в админ панеле, необходимо указать ID компании в поле company_id</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"value\": \"Редактор геозон и шаблонов отчетов\",\n    \"actions\": [\n        {\n            \"id\": \"1c0ff6a6-e1e6-4d20-bb86-b94cd175aa91\",\n            \"key\": \"cud_geozones\",\n            \"name\": \"Создание/Редактирование/Удаление Геозон\",\n            \"role_key\": \"EDITOR\",\n            \"is_unit_action\": false,\n            \"_unit_action\": false,\n            \"_delete\": false\n        },\n        {\n            \"id\": \"f9df739b-9e3a-4feb-80c4-a3a1519d0b54\",\n            \"key\": \"cud_report_templates\",\n            \"name\": \"Создание/Редактирование/Удаление Шаблонов отчетов\",\n            \"role_key\": \"EDITOR\",\n            \"is_unit_action\": false,\n            \"_unit_action\": false,\n            \"_delete\": false\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"2c34a621-b048-494b-bc50-80ec835fed17\",\n    \"is_default\": false,\n    \"company_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\n    \"key\": \"EDITOR\",\n    \"value\": \"Редактор геозон и шаблонов отчетов\",\n    \"actions\": [\n        {\n            \"id\": \"1c0ff6a6-e1e6-4d20-bb86-b94cd175aa91\",\n            \"key\": \"cud_geozones\",\n            \"name\": \"Создание/Редактирование/Удаление Геозон\",\n            \"role_key\": \"EDITOR\",\n            \"is_unit_action\": false,\n            \"_unit_action\": false,\n            \"_delete\": false\n        },\n        {\n            \"id\": \"f9df739b-9e3a-4feb-80c4-a3a1519d0b54\",\n            \"key\": \"cud_report_templates\",\n            \"name\": \"Создание/Редактирование/Удаление Шаблонов отчетов\",\n            \"role_key\": \"EDITOR\",\n            \"is_unit_action\": false,\n            \"_unit_action\": false,\n            \"_delete\": false\n        }\n    ],\n    \"_default\": false\n}\n\n</code></pre>","urlObject":{"protocol":"https","path":["api_v1","roles"],"host":["dev5","skif","pro"],"query":[],"variable":[]}},"response":[],"_postman_id":"bab91009-6e2b-4a9e-94e8-9685efeee5f7"},{"name":"/roles/:id","id":"83e7caeb-4744-4684-9f4d-0fe681ec6430","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": \"0f31eeb6-f5f5-4170-a8ac-9b2ec79f1170\",\n    \"is_default\": false,\n    \"company_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\n    \"key\": \"EDITOR\",\n    \"value\": \"Редактор геозон и шаблонов отчетов 888\",\n    \"actions\": [\n        {\n            \"id\": \"1c0ff6a6-e1e6-4d20-bb86-b94cd175aa91\",\n            \"key\": \"cud_geozones\",\n            \"name\": \"Создание/Редактирование/Удаление Геозон\",\n            \"role_key\": \"EDITOR\",\n            \"is_unit_action\": false,\n            \"_unit_action\": false,\n            \"_delete\": false\n        },\n        {\n            \"id\": \"f9df739b-9e3a-4feb-80c4-a3a1519d0b54\",\n            \"key\": \"cud_report_templates\",\n            \"name\": \"Создание/Редактирование/Удаление Шаблонов отчетов\",\n            \"role_key\": \"EDITOR\",\n            \"is_unit_action\": false,\n            \"_unit_action\": false,\n            \"_delete\": false\n        }\n    ],\n    \"users_count\": 0,\n    \"_default\": false\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/roles/:id","description":"<p><strong>Обновление роли в компании</strong></p>\n<hr />\n<p><strong>Параметр запроса:</strong></p>\n<p>ID роли</p>\n<p>Структура тела запроса JSON, как при создании POST /roles</p>\n<hr />\n<p>﻿﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"2c34a621-b048-494b-bc50-80ec835fed17\",\n    \"is_default\": false,\n    \"company_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\n    \"value\": \"Редактор геозон и шаблонов отчетов\",\n    \"actions\": [\n        {\n            \"id\": \"1c0ff6a6-e1e6-4d20-bb86-b94cd175aa91\",\n            \"key\": \"cud_geozones\",\n            \"name\": \"Создание/Редактирование/Удаление Геозон\",\n            \"role_key\": \"EDITOR\",\n            \"is_unit_action\": false,\n            \"_unit_action\": false,\n            \"_delete\": false\n        },\n        {\n            \"id\": \"f9df739b-9e3a-4feb-80c4-a3a1519d0b54\",\n            \"key\": \"cud_report_templates\",\n            \"name\": \"Создание/Редактирование/Удаление Шаблонов отчетов\",\n            \"role_key\": \"EDITOR\",\n            \"is_unit_action\": false,\n            \"_unit_action\": false,\n            \"_delete\": false\n        }\n    ]\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"2c34a621-b048-494b-bc50-80ec835fed17\",\n    \"is_default\": false,\n    \"company_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\n    \"key\": \"EDITOR\",\n    \"value\": \"Редактор геозон и шаблонов отчетов\",\n    \"actions\": [\n        {\n            \"id\": \"1c0ff6a6-e1e6-4d20-bb86-b94cd175aa91\",\n            \"key\": \"cud_geozones\",\n            \"name\": \"Создание/Редактирование/Удаление Геозон\",\n            \"role_key\": \"EDITOR\",\n            \"is_unit_action\": false,\n            \"_unit_action\": false,\n            \"_delete\": false\n        },\n        {\n            \"id\": \"f9df739b-9e3a-4feb-80c4-a3a1519d0b54\",\n            \"key\": \"cud_report_templates\",\n            \"name\": \"Создание/Редактирование/Удаление Шаблонов отчетов\",\n            \"role_key\": \"EDITOR\",\n            \"is_unit_action\": false,\n            \"_unit_action\": false,\n            \"_delete\": false\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","roles",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID роли</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"83e7caeb-4744-4684-9f4d-0fe681ec6430"},{"name":"/roles/:id","id":"cfd2b619-96df-4ab3-aa52-5e8aac4afd22","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"{\n   \"replace_role\": {\n       \"id\": \"3476edf5-d2c9-405c-9dfb-29618c47c807\"\n   }\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/roles/:id","description":"<p><strong>Обновление роли в компании</strong></p>\n<hr />\n<p>Параметр запроса - ID роли</p>\n<p>В теле запроса необходимо указать роль для замены ролей пользователей в поле replace_role, если есть пользователи для этой роли. Достаточно указать ID роли.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Администратор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p><a href=\"https://dev5.skif.pro/api_v1/roles/1f21bbe2-797f-4d16-9667-70211ab3412c\">https://dev5.skif.pro/api_v1/roles/1f21bbe2-797f-4d16-9667-70211ab3412c</a></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n   \"replace_role\": {\n       \"id\": \"3476edf5-d2c9-405c-9dfb-29618c47c807\"\n   }\n}\n\n</code></pre><hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    \"id\": \"2c34a621-b048-494b-bc50-80ec835fed17\",\n    \"is_default\": false,\n    \"company_id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\n    \"key\": \"EDITOR\",\n    \"name\": \"Редактор геозон и шаблонов отчетов\",\n    \"actions\": [\n        {\n            \"id\": \"1c0ff6a6-e1e6-4d20-bb86-b94cd175aa91\",\n            \"key\": \"cud_geozones\",\n            \"name\": \"Создание/Редактирование/Удаление Геозон\",\n            \"role_key\": \"EDITOR\",\n            \"is_unit_action\": false,\n            \"_unit_action\": false,\n            \"_delete\": false\n        },\n        {\n            \"id\": \"f9df739b-9e3a-4feb-80c4-a3a1519d0b54\",\n            \"key\": \"cud_report_templates\",\n            \"name\": \"Создание/Редактирование/Удаление Шаблонов отчетов\",\n            \"role_key\": \"EDITOR\",\n            \"is_unit_action\": false,\n            \"_unit_action\": false,\n            \"_delete\": false\n        }\n    ]\n}\n\n</code></pre>","urlObject":{"path":["api_v1","roles",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID роли</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"cfd2b619-96df-4ab3-aa52-5e8aac4afd22"}],"id":"ac9d1fd1-403b-4ea0-89bb-d029f4bcfd01","description":"<p>Работа с ролями</p>\n","_postman_id":"ac9d1fd1-403b-4ea0-89bb-d029f4bcfd01"},{"name":"Новости","item":[{"name":"/news","id":"f5badb54-025f-4f56-b9a4-7da97d78d7ba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"title\": \"Обновление функционал геозон\",\n    \"message\": \"Длииное описание\",\n    \"valid_to\": \"2123-12-31 22:00:00\",\n    \"companies\": [\n        {\"id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\"},\n        {\"id\": \"f08a0297-05c3-42e5-b433-66cd72e72f61\"}\n    ],\n    \"roles\": [\n        {\"key\": \"EDITOR\"},\n        {\"key\": \"ADMIN\"}\n    ],\n    \"send_types\": [\n        {\"key\": \"send_online\"},\n        {\"key\": \"send_telegram\"}\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/news","description":"<p>Добавление новостей интегратором для своих компаний</p>\n<hr />\n<p>Поля:</p>\n<p>title - загаловок новости, текстовое.</p>\n<p>message - текст новости, текстовое.</p>\n<p>companies - массив выбранных компаний, достаточно указать id.</p>\n<p>roles - массив выбранных ролей, достаточно указать key.</p>\n<p>send_types - массив выбранных способов доставки, достаточно указать key. Выбираются из properties, где type=send_types</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Супервизор и выше.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"title\": \"Обновление функционал геозон\",\n    \"message\": \"Длииное описание\",\n    \"valid_to\": \"2123-12-31 22:00:00\",\n    \"companies\": [\n        {\"id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\"},\n        {\"id\": \"f08a0297-05c3-42e5-b433-66cd72e72f61\"}\n    ],\n    \"roles\": [\n        {\"key\": \"EDITOR\"},\n        {\"key\": \"ADMIN\"}\n    ],\n    \"send_types\": [\n        {\"key\": \"send_online\"},\n        {\"key\": \"send_telegram\"}\n    ]\n}\n\n</code></pre>\n<hr />\n<p><strong>Ответ:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"ddee7cdc-eee0-4db2-8430-1c9620fa543f\",\n    \"valid_to\": \"2123-12-31 22:00:00\",\n    \"title\": \"Обновление функционал геозон\",\n    \"message\": \"Длииное описание\",\n    \"companies\": [\n        {\n            \"id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\n            \"name\": \"0Одуванчик\"\n        },\n        {\n            \"id\": \"f08a0297-05c3-42e5-b433-66cd72e72f61\",\n            \"name\": \"ддддддддддааааа\"\n        }\n    ],\n    \"send_types\": [\n        {\n            \"key\": \"send_online\",\n            \"type\": \"send_types\",\n            \"value\": \"Отобразить в интерфейсе SKIF.PRO\"\n        },\n        {\n            \"key\": \"send_telegram\",\n            \"type\": \"send_types\",\n            \"value\": \"Отправить в Телеграм\"\n        }\n    ],\n    \"roles\": [\n        {\n            \"key\": \"EDITOR\",\n            \"value\": \"Редактор\"\n        },\n        {\n            \"key\": \"ADMIN\",\n            \"value\": \"Администратор\"\n        }\n    ]\n}\n\n</code></pre>\n<hr />\n<p><strong>Пример ошибки:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"code\": 4220,\n    \"field\": \"valid_to\",\n    \"message\": \"Актуально до должно быть позже текущего времени\"\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","news"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"f5badb54-025f-4f56-b9a4-7da97d78d7ba"},{"name":"/news/list","id":"babbd792-fad6-4570-bdbc-f71c35a4e0b0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n   \"offset\": 0,\n   \"max\": 20,\n   \"sortField\": \"created\",\n   \"sortDesc\": true\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/news/list","description":"<p><strong>Получение новостей по страницам</strong></p>\n<hr />\n<p>Фильтр отправляется в теле запроса:</p>\n<p>offset - номер первой строки, начинается с нуля.</p>\n<p>max - максимальные количество строк на странице.</p>\n<p>sortField - поле, по которoму нужно делать сортировку (используются следующие поля - created, valid_to, title).</p>\n<p>sortDesc - тип сортировки поля, если true, тогда по убыванию.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"offset\": 0,\n    \"max\": 100,\n    \"sortField\": \"created\",\n    \"sortDesc\": true\n}\n\n</code></pre>\n<hr />\n<p><strong>Пример ответа:</strong></p>\n<p>Возвращаются новости на указанной странице запроса.</p>\n<p>max_rows - количество всех записей.</p>\n<p>list - сами записи. Cтруктура записей, как в ответе на запрос POST /news, дополнительно приходит поле is_read - признак прочитанности и created - дата и время создания.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"max_rows\": 2,\n    \"list\": [\n        {\n            \"id\": \"c37494d6-7141-41b3-b0d9-ff3c89fd159a\",\n            \"created\": \"2023-12-05 17:49:15\",\n            \"valid_to\": \"2110-12-31 22:00:00\",\n            \"title\": \"Война и мир. Роман, Лев Толстой. I том\",\n            \"message\": \"Действия I тома описывают события войны в союзе с Австрией против Наполеона в 1805—1807 годах. 1-я часть. Июль 1805 года, назревает война с «чудовищем» Буонапарте. Санкт-Петербург. Фрейлина вдовствующей императрицы Анна Шерер устраивает светский приём. Гости обсуждают последние события — убийство герцога Энгиенского, захват Наполеоном итальянских республик Генуи и Лукки, миссию Новосильцева по посредничеству между Францией и Англией. На приёме появляются князь Андрей Болконский со своей беременной женой Лизой, молодой Пьер, незаконный сын богатейшего графа Безухова, князь Василий Курагин со своей прекрасной дочерью Элен. Курагин жалуется Шерер на своих сыновей: беспутного Анатоля и глупого Ипполита. Обедневшая княгиня Анна Друбецкая просит князя Василия похлопотать о зачислении её единственного сына Бориса в гвардию. После приёма Пьер едет к Болконскому, тот убеждает его не участвовать в кутежах Анатоля Курагина. Однако тот всё равно отправляется к Анатолю, кутёж заканчивается печально: Пьера высылают в Москву, заводила Долохов разжалован в солдаты, дело с Анатолем замял отец.Москва. 26 августа[19], день святой Натальи) в большом доме графов Ростовых на Поварской празднуют именины графини Ростовой и её младшей дочери Наташи. Сын Ростова Николай готовится к отправке на войну, он влюблён в свою троюродную сестру бесприданницу Соню. Наташа Ростова тоже хочет любить кого-то, поэтому напрашивается на откровенный разговор с Борисом Друбецким и целует его. На праздник приезжает Пьер и Марья Дмитриевна Ахросимова — влиятельная и уважаемая дама, резкая и категоричная в своих суждениях. Граф Ростов, к восторгу всех присутствующих, танцует с Марьей Дмитриевной свой любимый танец — «Данилу Купора».Отец Пьера граф Безухов находится при смерти после нескольких ударов. Он просит князя Василия, родственника жены, привести к нему Пьера, самого любимого из своих сыновей. Князь Василий и три княжны Мамонтовы опасаются, что наследство может достаться Пьеру. Разобравшись, куда дует ветер, княгиня Друбецкая привозит ничего не подозревающего Пьера в дом графа и силком вырывает у княжны Мамонтовой портфель, где находится письмо графа к государю с просьбой признать Пьера законным сыном. Неожиданно Пьер становится графом, одним из богатейших людей России.Андрей Болконский назначен адьютантом Кутузова и уезжает на войну, мечтая прославиться, оставив Лизу в имении отца Лысые Горы. Его отец, генерал-аншеф князь Николай Андреевич Болконский, много лет безвыездно живёт в своём имении. Он отличается прямотой своих суждений, суровостью и строгостью. Он заставляет дочь княжну Марью заниматься математикой, постоянно третирует и оскорбляет её. Тем не менее набожная и некрасивая княжна любит отца и знает, что он любит её. Княжна Марья получает письмо от Жюли Карагиной, которая пишет о том, что, по слухам, князь Василий хочет женить на ней своего сына Анатоля.2-я часть. Австрия. Русская армия после длительного перехода участвует в смотре в местечке Браунау. На смотр приезжает главнокомандующий Кутузов. Он недоволен бравым видом армии, не желая видеть своих солдат пушечным мясом в замыслах австрийцев. После разгрома генерала Мака под Ульмом армии Кутузова приходится отступить к Кремсу. Кутузов посылает Болконского с посланием о первой русской победе к австрийскому императору Францу. После аудиенции Болконский узнаёт, что французы неожиданно прорвались в Вену, армия Кутузова оказывается под угрозой окружения. Несмотря на предложение дипломата Билибина ехать с ним, Болконский, уверенный что пришло его время, спешит к Кутузову. Кутузов решается идти к Цнайму на соединение с российскими силами. Он посылает четырёхтысячный отряд Багратиона к деревне Шёнграбен, где в отчаянном безнадёжном бою русские задерживают продвижение армии Мюрата. На совещании у Багратиона Болконский заступается за истинного героя сражения — капитана Тушина, чья батарея подожгла деревню в тылу французов и держалась, оказавшись в окружении. Павлоградский гусарский полк тоже участвовал в сражении, где Николай Ростов получает рану.3-я часть. Князь Василий поселяет дезориентированного новой жизнью Пьера у себя, намереваясь женить его на своей дочери. Он устраивает Пьеру назначение в камер-юнкеры. Постепенно светское общество начинает воспринимать Пьера как жениха Элен. Пьер испытывает к красавице влечение, но опасается, что женитьба на глупой Элен станет для него страшным несчастьем. В решающий момент князь Василий представляет дело так, будто Пьер уже объяснился Элен в любви, Пьеру приходится подчиниться. Он поселяется с женой в своём недавно отремонтированном дворце.Закончив дело с Элен, князь Василий с сыном Анатолем едет в имение старого князя Болконского. Старик разгадывает подлинную сущность Анатоля, но предоставляет свободу выбора своей дочери. Марья очарована красавцем офицером Анатолем, но застаёт его в зимнем саду со своей компаньонкой мадемуазелью Амалией Бурьен. Она решает поспособствовать счастью Амалии и говорит князю Василию, что никогда не станет женой его сына.Стороны стягивают силы к Аустерлицу. Император Александр, его приближённые уверены в победе над слабым противником, австрийцы, уже проводившие манёвры в этой местности, составили подробную диспозицию. Тем не менее Кутузов уверен, что битва будет проиграна, а диспозиция Вейротера хороша лишь тем, что уже высочайше одобрена и изменить в ней ничего всё равно нельзя.Болконский не спит накануне сражения, мечтая о славе. Если счастливый случай вознёс Бонапарта, то завтрашнее сражение может вознести и его. Болконский просит об этом Бога, ему не жаль ни семьи, ни богатства, ни даже жизни.На следующее утро Наполеон, в день годовщины его коронования, в счастливом расположении духа, уверенный в успехе, отдаёт приказ начинать дело. Французская армия спешит занять Праценские высоты, с которых спускается союзная армия. Вскоре сражение оказывается проигранным во всех пунктах. Кутузов замечает наступающую французскую колонну, русские войска разбегаются и он требует от Болконского остановить их. Болконский решив, что наступила долгожданная минута, подбирает знамя и увлекает батальон за собой. Вдруг Болконский чувствует удар по голове и падает. Недвижимый, он видит над собой лишь бескрайнее, бесконечное небо, а всё прежнее теряет всякое значение. Сам Бонапарт смотрит на Болконского («Вот прекрасная смерть!»), но заметив, что Болконский жив, обращается к нему с вопросами. Князь Андрей даже не трудится ответить, воспринимая своего прежнего кумира Бонапарта как ничтожество. Врач Наполеона Ларрей уверен, что Болконский не выживет, его и других безнадёжных раненых, оставляют на попечение местных жителей.\",\n            \"dealer_id\": \"c5e63357-6b63-4ea4-8b91-beb53f749f69\",\n            \"is_read\": false,\n            \"_read\": false,\n            \"companies\": [\n                {\n                    \"id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\n                    \"name\": \"0Одуванчик\"\n                },\n                {\n                    \"id\": \"f08a0297-05c3-42e5-b433-66cd72e72f61\",\n                    \"name\": \"ддддддддддааааа\"\n                }\n            ],\n            \"send_types\": [\n                {\n                    \"key\": \"send_online\",\n                    \"type\": \"send_types\",\n                    \"value\": \"Отобразить в интерфейсе SKIF.PRO\"\n                },\n                {\n                    \"key\": \"send_telegram\",\n                    \"type\": \"send_types\",\n                    \"value\": \"Отправить в Телеграм\"\n                }\n            ],\n            \"roles\": [\n                {\n                    \"key\": \"EDITOR\",\n                    \"value\": \"Редактор\"\n                },\n                {\n                    \"key\": \"ADMIN\",\n                    \"value\": \"Администратор\"\n                }\n            ]\n        },\n        {\n            \"id\": \"6a742db8-4c06-44bf-9f69-43a8f0f0071d\",\n            \"created\": \"2023-12-05 19:19:05\",\n            \"valid_to\": \"2123-12-31 22:00:00\",\n            \"title\": \"Обновление функционал геозон\",\n            \"message\": \"Длииное описание\",\n            \"dealer_id\": \"c5e63357-6b63-4ea4-8b91-beb53f749f69\",\n            \"is_read\": true,\n            \"_read\": true,\n            \"companies\": [\n                {\n                    \"id\": \"3e70f167-9fad-4753-bccf-d7d47c2c648c\",\n                    \"name\": \"0Одуванчик\"\n                },\n                {\n                    \"id\": \"f08a0297-05c3-42e5-b433-66cd72e72f61\",\n                    \"name\": \"ддддддддддааааа\"\n                }\n            ],\n            \"send_types\": [\n                {\n                    \"key\": \"send_online\",\n                    \"type\": \"send_types\",\n                    \"value\": \"Отобразить в интерфейсе SKIF.PRO\"\n                },\n                {\n                    \"key\": \"send_telegram\",\n                    \"type\": \"send_types\",\n                    \"value\": \"Отправить в Телеграм\"\n                }\n            ],\n            \"roles\": [\n                {\n                    \"key\": \"EDITOR\",\n                    \"value\": \"Редактор\"\n                },\n                {\n                    \"key\": \"ADMIN\",\n                    \"value\": \"Администратор\"\n                }\n            ]\n        }\n    ]\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","news","list"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"babbd792-fad6-4570-bdbc-f71c35a4e0b0"},{"name":"/news/:id/mark_as_read","id":"3d2dd4bc-d1ec-456b-a1bf-606196fa209c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"url":"{{base_url}}/api_v1/news/:id/mark_as_read","description":"<p><strong>Отметить новость, как прочитанную</strong></p>\n<hr />\n<p><strong>Параметры запроса:</strong></p>\n<p>id - идентификатор новости.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">PUT https://dev5.skif.pro/api_v1/news/6a742db8-4c06-44bf-9f69-43a8f0f0071d/mark_as_read\n\n</code></pre>\n","urlObject":{"path":["api_v1","news",":id","mark_as_read"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>ID новости</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"3d2dd4bc-d1ec-456b-a1bf-606196fa209c"}],"id":"be6304df-f621-4b15-a2c9-06a667e7cdd9","_postman_id":"be6304df-f621-4b15-a2c9-06a667e7cdd9","description":""},{"name":"Датчики","item":[{"name":"/units/sensors/add_to_units","id":"12607d3c-2a43-4dfb-90ea-de489fdd27c9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"units\": [\n        {\n            \"id\": \"eeb057d5-3653-47d7-a2d4-18af25b51486\"\n        }\n    ],\n    \"sensors\": [\n        {\n            \"id\": \"385b68de-6af9-4af7-84c3-a0028b54ef30\"\n        }\n    ],\n    \"sensor_copy_type\": {\n        \"key\": \"sensor_copy_type_merge\",\n        \"type\": \"sensor_copy_type\",\n        \"value\": \"Слияние\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/units/sensors/add_to_units","description":"<p><strong>Импортирование датчиков</strong></p>\n<hr />\n<p>Поля:</p>\n<p>units - выбранные объекты.</p>\n<p>sensors - выбранные датчики.</p>\n<p>sensor_copy_type - тип импортирования датчиков. Можно получить возможные типы импортирования датчиков из dictionary, где type = sensor_copy_type.</p>\n<hr />\n<p>﻿<strong>Роль:</strong> Редактор и выше.</p>\n","urlObject":{"path":["api_v1","units","sensors","add_to_units"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"12607d3c-2a43-4dfb-90ea-de489fdd27c9"}],"id":"1ba0ae4c-2deb-4baa-aee0-ecd39109b2e2","_postman_id":"1ba0ae4c-2deb-4baa-aee0-ecd39109b2e2","description":""},{"name":"Счета","item":[{"name":"/invoices","id":"a7761744-2329-4a0a-a9aa-2e8f27cc9e23","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/invoices","description":"<p><strong>Запрос для получения счетов</strong></p>\n<hr />\n<p>Для интеграторов для сотрудников с ролью Редактор тарифа, по которому выдаются все счета, выставленные ранее с колонками Интегратор, Дата, Сумма и ссылка на файл pdf.</p>\n<p>Для сотрудника с ролью Контролер доступны для получения все счета, по всем Интеграторам.</p>\n<p>Для фильтрации по дате в запросе можно указать from и to. Пример запроса:</p>\n<blockquote>\n<p>GET /invoices?from=2024-01-01&amp;to=2024-12-31 </p>\n</blockquote>\n<hr />\n<p><strong>Роль:</strong> Редактор тарифа и выше.</p>\n<hr />\n<p>Поля в ответе:</p>\n<p>dealer - интегратор.</p>\n<p>date - дата в формате yyyy-MM-dd</p>\n<p>sum - сумма.</p>\n<p>file_path - ссылка на файл, можно получить файл через ссылку /api_v1/</p>\n<p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"id\": \"b23fc43b-0566-478e-8598-18e83c2b0a92\",\n        \"dealer\": {\n            \"id\": \"f6a2a3fa-930b-4045-8731-3592b466d48f\",\n            \"name\": \"Мониторинг Плюс Москва\"\n        },\n        \"date\": \"2024-05-01\",\n        \"file_path\": \"/files/dealers_invoice/f6a2a3fa-930b-4045-8731-3592b466d48f/2024-05-01_invoice_7032506.pdf\",\n        \"sum\": 350000\n    },\n    {\n        \"id\": \"21d20961-ad09-4322-abfb-7b34bce74a1e\",\n        \"dealer\": {\n            \"id\": \"f6a2a3fa-930b-4045-8731-3592b466d48f\",\n            \"name\": \"Мониторинг Плюс Москва\"\n        },\n        \"date\": \"2024-04-01\",\n        \"file_path\": \"/files/dealers_invoice/f6a2a3fa-930b-4045-8731-3592b466d48f/2024-04-01_invoice_2368165.pdf\",\n        \"sum\": 340000\n    }\n]\n\n</code></pre>","urlObject":{"path":["api_v1","invoices"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"a7761744-2329-4a0a-a9aa-2e8f27cc9e23"}],"id":"100bd35b-8d35-4cd2-8d27-b5fd7dbdc672","_postman_id":"100bd35b-8d35-4cd2-8d27-b5fd7dbdc672","description":""},{"name":"Инструменты","item":[{"name":"/tools/loadwln?table=<table>&imei=<IMEI>","id":"e286ce27-41b5-461a-90f1-0992d62505fe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"file","file":{"src":"/home/azat/Downloads/862273040898231.wln.zip"}},"url":"{{base_url}}/api_v1/tools/loadwln?table=&imei=","description":"<p><strong>Загрузка истории по объектам</strong></p>\n<hr />\n<p>Параметры запроса:</p>\n<p>table - ключ протокола передачи данных объекта (terminal_type_key)</p>\n<p>imei - IMEI объекта.</p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST <a href=\"https://dev5.skif.pro/api_v1/tools/loadwln?table=navtelecom&amp;imei=85433234354343\">https://dev5.skif.pro/api_v1/tools/loadwln?table=navtelecom&amp;imei=85433234354343</a></p>\n<p>В теле запроса для загрузки принимаются только один файл архива в формате zip, в котором находится файл выгрузки истории из Wialon в формате wln.</p>\n<p>В ответе возвращается 200, если загружено успешно или статус для ошибки.</p>\n<p>Тело ответа содержит текст в формате text/plain.</p>\n","urlObject":{"path":["api_v1","tools","loadwln"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Ключ протокола передачи данных объекта</p>\n","type":"text/plain"},"key":"table","value":""},{"description":{"content":"<p>IMEI объекта</p>\n","type":"text/plain"},"key":"imei","value":""}],"variable":[]}},"response":[],"_postman_id":"e286ce27-41b5-461a-90f1-0992d62505fe"}],"id":"bb99ee1b-48c3-438d-adc4-61ec2e9720cf","_postman_id":"bb99ee1b-48c3-438d-adc4-61ec2e9720cf","description":""},{"name":"Выгрузка данных","item":[{"name":"/tools/exportwln_multiple","id":"82b45d70-14b2-4488-aeb4-e1d84c4d4674","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"objects\": [\n    {\n      \"table\": \"novacom\",\n    \"imei\": \"863591026316285\"\n    },\n    {\n      \"table\": \"novacom\",\n      \"imei\": \"863591026336465\"\n    }\n  ],\n  \"from\" : \"2024-10-24\",\n  \"to\": \"2024-10-25\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/tools/exportwln_multiple","description":"<p><strong>Экспортирование множества объектов</strong></p>\n<hr />\n<p><strong>Пример запроса:</strong></p>\n<p>POST <a href=\"https://admin-dev.skif.pro/api_v1/tools/exportwln_multiple\">https://admin-dev.skif.pro/api_v1/tools/exportwln_multiple</a></p>\n<p>Возвращает zip файл с необходимыми объектами в формате .wln</p>\n","urlObject":{"path":["api_v1","tools","exportwln_multiple"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"82b45d70-14b2-4488-aeb4-e1d84c4d4674"},{"name":"/tools/exportwln","id":"40925f45-1419-4aba-867d-24bd472ec85e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"{{base_url}}/api_v1/tools/exportwln?table=novacom&imei=123&from=2024-10-24&to=2024-10-25","description":"<p><strong>Метод для экспортирования объекта</strong></p>\n<hr />\n<p>Пример:</p>\n<p>POST <a href=\"https://admin-dev.skif.pro/api_v1/tools/exportwln?table=novacom&amp;imei=123&amp;from=2024-10-24&amp;to=2024-10-25\">https://admin-dev.skif.pro/api_v1/tools/exportwln?table=novacom&amp;imei=123&amp;from=2024-10-24&amp;to=2024-10-25</a></p>\n<p>Возвращает .wln файл с необходимым объектом</p>\n","urlObject":{"path":["api_v1","tools","exportwln"],"host":["{{base_url}}"],"query":[{"key":"table","value":"novacom"},{"key":"imei","value":"123"},{"key":"from","value":"2024-10-24"},{"key":"to","value":"2024-10-25"}],"variable":[]}},"response":[],"_postman_id":"40925f45-1419-4aba-867d-24bd472ec85e"}],"id":"ea0b1ccb-9952-48cf-b798-77da66793bb2","_postman_id":"ea0b1ccb-9952-48cf-b798-77da66793bb2","description":""},{"name":"Support","item":[{"name":"/support_key","id":"2af456f5-6327-4efe-8929-69ab35b0e354","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/api_v1/support_key","description":"<p>Запрос на получение API-ключа для HelpDeskEddy.</p>\n<p>Возвращает ответ JSON со статусом 200 или ошибкой в случае ошибки.</p>\n<p>Поля ответа:</p>\n<p>user_id - ID пользователя в SKIF.PRO, uuid</p>\n<p>helpdesk_user_id - ID пользователя в HelpDeskEddy</p>\n<p>helpdesk_api_key - API key для HelpDeskEddy</p>\n<p>Пример ответа:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"user_id\": \"0179f5d4-a7b0-4bb3-b499-54825ecba753\",\n    \"helpdesk_user_id\": 30,\n    \"helpdesk_api_key\": \"ee914ca2-19dc-4b99-af58-08a9863a1a31\"\n}\n\n</code></pre>\n","urlObject":{"path":["api_v1","support_key"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"2af456f5-6327-4efe-8929-69ab35b0e354"},{"name":"/support_hook","id":"14ce5845-8b13-42d8-83b0-8b7c1cfe062a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"ticket_id\": \"27\",\n    \"user_id\": \"30\", //id клиента в helpdesck\n    \"ticket_name\": \"Тема обращения\",\n    \"answer\": \"текст ответа\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api_v1/support_hook","description":"<p>для получения webhook запросов от helpdesckeddy. Требуется API key отправить в хедере</p>\n<p>Поля JSON запроса:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"ticket_id\": \"27\",\n  \"user_id\": \"5\", //id клиента в helpdesck\n  \"ticket_name\": \"Тема обращения\",\n  \"answer\": \"текст ответа\"\n}\n\n</code></pre><p>По результату активному пользователю (подключен к нам по websocket) отправляется websocket-сообщение и всегда отправлять push уведомление в следующем формате:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"thread-id\": \"ID company\",\n    \"alert\": {\n        \"title\": \"Title\",\n        \"body\": \"message\"\n    },\n    \"type\": \"support\",\n    \"ticket_id\": \"27\",\n     \"ticket_name\": \"Тема обращения\",\n     \"answer\": \"текст ответа\"\n} \n\n</code></pre>\n","urlObject":{"path":["api_v1","support_hook"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"14ce5845-8b13-42d8-83b0-8b7c1cfe062a"}],"id":"bbbefe61-eb48-4a80-ba1f-a5b22b7b2620","_postman_id":"bbbefe61-eb48-4a80-ba1f-a5b22b7b2620","description":""}],"variable":[{"id":"b590179b-df0b-4571-b304-69eab2ead739","key":"email","value":"test1@ya.ru"},{"id":"90880db0-3006-4a34-ae8d-6aab46489089","key":"password","value":"12345N"},{"id":"e88e4d3f-0c48-46a8-8807-de5ee29401fe","key":"phone","value":"+71111111111"}]}