# P2P 회원 UI 헤드라인 개편 지침서 — "매칭 대기 잔액" 중심

> 작성: 2026-07-18 · 배경: 히어로 헤드라인의 총 판매액(29,520원)이 "잔액(더 매칭될 금액)"으로
> 오해됨 — 실제 매칭 가능 잔액이 0원인 상태에서도 총액이 큰 숫자로 표시되는 문제.
> 결정: 헤드라인 = 매칭 대기 잔액, 총액은 서브라인으로 강등, 전환 요청엔 USDT 병기.

## 1. 원칙

- **헤드라인(가장 큰 숫자) = 매칭 대기 잔액** = `krwAmount − confirmed − usdtConvertRequestedKrw` (0 클램프, 기존 waitingKrw 공식과 동일)
- **총액(총 판매 KRW · USDT)은 서브라인**으로 강등 — 삭제하지 않음
- **전환 요청 금액엔 USDT 병기** — 회원이 실제 돌려받는 것은 USDT이고 스냅샷으로 확정돼 있음: "9,520원 · 6.4499 USDT 반환 예정"
- 진행바(4세그먼트)·4분류 그리드는 유지

## 2. 서버 변경 (backend repo, open-api 1파일)

`open-api/.../dto/p2p/P2pPageDashboardResponse.java`
- 활성 주문 항목(ActiveOrderSummary 상당)에 `usdtConvertRequestedUsdt`(BigDecimal, JavaDoc 필수) 추가
- `P2pWithdrawPageController` 대시보드 집계에서 해당 필드 채우기 (order.getUsdtConvertRequestedUsdt(), null 허용)
- 상세(P2pPageOrderResponse)는 이미 `usdtConvertRequestedUsdt` 있음 — 변경 불필요

## 3. UI 변경 (cryptoments-admin repo, p2p-ui)

### 3.1 DashboardView (홈 히어로 — 활성 주문 합계)
- 헤드라인: `waitingKrw` 합계, 라벨 "매칭 대기 잔액" (라벨은 숫자 위 작은 텍스트)
- 서브라인(헤드라인 바로 아래): "총 판매 {totalKrw}원 · {totalUsdt} USDT"
- 4분류 그리드 유지. 전환 요청 행에 USDT 병기: "{krw}원 · {usdt} USDT 반환 예정" (usdt 합계, 소수 4자리 표시)
- 진행바 유지

### 3.2 OrderDetailView (상세 히어로 — 주문 단위)
- 헤드라인: 해당 주문의 매칭 대기 잔액, 라벨 "매칭 대기 잔액"
- 서브라인: "총 {krwAmount}원 · {usdtAmount} USDT 판매"
- 전환 요청 카드: "요청 금액 9,520원 · **6.4499 USDT 반환 예정** · 파트너 승인 대기" (`usdtConvertRequestedUsdt` 사용, 소수 4자리)
- 진행바·받음/확인대기/전환요청 행 유지

### 3.3 OrderProgressCard (홈/목록 주문 카드)
- 타이틀: "매칭 대기 {waiting}원" (전환요청 중이고 waiting=0이면 "매칭 대기 0원" 그대로 — 뱃지가 상태 설명)
- 서브텍스트: "총 {krw}원 · 받음 {confirmed}" + REQUESTED면 "· 전환 요청 {krw}원({usdt} USDT)"
- 끝난 거래(종결) 카드는 기존 총액 표기 유지 (매칭 대기 개념 없음)

### 3.4 types.ts / fixtures.ts
- `ActiveOrderSummary.usdtConvertRequestedUsdt?: number` 추가
- fixtures에 값 채워 프리뷰 3케이스 유지 (29,520/20,000/9,520·6.4499 시나리오 포함)

## 4. 표기 규칙

- USDT 수량 표시: 소수 4자리 절사(내림) 표시, 트레일링 0 제거 (예: 6.4499)
- 매칭 대기 0원일 때도 헤드라인 "0원" 명시 (숨기지 않음 — "더 매칭될 것 없음"의 명확한 신호)

## 5. 완료 기준

1. 서버: `:open-api:compileJava` 통과 (오케스트레이터가 로컬 실행)
2. UI: `npm run build`(vue-tsc) 통과 (오케스트레이터가 로컬 실행)
3. 세 화면(홈 히어로/상세/주문 카드) 모두 헤드라인=매칭 대기 잔액, 총액 서브라인, 전환요청 USDT 병기
4. 사례 검증: pwo_c67936dfe0f4 → 헤드라인 0원, 서브 "총 29,520원 · 20 USDT", 전환 요청 9,520원 · 6.4499 USDT

## 6. 배포 (오케스트레이터)

open-api(`spring:deploy-production` ▶) + admin p2p-ui 배포 ▶. DDL 변경 없음.
