# 영업파트너 데모 테넌트 정책

> **작성일**: 2026-03-13
> **상태**: 설계 확정

---

## 1. 개요

### 1.1 목적

영업파트너가 SAM 시스템을 직접 체험하고, 잠재 고객에게 실제 화면을 시연하여 계약 전환율을 높인다.

### 1.2 핵심 원칙

- 영업파트너에게 "보여줄 수 있는 무기"를 제공한다
- 고객이 직접 체험하여 의사결정을 촉진한다
- 체험 데이터를 정식 테넌트로 전환하여 Lock-in 효과를 만든다

### 1.3 현황 및 문제점

| 항목 | 현재 상태 | 문제 |
|------|----------|------|
| 파트너 영업 도구 | 수당 시뮬레이터(`/price/`)만 존재 | 고객에게 실제 화면을 보여줄 수 없음 |
| Trial 상태 | `subscriptions` 모델에 정의만 됨 | 활성화 로직 미구현 |
| 데모 환경 | 없음 | 파트너가 SAM을 직접 체험하지 못하고 영업함 |
| 고객 설득 | 제안서 + 가격표만 제공 | "보여줄 수 없는 2천만원짜리 솔루션" → 전환율 저하 |

---

## 2. 데모 테넌트 전략 (3-Tier)

### 2.1 티어 구조

```
┌─────────────────────────────────────────────────────────────────────┐
│                    SAM 데모 프로그램 3-Tier                          │
├──────────────┬──────────────────┬───────────────────────────────────┤
│  Tier 1      │  Tier 2          │  Tier 3                          │
│  쇼케이스    │  파트너 데모     │  고객 체험                        │
│  (공용)      │  (파트너별 1개)  │  (영업건별)                       │
├──────────────┼──────────────────┼───────────────────────────────────┤
│ 읽기 전용    │ 풀 기능 체험     │ 고객 맞춤 데모                    │
│ 샘플 데이터  │ 샘플+직접 입력   │ 고객 업종 데이터                  │
│ 기간 제한 X  │ 파트너 활동 중   │ 30일 제한                        │
│ URL 1개 공유 │ 파트너 로그인    │ 고객 직접 로그인                  │
└──────────────┴──────────────────┴───────────────────────────────────┘
```

### 2.2 Tier 1: 쇼케이스 (공용 데모)

**목적**: 누구나 SAM이 어떤 시스템인지 3분 안에 파악

| 항목 | 내용 |
|------|------|
| **대상** | 모든 방문자, 파트너 후보, 잠재 고객 |
| **접근** | 공개 URL (예: `demo.codebridge-x.com`) |
| **계정** | 게스트 계정 자동 로그인 (ID/PW 없음) |
| **데이터** | 제조업 샘플 데이터 (가상 회사 "데모제조") |
| **기능** | 읽기 전용 — 조회, 검색, 리포트 확인만 가능 |
| **리셋** | 매일 자정 자동 리셋 (Scheduler) |
| **기간** | 무제한 |
| **비용** | 없음 (마케팅 비용) |

**포함 샘플 데이터**:
- 품목 50개, 거래처 20개, 견적 10건, 수주 15건
- 생산계획 5건, 출하 10건
- 직원 10명, 부서 3개
- 최근 3개월 매출/생산 데이터 (차트용)

**활용 시나리오**:
```
파트너: "SAM이 어떤 시스템인지 보여드리겠습니다"
       → 스마트폰/태블릿으로 demo.codebridge-x.com 접속
       → 실시간 화면 시연 (3~5분)
       → "이런 시스템을 귀사 맞춤으로 구축해드립니다"
```

### 2.3 Tier 2: 파트너 데모 테넌트 (파트너별 전용)

**목적**: 파트너가 SAM을 직접 사용해보고, 고객 영업 시 맞춤 시연 가능

