Booking-driven missions
Calendar API:用預約驅動任務
你的 booking system 將預約事件以簽署 JSON 推送到 Sentinel。當事件進入有效時段,對應空間的攝像頭會自動使用該事件指定的任務。
1. 建立空間對應
Camera config 的 spaceUuid 必須和事件的 space_uuid 完全相同。相同 spaceUuid 的多支攝像頭會一起切換。
2. 推送簽署事件
POST /api/enterprise/calendar/events
Content-Type: application/json
X-Sentinel-Timestamp: 1751990400
X-Sentinel-Signature: sha256=<HMAC-SHA256(secret, timestamp + "." + raw_body)>{
"events": [
{
"id": "booking-001",
"space_uuid": "room-studio-a",
"start": "2026-09-28T21:00:00+08:00",
"end": "2026-09-28T22:00:00+08:00",
"title": "Private booking",
"kind": "one_to_one",
"preset_id": "elder_fall_detect"
}
]
}設定 calendar API secret 後才會接受事件。簽章含 timestamp,超過五分鐘的請求會被拒絕,避免重送攻擊。
欄位與優先順序
| Field | 用途 |
|---|---|
| id | 穩定且唯一;重送同 ID 會更新事件。 |
| space_uuid | 對應攝像頭空間。 |
| start / end | 含時區的 ISO 時間;end 必須晚於 start。 |
| prompt / preset_id | 該預約時段的任務;自訂 prompt 優先。 |
優先順序:event prompt → event preset_id → space 預設任務 → 攝像頭原本任務。重疊預約以開始時間較晚者為準。
3. 對帳與刪除
GET /api/enterprise/calendar/events?space_uuid=room-studio-a&active=1
DELETE /api/enterprise/calendar/events/booking-001