# Gateway Frontend

一般使用者前台 + 簡易管理後台，對應本 repo 的 Gateway API。

## 技術

- Vite + React + TypeScript + React Router
- 無 UI 框架，表單與頁面導覽即可日常使用

## 啟動（推薦一鍵後端）

```bash
# 終端 1：後端全套（首次約 1–2 分鐘，等 ZITADEL 起來）
make dev-up

# 終端 2：前端
make frontend-dev
```

開啟 http://localhost:5173 · 註冊 OTP 到 http://localhost:8025（MailHog）

關閉：`make dev-down`

## 頁面結構

### 使用者前台

| 路徑 | 功能 |
|------|------|
| `/login` | 登入 |
| `/register` | 註冊（寄 Email OTP） |
| `/register/confirm` | 輸入 6 碼完成註冊 |
| `/app` | 首頁（個人摘要、驗證狀態、角色） |
| `/app/profile` | 編輯顯示名稱、語系、幣別、電話 |
| `/app/security` | 商業 Email/手機驗證、TOTP 綁定 |

### 管理後台（需 `tenant_admin` 或 `tenant_owner`）

| 路徑 | 功能 |
|------|------|
| `/admin` | 總覽、Policy 重載 |
| `/admin/roles` | 角色列表、新增、改名、刪除 |
| `/admin/users` | 依 UID 查詢 / 指派 / 撤銷角色 |

有管理權限時，使用者前台頂部會出現「管理後台」連結。

## 本機預設

- 租戶：`k6-tenant`
- 邀請碼：`K6INVITE`（需先 `make k6-seed-fixtures` 或對應 Mongo 資料）
- OTP：開發環境到 MailHog http://localhost:8025 查看

### 取得管理員權限

`make dev-up` 會自動建立原始管理員並寫入 Mongo：

| 欄位 | 值 |
|------|-----|
| Email | `admin@k6.local` |
| 密碼 | `Admin-Pass-1!` |
| 租戶 | `k6-tenant` |
| 角色 | `tenant_admin` |

登入後頂部會出現「管理後台」，或在首頁 `/app` 的「權限管理」卡片進入。

手動重跑 seed（冪等）：

```bash
make dev-seed-admin
```

## 環境變數

| 變數 | 說明 |
|------|------|
| `VITE_API_BASE` | API 根網址；留空則走 Vite proxy `/api` → `:8888` |

## 建置

```bash
npm run build   # → dist/
```
