讓會員安全取消尚未付款的 Booking Checkout,並由排程自動清除逾時 15 分鐘的待付款預約,恢復營位可用量及租借庫存。
主動取消或逾時候選
→ 鎖定 Booking
→ 重查 pending + unpaid
→ Booking 改為 cancelled
→ active 租借保留改為 released 並填 released_at
→ 新增 cancelled 狀態歷程
→ 同一交易提交
主動取消使用 POST /api/booking/checkout/sessions/{bookingId}/cancel,並以目前登入會員限制資料範圍。排程預設每 60 秒掃描一次 checkout_expires_at <= now 的候選 Booking。
404 NOT_FOUND。pending + unpaid 可以轉為 cancelled;其他狀態回 409 CONFLICT。YURUICAMP_BOOKING_EXPIRATION_ENABLED 關閉排程,或用 YURUICAMP_BOOKING_EXPIRATION_SCAN_MS 調整掃描間隔。BookingLifecycleIntegrationTest:6 項全部通過。