feat:파트너 검색에 포지션(역할) 필드 추가

- searchPartners 역할 필터를 sales만 → sales/manager 모두 포함하도록 확장
- 사용자 역할(영업파트너/상담매니저)을 position 필드로 API 응답에 추가
- handlePartnerSelect에 position 매핑 추가 (key: position, label: 포지션/직책/역할)
- PartnerSearchModal 검색 결과에 position 배지 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
김보곤
2026-02-14 18:07:16 +09:00
parent 823916aa1d
commit eafd81d97a
2 changed files with 17 additions and 4 deletions

View File

@@ -37,9 +37,11 @@ public function searchPartners(Request $request): JsonResponse
$query = User::where('is_active', true)
->whereHas('userRoles', function ($w) use ($tenantId) {
$w->where('tenant_id', $tenantId)
->whereHas('role', fn($r) => $r->where('name', 'sales'));
->whereHas('role', fn($r) => $r->whereIn('name', ['sales', 'manager']));
})
->with('salesPartner');
->with(['salesPartner', 'userRoles' => function ($q) use ($tenantId) {
$q->where('tenant_id', $tenantId)->with('role');
}]);
if ($q !== '') {
$query->where(function ($w) use ($q) {
@@ -51,8 +53,11 @@ public function searchPartners(Request $request): JsonResponse
$users = $query->orderBy('name')->limit(20)->get();
$data = $users->map(function ($user) {
$roleLabels = ['sales' => '영업파트너', 'manager' => '상담매니저'];
$data = $users->map(function ($user) use ($roleLabels) {
$sp = $user->salesPartner;
$roles = $user->userRoles->map(fn($ur) => $roleLabels[$ur->role?->name] ?? null)->filter()->values();
return [
'id' => $user->id,
'name' => $user->name,
@@ -61,6 +66,7 @@ public function searchPartners(Request $request): JsonResponse
'company_name' => $sp?->company_name,
'biz_no' => $sp?->biz_no,
'address' => $sp?->address,
'position' => $roles->implode('/'),
];
});