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

# Глоссарий: Профиль и управление пользователями

> Справочник представлений, форматов и вспомогательных функций профиля пользователя, его ролей в компании, зарплаты и точек аренды.

Справочник к странице [«Профиль и управление пользователями»](/ru/logic/user/profile).

## Понятия

| Понятие                                     | Значение                                                                                                                                  |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| Сервисы пользователей                       | Вспомогательные функции поиска пользователя, привязки к компании и проверки уникальности — общая логика для входа, регистрации и профиля. |
| Профиль пользователя (представление)        | Адрес чтения и обновления собственного профиля авторизованного пользователя.                                                              |
| Вход по кросс-токену (представление)        | Адрес обмена разовой ссылки перехода на активную сессию.                                                                                  |
| Формат краткой информации профиля           | Отдаёт базовые поля пользователя вместе с ролями из членства в компании.                                                                  |
| Формат профиля с зарплатой и точками        | Расширяет краткий профиль полями зарплаты и списка точек аренды.                                                                          |
| Формат создания/редактирования пользователя | Создаёт и обновляет пользователя вместе с членством в компании, ролями, зарплатой и точками.                                              |
| Формат ограниченного редактирования профиля | Позволяет пользователю менять только базовые поля и пароль своего профиля.                                                                |
| Формат детального профиля                   | Отдаёт полный профиль с ролями, зарплатой и точками; используется профилем на чтение.                                                     |
| Формат входа по кросс-токену                | Проверяет разовую ссылку перехода, гасит её и открывает сессию нужному человеку.                                                          |

## Модели и поля

### Сервисы пользователей

*Вспомогательные функции поиска пользователя, привязки к компании и проверки уникальности.*

Общая логика для входа, регистрации и профиля: поиск пользователя, привязка к компании и проверка уникальности.

**Функции**

| Поле                  | Тип     | Описание                                                                            |
| --------------------- | ------- | ----------------------------------------------------------------------------------- |
| Поиск пользователя    | функция | Ищет по телефону/почте/логину, возвращает первого по идентификатору.                |
| Привязка к компании   | функция | Создаёт членство в компании с ролями; игнорирует отсутствие компании.               |
| Проверка уникальности | функция | Реальная защита уникальности по телефону/почте/логину с исключением текущей записи. |

**Константы**

| Поле                         | Тип     | Описание                             |
| ---------------------------- | ------- | ------------------------------------ |
| Уникальные поля пользователя | список  | Телефон, почта, логин.               |
| Сообщения о дубликатах       | словарь | Тексты ошибок уникальности по полям. |

### Профиль пользователя (представление)

*Адрес чтения и обновления собственного профиля авторизованного пользователя.*

Доступен только авторизованному пользователю. Объект берётся по идентификатору текущего пользователя; на чтение отдаётся детальный профиль, на запись — формат ограниченного редактирования. Список пользователей дополнительно аннотируется зарплатой, списком точек и основной точкой.

**Аннотации**

| Поле                  | Тип             | Описание                                     |
| --------------------- | --------------- | -------------------------------------------- |
| Сумма зарплаты        | число (2 знака) | Аннотация из связи с зарплатой менеджера.    |
| Список точек аренды   | список          | Агрегированный набор точек текущей компании. |
| Основная точка аренды | число           | Первый элемент списка точек.                 |

### Вход по кросс-токену (представление)

*Адрес обмена разовой ссылки перехода на активную сессию.*

Доступен без авторизации; при ошибке токена возвращает ошибку недействительного токена.

### Формат краткой информации профиля

*Отдаёт базовые поля пользователя вместе с ролями из членства в компании.*

Роли доступны только на чтение и читаются через членство в компании.

**Идентификация**

| Поле              | Тип              | Описание |
| ----------------- | ---------------- | -------- |
| Идентификатор     | число            |          |
| Аватар            | файл/изображение |          |
| Имя               | текст            |          |
| Фамилия           | текст            |          |
| Телефон           | текст            |          |
| Электронная почта | текст            |          |

**Роли**

| Поле                       | Тип   | Описание                               |
| -------------------------- | ----- | -------------------------------------- |
| Группа прав                | число | Только чтение, из членства в компании. |
| Сотрудник                  | флаг  | Только чтение, из членства в компании. |
| Субарендатор               | флаг  | Только чтение, из членства в компании. |
| Суперпользователь компании | флаг  | Только чтение, из членства в компании. |

### Формат профиля с зарплатой и точками

*Расширяет краткий профиль полями зарплаты и списка точек аренды.*

Роли и список точек доступны только на чтение.

**Идентификация**

| Поле              | Тип              | Описание |
| ----------------- | ---------------- | -------- |
| Идентификатор     | число            |          |
| Аватар            | файл/изображение |          |
| Телефон           | текст            |          |
| Имя               | текст            |          |
| Фамилия           | текст            |          |
| Электронная почта | текст            |          |

