# 대시보드 3x3 최종 광고 시안 뷰 구현

## 목표
3x3 매트릭스 9셀의 실제 광고 시안(배너 이미지 + 카피 + 채널)을 대시보드에서 한눈에 확인하고 승인할 수 있는 뷰 구현.
제이회장님이 대시보드에서 직접 확인하실 수 있어야 함.

## 현재 상태
- **FinalApprovalView.js**: `/home/jay/workspace/dashboard/components/FinalApprovalView.js` — 이미 생성됨 (task-1384.1), 하지만 실제 데이터 미연결
- **배너 이미지**: 3셀 완성 (①④⑦ 정당한 보상), 나머지 6셀 제작 중
  - Cell-1: `/home/jay/workspace/output/banners/cell-1-incar-fair/`
  - Cell-4: `/home/jay/workspace/output/banners/cell-4-ga-fair/`
  - Cell-7: `/home/jay/workspace/output/banners/cell-7-snu-fair/`
- **카피 v3.2**: `/home/jay/workspace/output/recruiting-marketing/copy-v3.2-final.md` — 9셀 모두 확정
- **크리에이티브 디렉션**: campaign.json의 matrix_3x3.cells 에 creative_direction 필드 존재
- **채널 배정**: campaign.json에 channels 정보 존재
- **campaign.json**: `/home/jay/workspace/dashboard/data/campaign.json`

## 구현 사항

### 1. campaign.json 데이터 보강
- 각 셀에 `banner_paths` 필드 추가 (Meta 1080x1080, Google 1200x628 경로)
- 각 셀에 `final_copy` 필드 추가 (Primary Text, Headline, Description, CTA)
- 각 셀에 `channel_assignment` 필드 추가 (Meta/Google/네이버 등)
- 각 셀에 `approval_status` 필드 추가 (pending/approved/rejected)
- 카피 v3.2에서 9셀 카피 추출하여 campaign.json에 구조화

### 2. FinalApprovalView.js 실제 데이터 연결
- 기존 FinalApprovalView.js 코드를 읽고, campaign.json의 실제 데이터와 연결
- 3x3 그리드로 9셀 표시
- 각 셀 클릭 시:
  - 배너 이미지 프리뷰 (Meta/Google 사이즈 전환)
  - 최종 카피 표시 (Primary Text, Headline, Description, CTA)
  - 채널 배정 표시
  - 크리에이티브 디렉션 요약
  - 승인/보류 상태 표시
- 배너가 아직 없는 셀은 "제작 중" 표시

### 3. 배너 이미지 서빙
- `/home/jay/workspace/output/banners/` 폴더의 PNG 파일을 대시보드 서버에서 서빙
- server.py 또는 data_loader.py에 배너 이미지 static 서빙 경로 추가
- API: `/api/banners/<cell-id>/<size>.png`

### 4. 서버 API 확장
- `/api/campaign` 응답에 final_copy, banner_paths, approval_status 포함되도록 수정
- 승인 상태 업데이트 API: `POST /api/campaign/approve` (선택)

## 주의사항
- CampaignView.js, CampaignSections.js 등 기존 코드와 충돌 없도록 주의
- FinalApprovalView.js는 별도 탭/라우트로 접근 가능해야 함
- 기존 기능 훼손 절대 금지
- 대시보드 서버 포트: 8000

## 참조 파일
- `/home/jay/workspace/dashboard/components/FinalApprovalView.js`
- `/home/jay/workspace/dashboard/components/CampaignView.js`
- `/home/jay/workspace/dashboard/components/CampaignSections.js`
- `/home/jay/workspace/dashboard/data/campaign.json`
- `/home/jay/workspace/dashboard/server.py` (또는 data_loader.py, helpers.py)
- `/home/jay/workspace/output/recruiting-marketing/copy-v3.2-final.md`
- `/home/jay/workspace/output/banners/`

## 산출물
1. campaign.json 데이터 보강
2. FinalApprovalView.js 실제 데이터 연결
3. 배너 이미지 서빙 경로 설정
4. 대시보드 서버 재시작
5. 보고서
