# Portal 開發計畫

> 建立時間: 2026-04-25
> 狀態: 進行中

---

## 一、已完成功能

### 認證系統
- ✅ Login API (`/api/v1/auth/login`) - demo/demo
- ✅ Logout API (`/api/v1/auth/logout`)
- ✅ Session 管理 (localStorage)
- ✅ CORS 配置 (AllowOrigin::any)

### 納管檔案 (/files)
- ✅ 影片列表（分頁）
- ✅ 狀態過濾：未處理 / 已處理 / 全選
- ✅ 檔名搜尋 + 高亮匹配文字
- ✅ 影片詳情頁 (probe_json)
- ✅ 臉部群組顯示
- ✅ Tauri VideosResponse 修復 (count 欄位)
- ✅ API 狀態過濾修復 (pending/ready)
- ✅ 檔名搜尋功能修復

---

## 二、檔案管理增強

### 2.1 批量操作
- [ ] 全選/多選影片
- [ ] 批量納管（Register）
- [ ] 批量取消納管（Unregister）
- [ ] 批量觸發處理（Process）
- [ ] 批量刪除

### 2.2 進階搜尋過濾
- [ ] 日期範圍過濾
- [ ] 解析度過濾
- [ ] 檔案大小過濾
- [ ] 處理狀態過濾

### 2.3 處理控制
- [ ] 處理進度顯示（Progress bar）
- [ ] 處理日誌查看
- [ ] 錯誤訊息顯示

### 2.4 操作功能
- [ ] 取消納管（Unregister）
- [ ] 重新處理（Reprocess）
- [ ] 檔案下載

---

## 三、人物管理

### 3.1 人物列表 (/persons)
- [ ] 搜尋人物名稱
- [ ] 出現次數/時間排序
- [ ] 人物照片縮圖顯示
- [ ] 分頁

### 3.2 人物詳情 (/identity/:id)
- [ ] 所屬影片列表
- [ ] 時間軸顯示
- [ ] 截圖展示
- [ ] 出現片段時間

### 3.3 身份管理 (/identities)
- [ ] 已註冊身份列表
- [ ] 註冊新人物（從圖片）
- [ ] 人物更名
- [ ] 合併人物
- [ ] 刪除人物

### 3.4 臉部群組管理
- [ ] 群組審核/確認
- [ ] 未註冊群組列表
- [ ] 點擊註冊身份
- [ ] 群組截圖預覽

---

## 四、整體架構

```
首頁 (/home)
├── 搜尋 (/search)
├── 人物管理 (/persons)
│   ├── 已註冊人物列表
│   ├── 未註冊群組
│   └── 人物詳情 (/identity/:id)
├── 納管檔案 (/files)
│   ├── 影片列表
│   ├── 狀態過濾
│   ├── 檔名搜尋（高亮）
│   └── 影片詳情 (/videos/:uuid)
├── 設定 (/settings)
└── Console 面板
```

---

## 五、技術債務

### 待修復
- [ ] `hash_password` 函式未使用（server.rs:35）
- [ ] CORS 改為 AllowOrigin::any（安全考量）
- [ ] MongoCache 未考慮 status/query 過濾

### API 不一致
- [ ] API 返回 `count`，前端原使用 `total`
- [ ] Tauri 與 HTTP 模式返回格式差異

---

## 六、待確認問題

1. Identities 頁面是否要合併到 Persons？
2. 是否需要「影片處理批次」功能？
3. 人物搜尋是否需要中文拼音/相似度？
4. 是否需要匯出報表功能？
