EmployeeService.buildEmployeeRoleRefs() — при сборке response join’ить roles.name и stores.name (через Store Service internal API или через уже загруженные employee_stores)
Либо: обогащать response на уровне Admin BFF (proxy вызывает /stores и резолвит имена)
Admin Web (frontend)
ViewPage.tsx — секция «Торговые точки» и «Permissions-роли»: отображать name вместо id
ListPage.tsx — колонка «Торговые точки»: если response содержит объекты {id, name} → показывать name
EditPage.tsx — секция «Permissions-роли»: при отображении назначенных ролей показывать role.name и store.name
Admin BFF (если обогащение на BFF)
Альтернатива: в routes/employees.ts после получения response от User Service — дополнительно запрашивать /stores?ids=... и маппить UUID→name. Минус: +1 запрос. Плюс: не нужно менять User Service.
Рекомендация
Правильнее обогащать на бэкенде (User Service) — у него уже есть доступ к Store Service через internal API (StoreServiceClient). Добавить join на roles.name (из RoleRepository) + stores.name (через StoreServiceClient.getStoreNames(ids)).
Спеки
Баг не выявляет ошибку в спеках — фронт-спека Сотрудники — Карточка корректно описывает что должны отображаться названия ролей и ТТ. Имплементация просто не резолвит UUID в имена.