# MOMO Pro System - 用戶流程圖

> 最後更新：2026-01-29

---

## 🔐 登入流程

```mermaid
flowchart TD
    A[訪問系統] --> B{已登入?}
    B -->|是| C[進入首頁]
    B -->|否| D[顯示登入頁]
    D --> E[輸入帳密]
    E --> F{驗證}
    F -->|成功| G[記錄登入歷史]
    G --> C
    F -->|失敗| H{錯誤次數 >= 5?}
    H -->|是| I[鎖定帳號 30 分鐘]
    H -->|否| J[顯示錯誤訊息]
    J --> D
    I --> D
```

---

## 📊 商品價格監控流程

```mermaid
flowchart TD
    A[進入商品看板] --> B[載入商品列表]
    B --> C{需要篩選?}
    C -->|是| D[選擇篩選條件]
    D --> E[分類/價格區間/變動類型]
    E --> F[套用篩選]
    F --> G[顯示篩選結果]
    C -->|否| G
    G --> H{查看詳情?}
    H -->|是| I[點擊商品]
    I --> J[顯示價格歷史圖表]
    H -->|否| K{匯出報表?}
    K -->|是| L[選擇匯出格式]
    L --> M[下載 Excel]
    K -->|否| N[結束]
```

---

## 📈 每日業績匯入流程

```mermaid
flowchart TD
    A[進入雲端匯入頁面] --> B[連接 Google Drive]
    B --> C{已授權?}
    C -->|否| D[OAuth 授權]
    D --> E[取得 Token]
    E --> F
    C -->|是| F[列出 Drive 檔案]
    F --> G[選擇 Excel 檔案]
    G --> H[開始匯入]
    H --> I[下載檔案]
    I --> J[解析 Excel]
    J --> K[驗證資料格式]
    K --> L{格式正確?}
    L -->|否| M[顯示錯誤]
    L -->|是| N[寫入資料庫]
    N --> O[更新進度條]
    O --> P{完成?}
    P -->|否| N
    P -->|是| Q[顯示匯入結果]
    Q --> R[發送 Telegram 通知]
```

---

## 📦 廠商缺貨通知流程

```mermaid
flowchart TD
    A[進入廠商缺貨頁面] --> B[選擇匯入]
    B --> C[上傳 Excel]
    C --> D[解析檔案]
    D --> E[比對廠商郵件]
    E --> F{所有廠商有郵件?}
    F -->|否| G[標記缺少郵件的廠商]
    F -->|是| H
    G --> H[顯示匯入結果列表]
    H --> I[選擇要發送的項目]
    I --> J[預覽郵件內容]
    J --> K{確認發送?}
    K -->|否| L[返回列表]
    K -->|是| M[批次發送郵件]
    M --> N[更新發送狀態]
    N --> O[記錄發送日誌]
    O --> P[顯示發送結果]
```

---

## 🤖 AI 文案生成流程

```mermaid
flowchart TD
    A[進入 AI 推薦頁面] --> B[選擇功能]
    B --> C{選擇類型}
    C -->|文案生成| D[輸入商品名稱]
    C -->|熱門推薦| E[選擇趨勢來源]
    C -->|網路搜尋| F[輸入搜尋關鍵字]
    D --> G[選擇文案風格]
    G --> H[選擇 AI 提供者]
    E --> H
    F --> H
    H --> I{Ollama or Gemini?}
    I -->|Ollama| J[呼叫 Ollama API]
    I -->|Gemini| K[呼叫 Gemini API]
    J --> L[生成文案]
    K --> L
    L --> M[顯示結果]
    M --> N{滿意?}
    N -->|否| O[重新生成]
    O --> H
    N -->|是| P{收藏?}
    P -->|是| Q[加入收藏]
    P -->|否| R[複製使用]
```

---

## 👤 用戶管理流程

```mermaid
flowchart TD
    A[進入用戶管理] --> B{操作類型}
    B -->|新增| C[點擊新增按鈕]
    C --> D[填寫用戶資訊]
    D --> E[設定角色權限]
    E --> F[儲存]
    B -->|編輯| G[選擇用戶]
    G --> H[修改資訊]
    H --> F
    B -->|刪除| I[選擇用戶]
    I --> J{確認刪除?}
    J -->|是| K[刪除用戶]
    J -->|否| A
    B -->|重設密碼| L[選擇用戶]
    L --> M[生成新密碼]
    M --> N[通知用戶]
    F --> O[更新成功]
    K --> O
    N --> O
```

---

## ⏰ 爬蟲排程執行流程

```mermaid
flowchart TD
    A[排程觸發] --> B[檢查上次執行時間]
    B --> C{在執行間隔內?}
    C -->|否| D[跳過執行]
    C -->|是| E[開始爬蟲]
    E --> F[初始化 Chrome Driver]
    F --> G{初始化成功?}
    G -->|否| H[重試 2 次]
    H --> I{成功?}
    I -->|否| J[發送錯誤告警]
    I -->|是| K
    G -->|是| K[遍歷商品列表]
    K --> L[爬取商品頁面]
    L --> M[解析價格]
    M --> N[寫入資料庫]
    N --> O{還有商品?}
    O -->|是| L
    O -->|否| P[更新統計]
    P --> Q[發送完成通知]
    Q --> R[記錄執行結果]
```

---

## 🔔 通知發送流程

```mermaid
flowchart TD
    A[觸發通知] --> B{通知類型}
    B -->|業績報告| C[彙整當日業績]
    B -->|系統告警| D[取得告警內容]
    B -->|價格異動| E[取得異動商品]
    C --> F[渲染通知模板]
    D --> F
    E --> F
    F --> G{發送通道}
    G -->|Telegram| H[呼叫 Telegram API]
    G -->|LINE| I[呼叫 LINE API]
    G -->|Email| J[呼叫 SMTP]
    H --> K[記錄發送結果]
    I --> K
    J --> K
    K --> L{發送成功?}
    L -->|否| M[重試 3 次]
    M --> N{成功?}
    N -->|否| O[標記失敗]
    N -->|是| P[標記成功]
    L -->|是| P
```

---

## 📊 業績分析查詢流程

```mermaid
flowchart TD
    A[進入業績分析] --> B[選擇日期範圍]
    B --> C[選擇分析維度]
    C --> D{維度類型}
    D -->|品牌| E[載入品牌列表]
    D -->|PM| F[載入 PM 列表]
    D -->|分類| G[載入分類列表]
    E --> H[查詢資料]
    F --> H
    G --> H
    H --> I[計算統計指標]
    I --> J[繪製圖表]
    J --> K[顯示結果]
    K --> L{匯出?}
    L -->|是| M[生成 Excel]
    M --> N[下載檔案]
    L -->|否| O[結束]
```
