# Объекты системы

## Иерархия объектов

<figure><img src="https://2041336905-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHLoHbtSPFA1Ul7oKM5SC%2Fuploads%2FPm72Hkh6GCxSXmzI8V1K%2Fsystem%20objects%20ru.drawio.png?alt=media&#x26;token=9447e0b1-3a39-4e05-b2b1-0d2c875de728" alt=""><figcaption></figcaption></figure>

Объекты системы имеют иерархическую структуру подчинения.&#x20;

1. На верхнем уровне находится **Компания**. Это значит, что один экземпляр установки Oz API может обслуживать пользователей нескольких не зависящих друг от друга компаний.
2. **Пользователь** является инициатором любого запроса. В зависимости от [роли](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/api/oz-api/user-roles) пользователя могут присутствовать определенные ограничения на те или иные действия.
3. При выполнении **Пользователем** запроса на Анализ система автоматически создает **Папку**, помещает туда все отправленные пользователем **Медиафайлы**, а затем запускает собственно [**Анализ**](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/api/oz-api/types-of-analyzes) (один или несколько). Анализы применяются к медиафайлам из папки в соответствии с [Правилами назначения анализов](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/api/oz-api/pravila-naznacheniya-analizov). Требования к медиафайлам перечислены [здесь](https://doc.ozforensics.com/oz-knowledge-ru/other/media-requirements).

## Поля объектов

Каждый объект имеет набор полей для работы и идентификации на уровне REST API запросов.

### Общие поля

| **Поле**              | **Тип**   | **Описание**                                                                                                                         |
| --------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| time\_created         | Timestamp | время создания объекта (кроме пользователя и компании)                                                                               |
| time\_updated         | Timestamp | время изменения объекта                                                                                                              |
| meta\_data            | Json      | любые [пользовательские поля](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/api/oz-api/metadata) |
| `technical_meta_data` | Json      | технические поля, зарезервированные для работы модулей                                                                               |

### Объект Компания

| **Поле**    | **Тип** | **Описание**                    |
| ----------- | ------- | ------------------------------- |
| company\_id | UUID    | код компании в системе          |
| name        | String  | наименование компании в системе |

### Объект Пользователь

| **Поле**              | **Тип** | **Описание**                                                                                                                                                                                                                                                          |
| --------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| user\_id              | UUID    | код пользователя в системе                                                                                                                                                                                                                                            |
| user\_type            | String  | [роль пользователя в системе](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/api/oz-api/user-roles)                                                                                                                                |
| first\_name           | String  | имя                                                                                                                                                                                                                                                                   |
| last\_name            | String  | фамилия                                                                                                                                                                                                                                                               |
| middle\_name          | String  | отчество                                                                                                                                                                                                                                                              |
| email                 | String  | email, который является логином пользователя                                                                                                                                                                                                                          |
| password              | String  | пароль, указывается при добавлении нового пользователя или при изменении пароля. Если [роль](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/api/oz-api/user-roles) пользователя не `admin`, необходимо указать поле `password_old` |
| `can_start_analyze_*` | String  | см. [роли пользователей](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/api/oz-api/user-roles)                                                                                                                                     |
| company\_id           | UUID    | код компании пользователя                                                                                                                                                                                                                                             |
| is\_admin             | Boolean | [флаг админа](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/api/oz-api/user-roles)                                                                                                                                                |
| is\_service           | Boolean | [флаг сервисного пользователя](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/api/oz-api/user-roles)                                                                                                                               |

### Объект Папка

| **Поле**           | **Тип**          | **Описание**                                                                                                                                      |
| ------------------ | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| folder\_id         | UUID             | код папки в системе                                                                                                                               |
| resolution\_status | ResolutionStatus | статус последнего [анализа](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/api/oz-api/types-of-analyzes) папки |

### Объект Медиа

| **Поле**       | **Тип**       | **Описание**                                                                                                                            |
| -------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| media\_id      | UUID          | код медиа                                                                                                                               |
| original\_name | String        | оригинальное имя файла (в файловой системе клиента)                                                                                     |
| original\_url  | Url           | HTTP-ссылка на файл на сервере API                                                                                                      |
| tags           | Array(String) | список [тегов](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/api/oz-api/media-tags) для этого файла |

### Объект Анализ

| **Поле**      | **Тип** | **Описание**                                                                                                                                               |
| ------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| analyse\_id   | UUID    | код анализа                                                                                                                                                |
| folder\_id    | UUID    | код папки                                                                                                                                                  |
| type          | String  | [тип анализа](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/api/oz-api/types-of-analyzes) (BIOMETRY\QUALITY\DOCUMENTS) |
| results\_data | Json    | данные результата анализа                                                                                                                                  |