| 항목 | 내용 |
|------|------|
| **대상** | 승인된 영업파트너 (status=`active`) |
| **생성 시점** | 파트너 승인 시 자동 생성 |
| **계정** | 파트너 본인 계정으로 로그인 |
| **데이터** | 업종별 샘플 데이터 프리셋 + 직접 입력 가능 |
| **기능** | 전체 기능 사용 가능 (일부 제한) |
| **리셋** | 월 1회 자동 리셋 또는 파트너 요청 시 수동 리셋 |
| **기간** | 파트너 활동 기간 동안 유지 |
| **비용** | 없음 (파트너 지원) |

**기능 제한**:

| 기능 | 사용 가능 | 제한 사항 |
|------|:---------:|----------|
| 품목/거래처 관리 | ✅ | 최대 100개 |
| 견적/수주/출하 | ✅ | 최대 50건 |
| 생산관리 | ✅ | 최대 30건 |
| 사용자 초대 | ✅ | 최대 5명 |
| 리포트/통계 | ✅ | 제한 없음 |
| 바로빌 연동 | ❌ | 실제 금융 연동 차단 |
| 파일 저장 | ✅ | 최대 1GB |
| AI 토큰 | ✅ | 월 10만 토큰 |

**업종별 샘플 데이터 프리셋**:

| 프리셋 | 포함 데이터 | 대상 고객 |
|--------|-----------|----------|
| 제조업 기본 | 원자재→생산→출하 흐름 | 일반 제조업체 |
| 블라인드/스크린 | 커튼/블라인드 품목 + 시공 | 인테리어 업체 |
| 시공/건설 | 공사관리 + 자재 | 건설/시공 업체 |
| 유통/도소매 | 입출고 + 재고 | 유통 업체 |

### 2.4 Tier 3: 고객 체험 테넌트 (영업건별)

**목적**: 계약 직전 고객이 자기 데이터로 직접 체험하여 의사결정 촉진

| 항목 | 내용 |
|------|------|
| **대상** | 계약 검토 단계의 잠재 고객 |
| **생성** | 파트너가 Sales 시스템에서 요청 → 본사 승인 |
| **계정** | 고객 담당자 이메일로 초대 |
| **데이터** | 고객이 직접 입력하거나 CSV 임포트 |
| **기능** | Tier 2와 동일한 제한 |
| **기간** | 30일 (1회 연장 가능, 최대 60일) |
| **비용** | 없음 (영업 비용) |
| **전환** | 계약 시 → 데모 데이터를 정식 테넌트로 마이그레이션 가능 |

**핵심 가치 — "체험 데이터 → 정식 전환" 마이그레이션**:

```
고객 체험 (30일)
  ├── 품목 등록, 거래처 등록, 견적 작성 체험
  ├── "이미 입력한 데이터가 있으니 계약하면 바로 쓸 수 있다"
  └── 계약 전환 시 → 데모 데이터를 정식 테넌트로 이관
                    → Lock-in 효과 + 온보딩 시간 단축
```

---

## 3. 기술 구현 방안

### 3.1 데이터 모델 변경

```sql
-- tenants 테이블 확장
ALTER TABLE tenants ADD COLUMN tenant_type ENUM('production', 'demo_showcase', 'demo_partner', 'demo_trial') DEFAULT 'production';
ALTER TABLE tenants ADD COLUMN demo_expires_at DATETIME NULL;
ALTER TABLE tenants ADD COLUMN demo_source_partner_id BIGINT UNSIGNED NULL;
ALTER TABLE tenants ADD COLUMN demo_preset VARCHAR(50) NULL;
ALTER TABLE tenants ADD COLUMN demo_limits JSON NULL;
```

### 3.2 구독 모델 활용

기존 `subscriptions.status`의 `trial` 상태를 활성화:

```
demo_showcase  → subscription 없음 (무료 공용)
demo_partner   → subscription.status = 'trial', plan = 'demo_partner'
demo_trial     → subscription.status = 'trial', plan = 'demo_trial'
                 expires_at = created_at + 30 days
```

### 3.3 제한 적용 미들웨어

