Декомпозиция BR 3.5 — Импорт сотрудников из PayKeeper

Источник

PK API подтверждён работающим

POC 2026-04-27 — endpoint GET /info/organization/users/ на koala-test.server.paykeeper.ru отвечает по Basic auth теми же кредами что используются для invoice/IMS API. Поля response: id, login, email, fio, admin, refund, invoices_only. Никаких блокеров от PayKeeper нет.

Затронутые сервисы / репозитории

СервисПортРепоЗадачи
Paykeeper Adapter:3015erp-paykeeper-adapterPaykeeper Adapter
Admin BFF:3020erp-admin (bff/)Admin BFF
Admin Franchise web:3020erp-admin (web/)Admin Franchise
User Service:3002erp-user-service— изменений нет (используем существующие GET /internal/users/by-email, POST /api/v1/employees, PATCH /api/v1/employees/{id})
Catalog Service:3004— изменений нет
Order Service:3005— изменений нет
Store Service:3003— изменений нет
Infrastructure— изменений нет

POS (erp-pos-desktop, erp-pos) — не трогаем. Импорт сотрудников — бэкенд + админка.

Последовательность выполнения

  1. Paykeeper Adapter (≈ 1.5 дня) — миграция paykeeper_users + paykeeper_user_imports, PayKeeperUsersClient (один новый endpoint к PK), UserImportService (preview + import logic), UserImportController (4 admin endpoints). Работает синхронно — без outbox/cron.
  2. Admin BFF (≈ 0.5 дня) — 4 прокси-роута + shared TypeScript types.
  3. Admin Franchise web (≈ 1.5 дня) — кнопка «Выгрузить из PK» на /employees, страница wizard’а /employees/import-from-paykeeper, модалка выбора ЛК (если их >1), модалка «Журнал импортов».

Итого: ≈ 3.5 дня бэкенд + фронт.

Зависимости от других BR

  • BR 3.3 (Paykeeper Adapter — P0 Pilot) — должна быть готова. Используем paykeeper_accounts, pk_login/pk_password, JWT auth-инфраструктура для PK.
  • BR 1.4.4 (permission-модель) — integrations.read/integrations.manage/employees.edit уже описаны в роли.
  • User Service GET /internal/users/by-email — должен быть готов (это существующий endpoint).

Риски / открытые вопросы

Все блокеры закрыты на этапе планирования. Остались дизайн-вопросы (см. §10 BR 3.5) — решения зашиты в спеку:

  1. admin: true PK игнорируется автоматически (не маппится в нашу системную роль) — владелец сам выбирает permissions
  2. Системные login: admin/user показываются с пометкой — владелец сам решает импортировать или пропустить
  3. phone PK не отдаёт — wizard просит ввести
  4. Empty list / >100 users — обрабатываем через UI (empty state / без пагинации в P0)

Прогресс

  • Paykeeper Adapter — миграция + ims-style PK users client + UserImportService + Controller
  • Admin BFF — 4 прокси-роута + shared types
  • Admin Franchise web — кнопка + wizard + модалка журнала + state-machine
  • e2e-проверка на koala-test PK + demo-coffee tenant
  • Deploy на VPS

Sandbox credentials

ЛК PK: koala-test.server.paykeeper.ru (тот же что для BR 3.3 / 3.4). Тестовые пользователи: admin, user, koala, et — реальный ответ API сохранён в BR §1.1.

Demo-tenant в нашем ERP: demo@nirbi.ru / admin123 на erp-test.nirbi.ru. Перед e2e — привязать koala-test ЛК к ЮЛ demo-coffee (если ещё не привязан в рамках BR 3.3).

Ссылки