# 영업파트너승인 ## 개요 영업파트너승인은 신규 영업파트너 등록 신청을 검토하고 승인/반려를 처리하는 기능입니다. 본사 관리자 전용 페이지로, 신청자의 정보와 서류를 확인하고 일괄 처리할 수 있습니다. - **라우트**: `GET /sales/managers/approvals` - **미들웨어**: `auth`, `hq.member` + 관리자 권한 체크 - **UI 기술**: Blade + HTMX + Tailwind CSS ## 파일 구조 ``` mng/ ├── app/Http/Controllers/Sales/ │ └── SalesManagerController.php # 파트너관리와 동일 컨트롤러 (승인 메서드 포함) ├── app/Services/Sales/ │ └── SalesManagerService.php # approve(), reject() 로직 └── resources/views/sales/managers/ └── approvals.blade.php # 승인 관리 페이지 ``` ## 라우트 ```php // routes/web.php (sales prefix 그룹 내, resource 전에 정의) GET /managers/approvals → approvals() 승인 목록 페이지 POST /managers/approvals/{id}/approve → approveFromList() 목록에서 승인 POST /managers/approvals/{id}/reject → rejectFromList() 목록에서 반려 ``` ## 컨트롤러 ### SalesManagerController (승인 관련 메서드) | 메서드 | HTTP | 설명 | 권한 | |--------|------|------|------| | `approvals()` | GET | 승인 대기 목록 페이지 | 관리자 전용 | | `approveFromList()` | POST | 목록에서 승인 처리 | 관리자 전용 | | `rejectFromList()` | POST | 목록에서 반려 처리 | 관리자 전용 | | `approve()` | POST | 상세에서 승인 | - | | `reject()` | POST | 상세에서 반려 | - | ### 승인 처리 흐름 ``` 영업파트너 등록 신청 (store) ↓ approval_status = 'pending' (Users 테이블) ↓ 관리자 승인 목록에서 확인 ├── approveFromList() → status = 'approved' │ ├── approved_at 기록 │ └── approved_by 기록 │ └── rejectFromList() → status = 'rejected' └── rejection_reason 저장 (필수) ``` ### 응답 방식 ``` HTMX 요청 → JsonResponse (success, message) 일반 요청 → Redirect (redirect back) ``` ## 뷰 구성 ### approvals.blade.php ``` ┌─ 페이지 헤더 ────────────────────── │ 제목: "영업파트너 승인관리" │ ├─ 통계 카드 ──────────────────────── │ 승인 대기 | 오늘 승인 | 오늘 반려 │ ├─ 검색/필터 영역 ────────────────── │ 검색 (이름, 아이디, 이메일, 전화번호) │ ├─ 2분할 레이아웃 ────────────────── │ ┌─ 좌: 승인 대기 ────────────┐ ┌─ 우: 승인 완료 ─────────────┐ │ │ 신청자명 | 역할 | 유치자 │ │ 파트너명 | 승인일 | 승인자 │ │ │ └─ [승인] [반려] 버튼 │ │ │ │ └────────────────────────────┘ └─────────────────────────────┘ │ └─ 상세 모달 ─────────────────────── 파트너 정보 (이름, 아이디, 이메일, 전화) 계층 정보 (레벨, 추천인) 등록 서류 목록 (다운로드/삭제) [승인] [반려] 버튼 ``` ## 반려 처리 ``` 반려 시: - rejection_reason (반려 사유) 필수 입력 - 상태: pending → rejected - 반려 후 재신청 가능 ```