# Fricle 결제 / 마켓 / 만료 UX

> pipeline/05-STORAGE_BILLING + pipeline/01 서브 플로우 C (마켓플레이스 앱) + 서브 플로우 B (BM 루프) ↔ uxui 정합 영역.
> 마켓플레이스 앱 구매 / 할당 / 회수 + 만료 / 재구독 + 저장소 3종 UI.

> 출처 = [pipeline/05-STORAGE_BILLING.md](../../pipeline/05-STORAGE_BILLING.md) + [pipeline/01-USER_FLOW.md](../../pipeline/01-USER_FLOW.md) (= 서브 플로우 B / C) + [License & Seat](../../architecture/01-license-seat.html)

---

## 1. 마켓플레이스 앱 UI (= C 동선 = 라이선스 구매 / 할당 / 회수)

### 1.1 동선 (= 01 서브 플로우 C 정합)

```
마켓 진입 → 발견 → 선택 (= 앱 상세) → 구매 → 할당 → 사용 → 회수 / 환불
```

### 1.2 마켓 진입 / 발견

| 영역 | UI |
|------|------|
| 진입 경로 | 시작 메뉴, Marketplace 앱, 캔버스 우클릭 "더 보기", 직접 URL |
| 카탈로그 | 카테고리 / 추천 / 신규 / 인기 (보편 마켓 패턴) |
| 우선 노출 | 빌트인 1st-party 앱 → 마켓 (= 써드파티) 앱 |
| 검색 | 앱 이름 / 카테고리 / 기능 키워드 |

### 1.3 앱 상세 (= 선택)

| 영역 | UI |
|------|------|
| 앱 정보 | 이름 / 아이콘 / 설명 / 스크린샷 / 리뷰 / 평점 |
| **라이선스 정보 명시** | 가격 / 결제 방식 / **개인 라이선스 단위** (= LICENSE-MODEL 정합) |
| **AI 크레딧 사용량 라벨** | 가벼움 / 중간 / 무거움 (= LICENSE-MODEL §6 부가 운영 룰) |
| 빌트인 1st-party | **Fricle 1차 구독에 포함** / 별도 마켓 구매 없음 |
| 마켓플레이스 앱 | "별도 구매 필요" 명시 |

### 1.4 구매 / 할당 / 회수

**구매**:
- "구매" 버튼 = 라이선스 N개 결제 (= 본인 명의)
- 결제 화면 = 가격 / 라이선스 수 / 결제 방식 / 본인 정보
- 결제 완료 = 본인 라이선스 N개 보유 = 어느 WS 에서든 사용 가능

**할당**:
- 본인 보유 라이선스 N개 = 본인 사용 분 / 다른 사람 할당 분 분배
- 할당 화면 = "내가 사용" / "다른 사람에게 할당" 선택
- 다른 사람 할당 = 본인 명의 라이선스 1개 = 한 명에게 (= LICENSE-MODEL §3.2)
- 할당 받은 사람 = 본인 라이선스 보유 케이스와 동일 = 어느 WS 에서든 사용 가능 (= LICENSE-MODEL §3.2 정합)

**회수 / 환불**:
- 본인 사용 분 = 환불 = 라이선스 1 단위 분리 (= LICENSE-MODEL §3.5)
- 할당 분 = 회수 후 = 본인 보유로 복귀 / 또는 환불
- 마켓플레이스 앱 자체 폐기 = 개발자 임의 X = Fricle 검수 / 정책 위반 / 별도 절차 (= LICENSE-MODEL §3.4)
- 할당 회수 시 = 그 사람 = 뷰어 / 블라인드 전락 (= [06-PERMISSION.md §2.3](../06-permission/00-PERMISSION.md))

### 1.5 라이선스 보유 상태 표시

사용자가 자기 라이선스 현황 = **어디서 확인하는가** = 미정 영역. 후보:
- 설정 → "내 라이선스" 탭 (= 사용자 마이 페이지 영역)
- 트레이 앱 (= "내 라이선스" 트레이 앱 신설)
- 마켓플레이스 앱 안 "내 라이선스" 섹션

> 결정 필요 = 라이선스 마이 페이지 위치

---

## 2. BM 루프 UI (= 서브 플로우 B 정합)

### 2.1 플랜 한도 도달 / 업그레이드 유도

| 단계 | UI |
|------|------|
| 한도 도달 | "여기서부턴 상위 플랜 필요" 경고 (= 인앱 알림 / 모달) |
| 업그레이드 유도 | 현재 한도 + 상위 플랜 혜택 + 가격 표시 |
| 결제 후 확장 사용 | 즉시 한도 확장 체감 (추가 업로드 / 추가 멤버 / **WS Seat 할당** / **앱 라이선스 구매**) |

