# InsuWiki Sync + Review 완전 통합 — 4건 통합 수정

## Lv.3 작업

## 제이회장님 확정 요구사항 4건

### 1. insight-001~015 Sync 완료 전환 + 승인 상태 유지
- `wiki-sync-status.json`에 insight-001~015가 미등록 → "Sync 이전"으로 분류됨
- 이 15건은 이미 Firestore에 승인 완료 상태로 존재
- **수정**: wiki-sync-status.json에 001~015를 `status: "approved"` + `doc_id` 포함하여 등록
- 대시보드에서 "Sync 완료" 섹션에 표시, 상태는 "승인"

### 2. 양방향 승인 연동
**대시보드 → InsuWiki 서비스:**
- 대시보드-인슈위키탭에서 "승인" 클릭 → Firestore 문서의 `status`를 `approved`로 업데이트
- InsuWiki 서비스의 Review에서 해당 문서가 사라지고, Wiki 탭에서 보여야 함

**InsuWiki 서비스 → 대시보드:**
- InsuWiki Review에서 "승인" 클릭 → Firestore 문서 `status: approved`
- 대시보드-인슈위키탭에서 해당 항목의 상태가 "승인"으로 변경
- "Sync 완료" 섹션에 유지

**구현 포인트:**
- 대시보드 `/api/wiki/entries/{id}/approve` 엔드포인트: Firestore status 업데이트 추가
- InsuWiki `/api/wiki/entries/{id}/review` 엔드포인트: wiki-sync-status.json 상태 업데이트 (이미 task-1706.1에서 부분 구현)
- 양방향이 서로의 상태를 반영해야 함

### 3. Review limit 제거
- `/home/jay/projects/insuwiki/nextapp/src/hooks/useReviewQueueListener.ts`
- 현재: `limit(50)` → 제거 또는 `limit(500)`으로 상향
- 90건 이상도 전부 표시

### 4. 날짜: 원본 날짜 사용
- sync 시 `updatedAt`에 `serverTimestamp()` 대신 원본의 `collectedAt` 또는 `sourceDate` 사용
- 대시보드 wiki_entries.json의 각 항목에서 날짜 필드 확인 후 매핑
- Review 리스트에 표시되는 날짜 = 대시보드-인슈위키탭의 날짜 = 단톡방 대화 날짜

### 5. 오류 신고 조회 (admin + 대시보드)
- Firestore `documents/{docId}/error_reports` 서브컬렉션에 저장됨
- **InsuWiki admin 페이지**: error_reports 조회 UI 추가
  - 문서별 오류 신고 목록 표시
  - 신고 내용 확인 → 수정 후 재승인 또는 반려(아카이브) 가능
- **대시보드-인슈위키탭**: 오류 신고 건수 배지 표시
  - 각 항목에 오류 신고 N건 표시
  - 클릭 시 상세 내용 확인

### 6. 반려/아카이브 기능
- admin/대시보드에서 문서를 "반려" → Firestore `status: 'rejected'`
- 반려된 문서는 Review에서 사라지고, 별도 "아카이브" 섹션에서 조회 가능
- 대시보드에서도 해당 항목 상태가 "반려"로 표시

## 참조 파일
- 대시보드 server.py: `/home/jay/workspace/dashboard/server.py` (offset/limit 사용!)
- 대시보드 InsuWikiView.js: `/home/jay/workspace/dashboard/components/InsuWikiView.js`
- wiki-sync-status.json: `/home/jay/workspace/dashboard/data/wiki-sync-status.json`
- wiki_entries.json: `/home/jay/workspace/dashboard/data/wiki_entries.json`
- useReviewQueueListener.ts: `/home/jay/projects/insuwiki/nextapp/src/hooks/useReviewQueueListener.ts`
- Review page: `/home/jay/projects/insuwiki/nextapp/src/app/review/page.tsx`
- error-report API: `/home/jay/projects/insuwiki/nextapp/src/app/api/wiki/entries/[id]/error-report/route.ts`
- Firebase 키: `/home/jay/.config/gcloud/service-accounts/insuwiki-j2h-fa603f4f75f5.json`

## 수정 후
1. 대시보드 재시작: `systemctl --user restart dashboard`
2. InsuWiki 빌드 + push: `cd /home/jay/projects/insuwiki/nextapp && npm run build && cd .. && git add -A && git commit -m "feat: sync/review 양방향 통합" && git push origin master`

## 테스트
1. insight-001~015가 대시보드에서 "Sync 완료" + "승인" 표시
2. 대시보드에서 승인 → InsuWiki Review에서 사라짐 확인
3. InsuWiki Review에서 승인 → 대시보드 상태 "승인" 확인
4. Review에 50건 이상 표시 확인
5. Review 날짜 = 원본 날짜 확인
6. 오류 신고 → admin에서 조회 확인
7. 반려 → 아카이브 이동 확인

## 보고서
`/home/jay/workspace/memory/reports/task-{TASK_ID}.md`