Управление сотрудниками
Обзор
Сотрудники — это люди в вашей организации, которые оказывают услуги клиентам. У каждого сотрудника:
- Своё расписание и доступность
- Возможность назначения на конкретные услуги
- Роль (владелец или сотрудник)
- Своя публичная страница профиля на сайте записи
Приглашение сотрудников
Сгенерировать код приглашения
POST /api/org/invite-code/generate
Authorization: Bearer your-owner-token
Отправьте полученный код человеку, которого приглашаете. Он использует его, чтобы присоединиться к вашей организации.
Приглашение по email
Можно также пригласить напрямую по email:
POST /api/org/auth/invite
Authorization: Bearer your-owner-token
Content-Type: application/json
{
"email": "[email protected]"
}
Присоединение по коду приглашения
Приглашённый регистрируется или входит в аккаунт, затем отправляет запрос на присоединение:
POST /api/org/join-requests
Authorization: Bearer their-token
Content-Type: application/json
{
"invite_code": "ABC123"
}
Как владелец, вы одобряете или отклоняете ожидающие запросы:
GET /api/org/join-requests # список ожидающих запросов
POST /api/org/join-requests/{joinRequest}/approve # одобрить
POST /api/org/join-requests/{joinRequest}/reject # отклонить
Управление сотрудниками
Список сотрудников
GET /api/org/staff
Authorization: Bearer your-token
Создать сотрудника напрямую (только владелец)
Если вы хотите создать аккаунт сотрудника без процесса приглашения:
POST /api/org/staff
Authorization: Bearer your-owner-token
Content-Type: application/json
{
"name": "Alex Johnson",
"email": "[email protected]",
"phone": "+998901234567",
"role": "staff",
"bio": "Experienced barber with 5 years of experience",
"position": "Senior Stylist"
}
Обновить данные сотрудника
PUT /api/org/staff/{staff}
Authorization: Bearer your-token
Content-Type: application/json
{
"name": "Alex Johnson",
"position": "Lead Stylist",
"bio": "Updated bio"
}
Активация и деактивация
Деактивация убирает сотрудника из процесса записи — клиенты не могут записаться к нему, но существующие записи сохраняются.
POST /api/org/staff/{staff}/activate
POST /api/org/staff/{staff}/deactivate
Когда деактивировать: когда сотрудник уходит в отпуск или увольняется. Не удаляйте — деактивируйте, чтобы сохранить историю записей.
Роли сотрудников
| Роль | Возможности |
|---|---|
owner | Полный доступ: управление сотрудниками, настройками, биллингом, платёжными реквизитами, кодами приглашений |
staff | Управление записями и собственной доступностью; большинство настроек организации только для просмотра |
Роли задаются для каждой организации отдельно — один и тот же человек может быть владельцем в одной организации и сотрудником в другой.
Назначение услуг сотрудникам
Каждого сотрудника нужно назначить на услуги, которые он может оказывать. Без назначения он не появится в процессе записи на эту услугу.
# Посмотреть текущие назначения услуг
GET /api/org/staff/{staff}/services
# Назначить услуги (заменяет существующие назначения)
POST /api/org/staff/{staff}/services
Authorization: Bearer your-token
Content-Type: application/json
{
"service_ids": [1, 2, 3]
}
Либо назначьте сотрудников со стороны услуги:
POST /api/org/services/{service}/staff
Content-Type: application/json
{
"staff_ids": [1, 2]
}
Совет: добавив новую услугу, сразу назначьте её нужным сотрудникам — иначе она не будет доступна для записи.
Доступность сотрудников
Каждому сотруднику нужно расписание, чтобы генерировались слоты. Управляйте расписаниями через соответствующие эндпоинты (см. Услуги и расписание).
Рассчитанную доступность сотрудника можно посмотреть так:
GET /api/org/staff/{staff}/availability
Профили сотрудников
У каждого сотрудника есть публичная страница профиля, видимая клиентам. Попросите сотрудников заполнить:
- Фото — критично для доверия
- Био — кратко описать экспертизу и опыт
- Должность — роль или позиция в бизнесе
Клиенты могут фильтровать по сотруднику при записи, поэтому заполненный профиль увеличивает число записей.
Массовые операции
Обновить или удалить сразу нескольких сотрудников:
POST /api/org/staff/batch-update
Content-Type: application/json
{
"ids": [2, 3],
"data": { "is_active": false }
}
POST /api/org/staff/batch-destroy
Content-Type: application/json
{
"ids": [4, 5]
}
Используйте batch-destroy с осторожностью — это необратимо. Если нужно сохранить историю, лучше деактивируйте.