Trainge integration
Trainge 預約 → Sentinel 攝像頭任務
把 Trainge 場館預約轉成 Sentinel 行事曆事件。預約開始時,對應房間的攝像頭自動切換工作;預約結束後回到原本任務。
Trainge 欄位如何對應
| Trainge | Sentinel | 用途 |
|---|---|---|
| uuid.order_item | id | 重送同一筆預約會更新,不會新增重複。 |
| period.course_room | space_uuid | 對應 camera config 的 spaceUuid。 |
| startdatetime / enddatetime | start / end | 必須是實際預約時段。 |
必要資料品質規則
enddatetime > startdatetime只有這種資料才能決定何時切換與何時還原任務。若 Trainge 匯出 buyRoom 或 saleRoom 時開始與結束相同,該列代表模板或測試資料,必須由 Trainge 先解析成真正發生的預約時段後再送出。
推送方式
POST /api/enterprise/calendar/events
X-Sentinel-Timestamp: <unix seconds>
X-Sentinel-Signature: sha256=<HMAC-SHA256(secret, timestamp + "." + raw_body)>可直接送 Trainge 的 { result: { datas: [...] } } 原始 response;新串接建議送 schema: sentinel.booking.v1 的 events 格式。
私人預約、1 對 1、團體課程和場地租借走同一條路;預約 type 是顯示資料,不會自動改變任務。要自動指定任務時,在事件加 preset_id 或 prompt。
先手動、後自動
- 先匯入 Trainge JSON 到 Sentinel Calendar。
- 替每個預約選擇任務;相同 booking ID 再匯入時會保留這個選擇。
- 確認空間 UUID 與攝像頭設定相同。
- 完成後,Trainge 改用簽署 API 即時推送。
Sentinel 即時通知 Trainge
把 Trainge 的接收 endpoint 設為 Sentinel 的 Alert Webhook。危急事件預設會推送;在 Alert Policy 將 webhook 加到「可疑」後,可疑事件也會立即推送。Payload 帶 camera_id、space_uuid、分析文字與預設 inline JPEG 快照。
Trainge 必須先用原始 request body 驗證 X-Sentinel-Signature,再解析 JSON。用 space_uuid 對應場館空間,建立供業者審核的 incident。