ja
予約スケジュールボードのジョブ移動のプレビュー

スケジュールボードのジョブ移動のプレビュー

確定済みジョブを新しい時刻および/またはテクニシャンへ移動した結果を(書き込みなしで)計算します: どこに着地するか、`mode` に従って後方にずらされる後続の各ジョブ、そしてコーディネーターが受け入れることになる警告(押しのけられたジョブが確定ウィンドウから外れる、残業)です。同じテクニシャン = 純粋な時刻移動。別のテクニシャン = 手動の再割り当て。読み取り専用です — ドラッグ中に繰り返し呼び出しても安全で、コミットは別のエンドポイントです。SCHEDULE_BOARD_DESIGN.md を参照してください。 警告の詳細: TECH_NOT_FEASIBLE 警告は `reason` を持ちます = `cannot_arrive_in_time`(テクニシャンの当日開始地点/シフト開始からの移動。`earliest_feasible_at`(RFC3339 UTC)が現場に到着できる当日最初の時刻 — ドロップ枠として提案してください)| `missing_required_skills` | `not_available_today`(勤務時間・承認済み休暇がない、またはサービスエリア外)| `not_lead_tier`。P0 移動ではこの警告は助言的です(コーディネーターはそのままコミット可能)。p1/p2/p3 では同じ条件が厳格な 409 SCHEDULE_MOVE_TECH_INFEASIBLE になります。 409 の次のステップ: SCHEDULE_MOVE_NOT_ELIGIBLE(ジョブが未確定/未見積もり/アーカイブ済み/完了 — 移動不可)· SCHEDULE_MOVE_IN_PROGRESS(テクニシャンが既に実行中 — 移動しないこと)· SCHEDULE_MOVE_IN_PAST(未来の時刻を選択)· SCHEDULE_MOVE_OUTSIDE_WINDOW(着地時刻が顧客確定ウィンドウ外 — 厳格ブロック。その中の時刻を選択)· SCHEDULE_MOVE_SLOT_OCCUPIED(着地ウィンドウが移動不可のアンカーでブロック — 別のテクニシャン/時刻)· SCHEDULE_MOVE_TECH_INFEASIBLE(非 P0 の厳格ブロック: 対象テクニシャンが適格/対応不可 — TECH_NOT_FEASIBLE 警告の理由を参照。テクニシャンまたは時刻を変更)· SCHEDULE_MOVE_MULTIDAY_UNSUPPORTED(複数日ジョブは v1 で移動不可)· SCHEDULE_MOVE_NO_WORKING_DAY(勤務日を選択)· SCHEDULE_MOVE_REQUIRES_FREE_SLOT(非 P0 移動は押しのけ不可 — オーナーが allow_non_p0_displacement を有効にしない限り、空きキャパシティのみ)· SCHEDULE_MOVE_CREW_UNSTAFFABLE(クルースロットに新しい時刻での実行可能な代替がない — 別の時刻)。

引数

idstringpath必須
ジョブリクエスト ID(UUID または short_code)
modeenumbody必須
Cascade mode for displaced jobs: overtime = stay same-day (tech works late); next_day = overflow rolls to the next working day.
start_atstringbody必須
New start — business-local naive datetime, no offset. Must be in the future.
technician_idstringbody必須
Target technician — may equal the current tech (pure time move) or differ (manual reassign).
POST/v1/job-requests/{id}/move/preview
curl -X POST "https://api.crisphive.com/v1/job-requests/9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01/move/preview" \
  -H "Authorization: Bearer chsk_test_4eC8xQ9mZ2pL7Ka0rT" \
  -H "Content-Type: application/json" \
  -d '{
  "mode": "overtime",
  "start_at": "2030-06-14T09:00:00",
  "technician_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01"
}'
リクエストボディ
{
"mode": ,
"start_at": ,
"technician_id":
}

レスポンス