```php
// DemoLimitMiddleware
class DemoLimitMiddleware
{
    public function handle($request, Closure $next)
    {
        $tenant = currentTenant();

        if ($tenant->isDemoTenant()) {
            // 1. 기간 만료 체크
            if ($tenant->demo_expires_at && now()->gt($tenant->demo_expires_at)) {
                return response()->json(['error' => '체험 기간이 만료되었습니다.'], 403);
            }

            // 2. 수량 제한 체크
            $limits = $tenant->demo_limits;

            // 3. 금지 기능 체크 (바로빌 등 외부 연동)
            if ($this->isBlockedFeature($request)) {
                return response()->json(['error' => '데모에서 사용할 수 없는 기능입니다.'], 403);
            }
        }

        return $next($request);
    }
}
```

### 3.4 샘플 데이터 시더 (프리셋별)

```php
// DemoDataSeeder — 테넌트 생성 시 호출
class DemoDataSeeder
{
    public function seed(Tenant $tenant, string $preset = 'manufacturing')
    {
        $presets = [
            'manufacturing' => ManufacturingPreset::class,
            'blinds'        => BlindsPreset::class,
            'construction'  => ConstructionPreset::class,
            'distribution'  => DistributionPreset::class,
        ];

        $presets[$preset]::seed($tenant);
    }
}
```

### 3.5 데모 → 정식 전환 프로세스

```
[Tier 3 체험 테넌트]
    ↓ 계약 체결
[전환 프로세스]
    1. tenant_type = 'production' 변경
    2. demo_limits = NULL (제한 해제)
    3. demo_expires_at = NULL
    4. subscription → status='active', plan='starter'/'business'
    5. 기존 데이터 유지 (마이그레이션 불필요)
    6. 추가 기능 활성화 (바로빌 등 외부 연동)
```

---

## 4. 영업 지원 도구 연계

### 4.1 Sales 시스템 연동

| 기능 | 설명 | API |
|------|------|-----|
| 데모 테넌트 요청 | 파트너가 고객 체험 테넌트 생성 요청 | `POST /api/demo-tenants` |
| 데모 현황 조회 | 내가 생성한 데모 테넌트 목록 | `GET /api/demo-tenants` |
| 데모 리셋 | 파트너 데모 데이터 초기화 | `POST /api/demo-tenants/{id}/reset` |
| 체험 연장 | 고객 체험 기간 연장 요청 | `POST /api/demo-tenants/{id}/extend` |
| 전환 요청 | 체험 → 정식 전환 요청 | `POST /api/demo-tenants/{id}/convert` |

### 4.2 파트너 대시보드 지표

```
┌──────────────────────────────────────────────────────┐
│  내 데모 현황                                         │
├──────────────┬──────────────┬────────────────────────┤
│ 파트너 데모   │ 고객 체험     │ 전환율                 │
│ 1개 (활성)   │ 3개 (진행중)  │ 40% (2/5)            │
│              │ 1개 (만료)    │                       │
├──────────────┴──────────────┴────────────────────────┤
│ 최근 체험 활동                                        │
│ - [데모제조A] 3시간 전 견적서 3건 작성                  │
│ - [시공업체B] 1일 전 품목 45개 등록                     │
│ - [유통사C] 5일 전 마지막 접속 (비활성 경고)             │
└──────────────────────────────────────────────────────┘
```

---

## 5. 영업 프로세스 통합

### 5.1 데모 활용 영업 플로우

```
1단계: 초기 접촉
   └── Tier 1 쇼케이스 URL 공유 (3분 시연)
   └── "이런 시스템입니다" — 관심 유발

2단계: 심층 상담
   └── 파트너 Tier 2 데모로 고객 업종 맞춤 시연 (30분)
   └── 프리셋 데이터로 실제 업무 흐름 보여주기
   └── 가격 시뮬레이터로 견적 제시

3단계: 고객 체험 (의사결정 촉진)
   └── Tier 3 고객 체험 테넌트 생성 (30일)
   └── 고객이 직접 데이터 입력하며 체험
   └── 파트너가 체험 활동 모니터링
   └── "이미 입력한 데이터 살려드립니다" — 전환 유도

4단계: 계약 전환
   └── 체험 데이터 → 정식 테넌트로 전환
   └── 온보딩 기간 단축 (이미 익숙함)
   └── 수당 정산 시작
```

