# Task 00052: 통합 관리자 대시보드 구현

## 개요
- **날짜**: 2026-02-26
- **목표**: 흩어진 관리자 기능을 `/admin` 경로로 통합, 문서 업로드 UI 신규 구현
- **관련 회의록**: `docs/meetings/260225-20.14-admin-dashboard-agent-meeting.md`

## 구현된 파일

### 신규 생성
- [x] `nextapp/src/app/admin/layout.tsx` — Admin Sidebar 레이아웃 + 권한 가드 (admin 아닌 경우 `/`로 리다이렉트)
- [x] `nextapp/src/app/admin/page.tsx` — `/admin/upload`으로 자동 redirect
- [x] `nextapp/src/app/admin/upload/page.tsx` — PDF 드래그&드롭 업로드 UI
  - 파일명 정규식 검증 (`{회사명}_{상품명}_{YYMM}.pdf`)
  - 통과(green)/실패(red) 시각적 분리
  - 업로드 상태 (pending/uploading/success/error) 관리
- [x] `nextapp/src/app/admin/monitoring/page.tsx` — 리소스 모니터링 (query_logs 기반 통계)
- [x] `nextapp/src/app/api/admin/drive-upload/route.ts` — Google Drive 업로드 API
  - Admin 이메일 인증 (`ADMIN_EMAILS`)
  - 파일명 파싱 → 자동 폴더 구조 생성 (`01_약관/{생명보험|손해보험}/{회사명}/`)
  - 동일 파일명 덮어쓰기 (기존 삭제 후 재업로드)
  - `insurance_metadata` Firestore 자동 upsert

### 수정
- [x] `nextapp/src/components/GlobalHeader.tsx` — Admin 사용자에게 "관리자 패널" 메뉴 항목 추가

## 탭 구조

| 탭 | 경로 | 상태 |
|---|---|---|
| 문서 업로드 | `/admin/upload` | ✅ 완료 |
| 사용자 관리 | `/admin/users` | ✅ 기존 코드 통합 |
| 리소스 모니터링 | `/admin/monitoring` | ✅ 완료 (query_logs 기반) |

## 드라이브 폴더 구조

```
GOOGLE_DRIVE_FOLDER_ID (root)/
└── 01_약관/
    ├── 생명보험/
    │   └── {회사명}/
    │       └── {파일명}.pdf
    └── 손해보험/
        └── {회사명}/
            └── {파일명}.pdf
```

## 회사 분류 로직
- 이름에 `화재`, `해상`, `손보` 포함 → 손해보험
- 그 외 → 생명보험 (기본값)
