> ## Documentation Index
> Fetch the complete documentation index at: https://platform.doodocs.kz/llms.txt
> Use this file to discover all available pages before exploring further.

# Employee-graph

> Сотрудник как узел графа: связи и обход через expand

Сотрудник — это узел графа оргструктуры. От него идут рёбра к отделу, должности,
руководителю, организации, локации и к самому человеку (`person`). Руководитель —
тоже сотрудник, поэтому цепочка `manager` ведёт дальше по иерархии.

<Frame caption="Сотрудник в центре графа, рёбра — внешние ключи карточки">
  ```mermaid theme={null}
  %%{init: {'theme':'neutral'}}%%
  erDiagram
      EMPLOYEE ||--o| PERSON : "person"
      EMPLOYEE ||--o| DEPARTMENT : "department_id"
      EMPLOYEE ||--o| JOB_TITLE : "job_title_id"
      EMPLOYEE ||--o| ORGANIZATION : "organization_id"
      EMPLOYEE ||--o| LOCATION : "location_id"
      EMPLOYEE ||--o| EMPLOYEE : "manager_id"
      EMPLOYEE {
          uuid id
          uuid department_id FK
          uuid job_title_id FK
          uuid organization_id FK
          uuid location_id FK
          uuid manager_id FK
      }
  ```
</Frame>

## Обход через expand

По умолчанию карточка несёт только `*_id`-ссылки. Чтобы получить связанный объект
в том же ответе, перечислите его в `expand`.

* Допустимые значения: `person`, `department`, `job_title`, `manager`. Другое
  имя — `DEVELOPER.INVALID_EXPAND`.
* Разворачивание **плоское, на один уровень**. Вложенного обхода нет: нельзя
  запросить руководителя руководителя одним `expand`.
* Запятая **не** разделяет значения — `expand=department,manager` считается одним
  именем. Для нескольких объектов повторяйте параметр.

```bash theme={null}
curl -H "X-API-Key: ddp_ВАШ_КЛЮЧ" \
  "https://app.doodocs.kz/api/developer/v1/employees/3f2a9c7e-…?expand=department&expand=manager"
```

```json theme={null}
{
  "id": "3f2a9c7e-…",
  "status": "EMPLOYEE_STATUS_ACTIVE",
  "department_id": "d1c4…",
  "manager_id": "8c5d…",
  "department": {
    "id": "d1c4…",
    "title": "Отдел кадров"
  },
  "manager": {
    "id": "8c5d…",
    "full_name": "Ахмет Байтурсынов"
  },
  "redacted_fields": []
}
```

<Warning>
  `manager` — это узкая ссылка `ManagerRef`: только `id` и отображаемое имя, без
  персональных данных руководителя. Чтобы узнать отдел или ИИН руководителя,
  запросите его как сотрудника — `GET /employees/{manager_id}` — и разверните нужные
  связи уже там (в пределах вашего доступа).
</Warning>

<Note>
  **Под капотом — HRQL.** Граф и списковые фильтры разрешает наш собственный движок
  запросов HRQL — язык вроде where-условий над оргмоделью. Сами вы HRQL не пишете:
  публично вы работаете типизированными фильтрами и `expand`, а HRQL — это то, что
  делает их обход эффективным. Это внутренний движок, а не часть публичного API.
</Note>

## Дальше

<Columns cols={2}>
  <Card title="Модель сотрудника" icon="user" href="/ru/guides/employees/model">
    Поля карточки и модель доступа.
  </Card>

  <Card title="Статусы и жизненный цикл" icon="chart-line" href="/ru/guides/employees/lifecycle">
    Значения `EmployeeStatus` и переходы.
  </Card>

  <Card title="Пагинация" icon="layer-group" href="/ru/api-reference/pagination">
    Фильтры списков и инкрементальная синхронизация.
  </Card>
</Columns>
