[FEAT] 實作角色權限分類、租戶角控管理與介面多語系優化
1. [FEAT] 權限劃分為「系統層級」與「客戶層級」,並在後端強制過濾跨權限分配。 2. [FEAT] 整合選單權限至主選單層級 (基本設定、權限設定),簡化角色管理 UI。 3. [STYLE] 側邊欄優化:補齊多語系翻譯,並為基本設定子選單增加視覺圖示。 4. [REFACTOR] 更新 RoleSeeder,將 tenant-admin 重新分類為客戶層級角色。
This commit is contained in:
@@ -187,18 +187,59 @@ Spatie 預設的 roles 表必須加上多租戶設計,確保留戶只能管理
|
||||
|
||||
---
|
||||
|
||||
#### 🟡 `machines` 表 — 需擴充欄位
|
||||
### 機台設定與參數模型 (Configuration & Parameters)
|
||||
|
||||
現有 `machines` 表僅有基礎欄位,需為 B010 API 補充:
|
||||
為了提升機台的可維護性與金流設定的靈活性,系統引入了以下結構:
|
||||
|
||||
| 新增欄位 | 類型 | 說明 | 來源 API |
|
||||
|----------|------|------|----------|
|
||||
| `serial_no` | `VARCHAR UNIQUE` | 機台序號(API 用此識別) | B010 `machine` |
|
||||
| `model` | `VARCHAR` | 機台型號 | B010 `M_Stus` |
|
||||
| `current_page` | `TINYINT` | 當前頁面狀態碼 | B010 `M_Stus2` |
|
||||
| `door_status` | `VARCHAR` | 門禁狀態 | B010 `door` |
|
||||
| `is_online` | `BOOLEAN` | 是否在線(心跳超時判斷) | 計算欄位 |
|
||||
| `api_token` | `VARCHAR` | 機台專屬 API Token | 取代硬編碼 key |
|
||||
#### 1. 機台型號設定表 (machine_models)
|
||||
記錄系統支援的機台型號,供機台綁定基礎參數。
|
||||
|
||||
| 欄位 | 類型 | 說明 |
|
||||
|------|------|------|
|
||||
| `id` | BIGINT PK | — |
|
||||
| `name` | VARCHAR(255) | 型號名稱 (例如: "B010-STD") |
|
||||
| `company_id` | BIGINT FK | 所屬公司 (支援多租戶隔離) |
|
||||
| `creator_id / updater_id` | BIGINT FK | 審計記錄 (建立者/修改者) |
|
||||
| `timestamps` | — | — |
|
||||
|
||||
---
|
||||
|
||||
#### 2. 金流參數組合表 (payment_configs)
|
||||
**範本化設計**:由公司建立支付參數組合範本,機台端選擇套用。
|
||||
|
||||
| 欄位 | 類型 | 說明 |
|
||||
|------|------|------|
|
||||
| `id` | BIGINT PK | — |
|
||||
| `company_id` | BIGINT FK | 所屬公司 |
|
||||
| `name` | VARCHAR(255) | 組合名稱 (例如: "玉山+綠界組合A") |
|
||||
| `settings` | **JSON** | 儲存各支付平台 API Key (Ecpay, Esun, Tappay, LinePay 等) |
|
||||
| `creator_id / updater_id` | BIGINT FK | 審計記錄 |
|
||||
| `timestamps` | — | — |
|
||||
|
||||
---
|
||||
|
||||
#### 3. 機台主表擴充 (machines)
|
||||
針對 `machines` 表擴充以下欄位以支援 IoT 通訊與進階營運設定:
|
||||
|
||||
| 類別 | 欄位 | 類型 | 說明 |
|
||||
|------|------|------|------|
|
||||
| **基礎識別** | `serial_no` | `VARCHAR` | 機台序號 (API 唯一識別碼) |
|
||||
| **狀態監控** | `current_page` | `VARCHAR` | 機台當前畫面停留頁面 |
|
||||
| | `door_status` | `VARCHAR` | 門禁狀態 (open/closed) |
|
||||
| | `temperature` | `DECIMAL` | 機器溫度 (來自硬體回傳) |
|
||||
| **金流設定** | `payment_config_id` | `BIGINT FK` | 關聯金流參數樣本 (`payment_configs`) |
|
||||
| | `card_reader_seconds` | `INT` | 刷卡機秒數 (預設 30) |
|
||||
| | `card_reader_checkout_time_1 / 2` | `TIME` | 卡機結帳清機時間 |
|
||||
| | `payment_buffer_seconds` | `INT` | 金流回傳緩衝時間 (預設 5) |
|
||||
| **硬體與營運**| `machine_model_id` | `BIGINT FK` | 關聯機台型號 (`machine_models`) |
|
||||
| | `heating_start / end_time` | `TIME` | 加熱自動排程開啟與關閉時間 |
|
||||
| | `card_reader_no / key_no` | `VARCHAR` | 刷卡機編號與鑰匙編號 |
|
||||
| | `invoice_status` | `TINYINT` | 發票狀態 (0:不開, 1:預設捐, 2:預設不捐) |
|
||||
| | `welcome_gift_enabled` | `BOOLEAN` | 來店禮開關 |
|
||||
| | `member_system_enabled` | `BOOLEAN` | 會員系統開關 |
|
||||
| | `is_spring_slot_1_10` ~ `60` | `BOOLEAN` | 貨道類型標記 (0=履帶, 1=彈簧) |
|
||||
| **審計權限** | `company_id` | `BIGINT FK` | 關聯所屬公司 (租戶隔離) |
|
||||
| | `creator_id / updater_id` | `BIGINT FK` | 建立者與最後修改者 ID |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user