BR 1.4 → Admin Franchise (BFF + Web)
Репозиторий: erp-admin (монорепо: bff/ + web/ + shared/)
Фронт-спеки: Список, Карточка
BFF (bff/)
shared/ — типы
- Типы:
Employee,EmployeeCreateRequest,EmployeeUpdateRequest - Типы:
EmployeeRole,EmployeeStatus,EmployeeListParams - Экспорт из
shared/src/index.ts
Прокси-эндпоинты
-
GET /api/v1/admin/employees→ User ServiceGET /api/v1/employees -
GET /api/v1/admin/employees/{id}→ User ServiceGET /api/v1/employees/{id} -
POST /api/v1/admin/employees→ User ServicePOST /api/v1/employees -
PATCH /api/v1/admin/employees/{id}→ User ServicePATCH /api/v1/employees/{id} -
POST /api/v1/admin/employees/{id}/deactivate→ User Service -
POST /api/v1/admin/employees/{id}/reactivate→ User Service
Web (web/)
Список сотрудников
- Страница
/employees— таблица с колонками (ФИО, Email, Телефон, Роль, ТТ, Статус, Курьер, Действия) - Фильтры (роль, статус) + поиск (debounce 300ms)
- Фильтр по торговой точке (
store_id) — dropdown с ТТ, сброс на page=1 при смене - Сортировка по ФИО
- Пагинация (20 на страницу)
- Деактивированные — серый цвет, opacity 0.6
- Меню действий строки (редактировать, деактивировать/реактивировать)
- Модалка: деактивация (подтверждение с именем + предупреждение о сессиях)
- Модалка: реактивация (подтверждение с именем)
- Пустое состояние (“Сотрудники пока не добавлены”)
- Ролевой доступ: Franchise все, Franchisee свои, Manager read-only
Карточка сотрудника
- Страница просмотра
/employees/{id}— все поля, список ТТ, PIN статус - Форма создания
/employees/new— выбор роли, привязка к ТТ, валидация - Форма редактирования
/employees/{id}/edit— роль disabled, пароль optional - Логика select роли: Franchise видит 4 роли, Franchisee только manager/cashier
- Логика select ТТ: зависит от выбранной роли (скрыто/одна/несколько)
- Обработка ошибок:
EMAIL_DUPLICATE,PIN_DUPLICATE,ROLE_ESCALATION - Предупреждение при несохранённых изменениях