BUG-020: Карточка сотрудника — UUID вместо названий ТТ и ролей
Описание
В карточке просмотра сотрудника (/employees/:id) торговые точки и permissions-роли отображаются как UUID вместо человекочитаемых названий. Два проблемных места:
- Торговые точки — показываются как
bf5291f8-58e5-429b-8156-77beadd06fb4, f34092f4-485d-4a4c-a0b1-17067c83da60вместо «Шаурма Арбат, Шаурма Тверская» - Permissions-роли → Магазины — в блоке роли показываются как
Магазины: bf5291f8-..., f34092f4-...вместо названий ТТ. Также не видно название роли и непонятно какая роль в каком магазине
Шаги воспроизведения
- Залогиниться как
ip@erp.local - Создать сотрудника с ролью «Кассир» → ТТ «Шаурма Арбат» + «Шаурма Тверская»
- Открыть карточку созданного сотрудника (
/employees/:id) - Посмотреть блок «Торговые точки» и «Permissions-роли»
Ожидаемое поведение
Торговые точки: Шаурма Арбат, Шаурма Тверская
Permissions-роли:
┌────────────────────────────────────────┐
│ Кассир │
│ Магазины: Шаурма Арбат, Шаурма Тверская│
│ [Изменить] [Удалить]│
└────────────────────────────────────────┘
Фактическое поведение
Торговые точки: bf5291f8-58e5-429b-8156-77beadd06fb4, f34092f4-485d-4a4c-a0b1-17067c83da60
Permissions-роли:
┌────────────────────────────────────────────────────────────────────────┐
│ (роль) │
│ Магазины: bf5291f8-58e5-429b-8156-77beadd06fb4, f34092f4-485d-4a4c...│
└────────────────────────────────────────────────────────────────────────┘
Причина
Две проблемы:
1. Backend: GET /employees/{id} возвращает store_ids как UUID, без имён
Response содержит roles: [{ role_id, store_ids: [uuid] }] — только ID магазинов, без названий. Фронт не может отобразить текстом потому что не знает названия по UUID.
Нужно: backend должен возвращать roles: [{ role_id, role_name, store_ids: [{ id, name }] }] — с именами ролей и магазинов.
2. Frontend: ViewPage не резолвит UUID → имена
Фронт получает массив UUID и отображает их как строки. Нужно либо:
- Бэкенд отдаёт имена (правильнее)
- Фронт делает дополнительные запросы на
/stores/{id}и/roles/{id}(костыль)
Затронутые сервисы
| Сервис | Проблема |
|---|---|
| User Service | GET /employees/{id} response: roles[].role_name пустой или отсутствует; roles[].store_ids — плоский массив UUID без имён |
| Admin Web | ViewPage.tsx — отображает UUID напрямую, не резолвит в имена; ListPage.tsx — колонка «Торговые точки» тоже может показывать UUID |