# 영업/매출관리

## 개요

영업/매출관리 모듈은 영업파트너 관리, 고객 영업권, 상품 관리, 인터뷰 시나리오 등
영업 전체 프로세스를 관리하는 기능 그룹입니다.

- **라우트 Prefix**: `/sales`
- **미들웨어**: `auth`, `hq.member` (본사 회원 전용)
- **UI 기술**: Blade + HTMX + Alpine.js (일부 React)

## 메뉴 구성

| # | 메뉴명 | 경로 | 문서 | 상태 |
|---|--------|------|------|------|
| 1 | 영업관리 대시보드 | `/sales/salesmanagement/dashboard` | [sales-dashboard.md](sales-dashboard.md) | 구현완료 |
| 2 | 파트너관리 | `/sales/managers` | [partners.md](partners.md) | 구현완료 |
| 3 | 영업파트너승인 | `/sales/managers/approvals` | [partner-approvals.md](partner-approvals.md) | 구현완료 |
| 4 | 상품관리 | `/sales/products` | [products.md](products.md) | 구현완료 |
| 5 | 세일즈사이트 | (외부 링크) | - | 미구현 |
| 6 | 랜딩페이지 | (외부 링크) | - | 미구현 |
| 7 | 고객 관리 | `/sales/admin-prospects` | [admin-prospects.md](admin-prospects.md) | 구현완료 |
| 8 | 영업파트너 고객관리 | `/sales/prospects` | [prospects.md](prospects.md) | 구현완료 |
| 9 | 인터뷰 시나리오 | `/sales/interviews` | [interviews.md](interviews.md) | 구현완료 |

## 아키텍처

```
영업/매출관리
├── 대시보드 ──── 수당 현황, 테넌트 진행률, 파트너 활동
├── 파트너관리
│   ├── 파트너 CRUD ──── 영업파트너 등록/수정/역할 관리
│   └── 파트너 승인 ──── 신규 파트너 신청 승인/반려
├── 상품관리 ──── 카테고리별 상품, 가격/수당률 설정
├── 고객관리
│   ├── 고객 관리(관리자) ──── 전사 고객 현황, 본사 진행상태
│   └── 파트너 고객관리 ──── 명함등록 기반 영업권 관리
└── 인터뷰 시나리오 ──── 질문 템플릿, 인터뷰 세션 기록
```

## 파일 구조

```
mng/
├── app/Http/Controllers/Sales/
│   ├── SalesDashboardController.php      # 영업관리 대시보드
│   ├── SalesManagerController.php        # 파트너관리 + 승인
│   ├── SalesProductController.php        # 상품관리
│   ├── TenantProspectController.php      # 영업권(명함등록) 관리
│   ├── AdminProspectController.php       # 관리자 전체 고객 관리
│   └── InterviewScenarioController.php   # 인터뷰 시나리오
├── app/Models/Sales/
│   ├── SalesPartner.php                  # 영업파트너
│   ├── SalesTenantManagement.php         # 테넌트 영업 관리
│   ├── TenantProspect.php                # 가망고객 (영업권)
│   ├── SalesCommission.php               # 영업 수수료
│   ├── SalesProduct.php                  # 영업 상품
│   ├── SalesProductCategory.php          # 상품 카테고리
│   └── SalesManagerDocument.php          # 파트너 서류
├── app/Models/Interview/
│   ├── InterviewCategory.php             # 인터뷰 카테고리
│   ├── InterviewTemplate.php             # 인터뷰 템플릿
│   ├── InterviewQuestion.php             # 인터뷰 질문
│   ├── InterviewSession.php              # 인터뷰 세션
│   └── InterviewAnswer.php              # 인터뷰 답변
├── app/Services/Sales/
│   ├── SalesManagerService.php           # 파트너 관리 서비스
│   ├── TenantProspectService.php         # 영업권 서비스
│   └── InterviewScenarioService.php      # 인터뷰 서비스
└── resources/views/sales/
    ├── dashboard/                        # 대시보드 뷰
    ├── managers/                         # 파트너관리 뷰
    ├── products/                         # 상품관리 뷰
    ├── prospects/                        # 영업권 관리 뷰
    ├── admin-prospects/                  # 관리자 고객관리 뷰
    └── interviews/                       # 인터뷰 시나리오 뷰

api/
└── database/migrations/
    ├── 2026_01_27_221000_create_tenant_prospects_table.php
    ├── 2026_01_28_090000_add_attachments_to_tenant_prospects_table.php
    ├── 2026_01_29_100000_create_sales_partners_table.php
    ├── 2026_01_29_100100_create_sales_tenant_managements_table.php
    ├── 2026_01_29_150000_create_sales_products_tables.php
    └── 2026_02_06_10000x_create_interview_*_tables.php (5개)
```

## 핵심 데이터 모델 관계

```
User (영업파트너)
  │
  ├── SalesPartner (파트너 정보, 수수료율, 계좌)
  │
  ├── TenantProspect (영업권 = 명함등록)
  │     ├── status: active → expired / converted / completed
  │     ├── 유효기간: 2개월
  │     └── 쿨다운: 만료 후 1개월
  │           │
  │           ↓ convert()
  │     Tenant (계약 고객사)
  │           │
  │           ↓
  │     SalesTenantManagement (영업 관리)
  │           ├── status: prospect → approach → negotiation → contracted → onboarding → active
  │           ├── hq_status: pending → review → planning → coding → dev_test → dev_done → int_test → handover
  │           └── SalesCommission (수당 정보)
  │
  └── SalesManagerDocument (등록 서류)

SalesProductCategory
  └── SalesProduct (개발비 원가/적용가, 구독료, 수당율)
        └── SalesContractProduct (계약별 선택 상품)

InterviewCategory
  └── InterviewTemplate
        └── InterviewQuestion
              └── InterviewSession → InterviewAnswer
```

## 권한 체계

| 역할 | 대시보드 | 파트너관리 | 승인 | 상품 | 고객관리 | 파트너고객 | 인터뷰 |
|------|---------|-----------|------|------|---------|-----------|--------|
| 영업파트너 | O (본인) | - | - | - | - | O (본인) | O |
| 상담매니저 | O (본인) | - | - | - | - | - | O |
| 관리자 | O (전체) | O | O | O | O | O | O |
| 슈퍼관리자 | O (전체) | O | O | O | O (삭제) | O | O |