### 5.2 KPI 및 전환 추적

| 지표 | 측정 대상 | 목표 |
|------|----------|------|
| 데모 요청 수 | 파트너별 월간 Tier 3 생성 수 | 파트너당 3건/월 |
| 체험 활성도 | 고객 로그인 횟수, 데이터 입력량 | 주 3회 이상 접속 |
| 체험→계약 전환율 | Tier 3 → 정식 계약 비율 | 30% 이상 |
| 평균 전환 기간 | 체험 시작 → 계약 체결 일수 | 21일 이내 |
| 데모 비활성 알림 | 7일 미접속 고객 자동 알림 | 파트너에게 팔로업 유도 |

---

## 6. 비용 및 리소스

### 6.1 인프라 비용

| 항목 | Tier 1 (1개) | Tier 2 (파트너 N개) | Tier 3 (건별) |
|------|:-----------:|:------------------:|:------------:|
| DB 용량 | ~50MB | ~100MB x N | ~100MB x 건 |
| 파일 저장 | 고정 | 1GB x N | 1GB x 건 |
| AI 토큰 | 없음 | 10만/월 x N | 10만/30일 x 건 |
| 월 예상 비용 | ~0원 | ~5천원 x N | ~5천원 x 건 |

### 6.2 개발 공수

| 작업 | 우선순위 | 규모 |
|------|:-------:|------|
| `tenant_type` 컬럼 + 마이그레이션 | 🔴 필수 | 소 |
| `DemoLimitMiddleware` | 🔴 필수 | 중 |
| 샘플 데이터 프리셋 (제조업 1종) | 🔴 필수 | 중 |
| Tier 1 쇼케이스 자동 리셋 스케줄러 | 🔴 필수 | 소 |
| 파트너 승인 시 Tier 2 자동 생성 | 🟡 중요 | 소 |
| Tier 3 생성/만료/전환 API | 🟡 중요 | 중 |
| Sales 대시보드 데모 현황 UI | 🟡 중요 | 중 |
| 추가 프리셋 (블라인드/시공/유통) | 🟢 권장 | 중 |
| 체험 활동 모니터링 + 알림 | 🟢 권장 | 중 |
| 데모 → 정식 데이터 전환 로직 | 🟢 권장 | 소 |

---

## 7. 단계별 실행 로드맵

```
Phase 1 (즉시) ─────────────────────────────────────
  ✅ Tier 1 쇼케이스: 공용 데모 테넌트 수동 생성
  ✅ 샘플 데이터 수동 입력 (제조업 기본)
  ✅ demo.codebridge-x.com 도메인 매핑
  → 파트너에게 즉시 공유 가능한 URL 확보

Phase 2 (자동화) ───────────────────────────────────
  ✅ tenant_type 컬럼 + DemoLimitMiddleware
  ✅ Tier 2 파트너 데모 자동 생성
  ✅ 샘플 데이터 시더 (프리셋 1종)
  ✅ 일일 리셋 스케줄러

Phase 3 (영업 연계) ────────────────────────────────
  ✅ Tier 3 고객 체험 생성/관리 API
  ✅ Sales 대시보드 연동
  ✅ 체험 → 정식 전환 프로세스
  ✅ 활동 모니터링 + 비활성 알림

Phase 4 (고도화) ───────────────────────────────────
  ✅ 추가 업종 프리셋
  ✅ 전환율 분석 대시보드
  ✅ A/B 테스트 (데모 제공 vs 미제공 전환율 비교)
```

---

## 관련 문서

- [features/sales/README.md](README.md) — 영업 관리 모듈 전체
- [features/sales/partners.md](partners.md) — 파트너 관리 기능
- [rules/customer-pricing.md](../../rules/customer-pricing.md) — 고객 요금표
- [rules/partner-commission.md](../../rules/partner-commission.md) — 영업파트너 수당 체계
- [features/settlement/subscriptions.md](../settlement/subscriptions.md) — 구독 관리

---

**최종 업데이트**: 2026-03-13