> 업그레이드 UI 위치 = 논의 중 (= pipeline/05 D-032 영역)

### 2.2 만료 / 재구독 단계 흐름 (= B-4 정합)

만료 = **갑자기 잠금 X = 단계별 흐름**:

| 단계 | UI |
|------|------|
| **만료 며칠 전 알림** (7일 / 3일 / 1일) | 인앱 알림 + 이메일 + 갱신 유도 (= 트레이 알림 앱 + 메뉴바 뱃지) |
| **만료 시점 = 결제 시도** | 자동 결제 / 결제 실패 시 grace 기간 진입 |
| **grace 기간** (7~30일) | 데이터 / 기능 정상 사용 가능 + 결제 재시도 / 갱신 유도 (= 메뉴바 상시 알림 뱃지) |
| **grace 후 = 기능 잠금** | 데이터 read-only / 편집 / 신규 작업 차단 = **데이터 영속 보존** (= 06-PERMISSION 결과 모드 = view only 전락) |
| **재구독** | 즉시 작업 재개 = 데이터 그대로 / 잠금 해제 |

> 만료 = **데이터 삭제 X = 기능 잠금 방향**. 데이터 영속 보존 (= LICENSE-MODEL §6 별도 결정 영역)
> grace 기간 / 알림 시점 정밀 룰 = 결제 방식 결정 후 정밀화

---

## 3. 저장소 3종 UI (= 05 정합)

저장소 3종 (= 05 정합):
- **Personal Drive** — 개인 자산
- **Workspace AppData** — 협업 / 앱 데이터
- **External Drive** — 외부 연동

### 3.1 UI 영역 (= 미정)

저장소 3종 UI = **드라이브 작업 진행 중 = 인프라 완성 후 정합 적용**:
- Personal Drive UI 위치 = 미정
- AppData 사용량 표현 = 미정 (= 메뉴바? 설정? 트레이?)
- 용량 한도 경고 UI = 미정 (= 한도 근접 시 알림)
- External Drive 설정 플로우 = 미정 (= 어느 설정에서 연결?)

> 본 영역 = 드라이브 작업 (= fricle 인프라) 우선 진행 + 인프라 완성 후 = uxui 정합 박기

### 3.2 Export 경로 (= Official / Unofficial)

레드팀 정책 정합 (= 05 정합):

| 경로 | 예시 | 정책 |
|------|------|------|
| **Official** | 다운로드, Personal Drive 저장, External Drive 업로드 | 허용/차단/승인/감사 로그 |
| **Unofficial** | 복사/붙여넣기, 스크린샷, 화면 녹화 | 완전 차단 불가. 경고/워터마크/가이드 |

---

## 결정됨

- **마켓플레이스 앱 폐기 = 개발자 임의 X** — Fricle 검수 / 정책 위반 / 별도 절차 (= LICENSE-MODEL §3.4)
- **환불 단위 = 라이선스 1 단위 분리** — 본인 사용 분 / 할당 분 분리 환불 가능 (= LICENSE-MODEL §3.5)
- **만료 = 단계별 흐름** — 며칠 전 알림 → grace → 잠금 → 재구독. 데이터 영속 보존
- **결제 시스템 방향**: Stripe 계열 결제 / 법인 인프라 검토 예정 (= Atlas / Billing / Checkout / Payments 조합 미확정 = 05 정합)

---

## 논의 중

- **라이선스 보유 상태 마이 페이지 위치** — 설정? 트레이 앱? 마켓플레이스 앱?
- **AI 크레딧 사용량 라벨 표시** — 마켓플레이스 앱 상세 + 사용 중 카운터 위치
- **업그레이드 UI 위치** — 한도 도달 시점 / 메뉴바 / 모달 (= 05 D-032)
- **저장소 3종 UI** — Personal Drive 위치 / AppData 사용량 / 한도 경고 (= 드라이브 인프라 작업 후 진입)
- **External Drive 설정 플로우** — 어느 설정에서 연결?
- **External Drive 캐시 정책** — 동의 여부 (= 05 GPT 제안 영역)

---

## 다른 영역과 연결

- **결과 모드 = view only 전락** — 만료 후 grace + 잠금 시점 = [06-PERMISSION.md §2](../06-permission/00-PERMISSION.md) 결과 모드 정합
- **알림 트레이 앱** — 만료 알림 / grace 안내 / 갱신 유도 = [05-MENUBAR.md](../05-menubar/00-MENUBAR.md) 트레이 영역
- **마켓플레이스 = 트레이 앱 + 빌트인 앱** — [05-MENUBAR.md](../05-menubar/00-MENUBAR.md) 트레이 영역