**Роли**

| Поле                       | Тип   | Описание       |
| -------------------------- | ----- | -------------- |
| Группа прав                | число | Только чтение. |
| Сотрудник                  | флаг  | Только чтение. |
| Субарендатор               | флаг  | Только чтение. |
| Суперпользователь компании | флаг  | Только чтение. |

**Ресурсы**

| Поле                | Тип             | Описание                           |
| ------------------- | --------------- | ---------------------------------- |
| Список точек аренды | список          | Только чтение.                     |
| Сумма зарплаты      | число (2 знака) | Необязательное, может быть пустым. |

### Формат создания/редактирования пользователя

*Создаёт и обновляет пользователя вместе с членством в компании, ролями, зарплатой и точками.*

Роли пишутся в членство в компании; точки синхронизируются с точками аренды пользователя, зарплата — с зарплатой менеджера. При создании увеличивается лимит сотрудников, пароль хешируется при сохранении.

**Идентификация**

| Поле              | Тип              | Описание                                                      |
| ----------------- | ---------------- | ------------------------------------------------------------- |
| Идентификатор     | число            |                                                               |
| Аватар            | файл/изображение | Необязательное.                                               |
| Имя               | текст            |                                                               |
| Фамилия           | текст            |                                                               |
| Электронная почта | текст            | Обязательное.                                                 |
| Пароль            | текст            | Только запись, обязательное; сохраняется в хешированном виде. |

**Роли**

| Поле                       | Тип   | Описание                       |
| -------------------------- | ----- | ------------------------------ |
| Группа прав                | число | Пишется в членство в компании. |
| Сотрудник                  | флаг  | Пишется в членство в компании. |
| Суперпользователь компании | флаг  | Пишется в членство в компании. |
| Субарендатор               | флаг  | Пишется в членство в компании. |

**Ресурсы**

| Поле           | Тип             | Описание                                                                          |
| -------------- | --------------- | --------------------------------------------------------------------------------- |
| Точки аренды   | список          | Синхронизируется с точками аренды пользователя (лишние удаляются при обновлении). |
| Сумма зарплаты | число (2 знака) | Необязательное; пишется в зарплату менеджера.                                     |

### Формат ограниченного редактирования профиля

*Позволяет пользователю менять только базовые поля и пароль своего профиля.*

Используется профилем на запись; проверяет уникальность электронной почты.

| Поле              | Тип              | Описание                                        |
| ----------------- | ---------------- | ----------------------------------------------- |
| Идентификатор     | число            |                                                 |
| Аватар            | файл/изображение | Необязательное.                                 |
| Имя               | текст            |                                                 |
| Фамилия           | текст            |                                                 |
| Электронная почта | текст            | Обязательное; проверяется на уникальность.      |
| Пароль            | текст            | Только запись; сохраняется в хешированном виде. |

### Формат детального профиля

*Отдаёт полный профиль с ролями, зарплатой и точками; используется профилем на чтение.*

Роли и основная точка доступны только на чтение.

**Идентификация**

| Поле              | Тип              | Описание        |
| ----------------- | ---------------- | --------------- |
| Идентификатор     | число            |                 |
| Аватар            | файл/изображение | Необязательное. |
| Имя               | текст            |                 |
| Фамилия           | текст            |                 |
| Электронная почта | текст            | Необязательное. |
| Пароль            | текст            | Только запись.  |

**Роли**

| Поле                       | Тип   | Описание       |
| -------------------------- | ----- | -------------- |
| Группа прав                | число | Только чтение. |
| Сотрудник                  | флаг  | Только чтение. |
| Субарендатор               | флаг  | Только чтение. |
| Суперпользователь компании | флаг  | Только чтение. |

**Ресурсы**

| Поле                  | Тип             | Описание                     |
| --------------------- | --------------- | ---------------------------- |
| Основная точка аренды | число           | Только чтение, из аннотации. |
| Список точек аренды   | список          |                              |
| Сумма зарплаты        | число (2 знака) | Необязательное.              |

### Формат входа по кросс-токену

*Проверяет разовую ссылку перехода и открывает сессию нужному человеку.*

Обновляет время последнего входа. Токен гасится в момент использования, поэтому повторный вход по той же ссылке невозможен.

| Поле          | Тип   | Описание                                                                                                                                     |
| ------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| Кросс-токен   | UUID  | Обязательное; ищется среди непогашенных токенов и сразу помечается использованным. Повторное или неизвестное значение отклоняется с ошибкой. |
| Refresh-токен | текст | Выдаётся при успешной проверке.                                                                                                              |
| Access-токен  | текст | Выдаётся при успешной проверке.                                                                                                              |
