Модель клиента: `Client`. Основные endpoints:
```http
GET /rest/api/client
GET /rest/api/client/{ID}
POST /rest/api/client
PUT /rest/api/client/{ID}
```Основные поля:
Статусы клиента:
```http POST /rest/api/client ```
Пример:
```bash
curl --location --request POST 'https://{DOMAIN NAME}/rest/api/client' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}' \
--data-raw '{
"last_name": "Иванов",
"first_name": "Иван",
"cell_phone": "79000000000",
"phone_prefix": "7",
"city_id": 252,
"status": "ACTIVE"
}'
```В интерфейсе Ветменеджера обязательные поля клиента - фамилия и город. При создании через API рекомендуется передавать фамилию, телефон и город, если город известен.
Перед созданием клиента нужно выполнить поиск, чтобы не создать дубль.
```http
GET /rest/api/client/clientsSearchData?search_query={phone}
```Пример:
```bash
curl --location --request GET 'https://{DOMAIN NAME}/rest/api/client/clientsSearchData?search_query=79000000000' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'
```Телефон передавайте только цифрами, с кодом страны или без. Поиск `clientsSearchData` выполняется не только по телефону, но и по ФИО, email, кличке питомца и названию породы.
В Ветменеджере нет автоматического объединения карточек клиентов.
Если поиск вернул несколько клиентов:
При ручном добавлении клиента программа проверяет совпадения по ФИО и мобильному телефону и показывает возможные совпадения. Через API такую проверку нужно выполнять самостоятельно до создания клиента.
Если в домене несколько клиник, после создания клиента нужно связать клиента с клиникой через модель `clinicsToClients`.
При работе через интерфейс программа заполняет связь автоматически. При работе через API это нужно делать самостоятельно.
Подробнее: Мультиклиниковость.
Модель питомца: `Pet`. Основные endpoints:
```http
GET /rest/api/pet
GET /rest/api/pet/{ID}
POST /rest/api/pet
PUT /rest/api/pet/{ID}
DELETE /rest/api/pet/{ID}
```Основные поля:
Статусы питомца:
Получить виды питомцев: `GET /rest/api/petType`. Получить породы: `GET /rest/api/breed`.
Порода связана с видом питомца через `pet_type_id`.
В OpenAPI поле `breed_id` допускает `null`, но в пользовательских сценариях Ветменеджера вид и порода могут быть важны, например для личного кабинета клиента. Поэтому лучше передавать реальную породу из справочника.
Если порода неизвестна, заранее согласуйте с клиникой, какое значение использовать: подходящую породу из справочника или отдельное значение вроде "Метис" / "Без породы".