Sentinel API v1

從第一個 API 呼叫到正式環境

Trainge integration

Trainge 預約 → Sentinel 攝像頭任務

把 Trainge 場館預約轉成 Sentinel 行事曆事件。預約開始時,對應房間的攝像頭自動切換工作;預約結束後回到原本任務。

Trainge 欄位如何對應

TraingeSentinel用途
uuid.order_itemid重送同一筆預約會更新,不會新增重複。
period.course_roomspace_uuid對應 camera config 的 spaceUuid。
startdatetime / enddatetimestart / 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。

先手動、後自動

  1. 先匯入 Trainge JSON 到 Sentinel Calendar。
  2. 替每個預約選擇任務;相同 booking ID 再匯入時會保留這個選擇。
  3. 確認空間 UUID 與攝像頭設定相同。
  4. 完成後,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。