# Momentry Portal

基於 Tauri + Vue 3 的影片搜尋與身份管理桌面應用程式。

## 功能

1. **影片搜尋**: 智能搜尋影片內容
2. **身份管理**: 管理全域身份、區域人物
3. **臉部管理**: 查看和下載人物臉部截圖

## 環境需求

- Node.js 18+
- Rust 1.70+
- npm 或 yarn

## 安裝與執行

```bash
# 進入專案目錄
cd portal

# 安裝前端依賴
npm install

# 開發模式 (同時啟動 Vue 和 Tauri)
npm run tauri dev

# 或分別啟動
npm run dev          # 啟動 Vue dev server (port 1420)
npm run tauri dev    # 啟動 Tauri desktop app
```

## 專案結構

```
portal/
├── src-tauri/               # Rust 後端
│   ├── src/
│   │   ├── main.rs          # Tauri 入口
│   │   ├── config.rs        # 組態管理
│   │   └── api/             # API 處理常式
│   │       ├── search.rs    # 搜尋 API
│   │       ├── identity.rs  # 身份管理 API
│   │       ├── video.rs     # 影片 API
│   │       └── person.rs    # 人物/臉部 API
│   ├── Cargo.toml
│   └── tauri.conf.json
├── src/                     # Vue 前端
│   ├── main.ts
│   ├── App.vue
│   ├── router.ts
│   ├── views/
│   │   ├── HomeView.vue
│   │   ├── SearchView.vue
│   │   ├── IdentitiesView.vue
│   │   └── VideoDetailView.vue
│   └── assets/
├── package.json
├── vite.config.ts
└── tailwind.config.js
```

## API 環境

Portal 連接到 Momentry Core API Server，支援兩種環境：

### 環境配置

| 環境 | API URL | Port | Redis Prefix | Schema | 用途 |
|------|---------|------|--------------|--------|------|
| **生產環境** | `http://127.0.0.1:3002` | 3002 | `momentry:` | `public` | 正式數據 |
| **開發環境** | `http://127.0.0.1:3003` | 3003 | `momentry_dev:` | `dev` | 測試數據 |

### 啟動 API Server

```bash
# 生產環境 (port 3002, schema=public)
cargo run --bin momentry -- server

# 開發環境 (port 3003, schema=dev)
DATABASE_SCHEMA=dev cargo run --bin momentry_playground -- server
```

### Portal 配置

Portal 預設連接開發環境 (3003)，可透過環境變數切換：

```bash
# 切換到生產環境
export MOMENTRY_API_URL="http://127.0.0.1:3002"

# 啟動 Portal
cd portal && npm run tauri dev
```

### API Key

API Key 用於認證 Portal 與 API Server 的通訊：

```bash
export MOMENTRY_API_KEY="muser_68600856036340bcafc01930eb4bd839_1774418104_97221b69"
```

**注意**: 開發環境 (dev schema) 的 API Key hash 必須與 `dev.api_keys` 表中的資料一致。

### 檢查 API 連接

```bash
# 檢查 API Server 狀態
curl http://localhost:3003/api/v1/videos -H "X-API-Key: $MOMENTRY_API_KEY"

# 檢查 Schema
psql -U accusys -d momentry -c "SELECT table_name FROM information_schema.tables WHERE table_schema = 'dev';"
```

## 環境變數

可在 `src-tauri/src/config.rs` 中修改，或設定環境變數:

```bash
export MOMENTRY_API_URL="http://127.0.0.1:3002"
export MOMENTRY_API_KEY="your-api-key"
```

## API 對應

| 前端功能 | Tauri Command | 對應 Momentry API |
|---------|---------------|-------------------|
| 搜尋 | `search_videos` | `POST /api/v1/n8n/search` |
| 身份列表 | `list_identities` | `POST /api/v1/identities/search` |
| 註冊身份 | `register_identity` | `POST /api/v1/person/:id/register` |
| 影片列表 | `list_videos` | `GET /api/v1/videos` |
| 影片臉部 | `get_video_faces` | `GET /api/v1/videos/:uuid/faces` |
| 下載截圖 | `get_person_thumbnail` | `GET /api/v1/person/:id/thumbnail` |
