예약›스케줄 보드 작업 이동 커밋
스케줄 보드 작업 이동 커밋
/move/preview에서 미리 본 이동을 적용합니다: 작업을 새 시각에 기사에게 배치하고 밀려나는 작업들을 뒤로 미룹니다, 원자적으로 처리됩니다(기사별 어드바이저리 잠금; 서버가 계획을 재계산하고 각 작업을 status_version으로 펜싱함 — 미리보기 이후 드리프트가 있으면 409 SCHEDULE_MOVE_PLAN_DRIFTED 반환, 다시 미리보기). preview와 동일한 본문 + 선택적 `expected_version`. SCHEDULE_BOARD_DESIGN.md 참고. 409 다음 단계: SCHEDULE_MOVE_PLAN_DRIFTED — 미리보기 이후 일정이 바뀜(또는 expected_move_ids가 더 이상 일치하지 않음): 다시 미리보기하고, 새 계획을 보여준 뒤 다시 커밋하세요. 그 외 모든 코드 — /move/preview와 동일한 대응책.
인수
idstringpath필수
작업 요청 ID (UUID 또는 short_code)
Idempotency-Keystringheader선택
Unique key making retries safe: a repeat send with the same key replays the original response (header Idempotent-Replayed: true) instead of re-running the operation. Reusing a key with a different body returns 422 IDEMPOTENCY_KEY_REUSE.
expected_member_idsarray<string>body선택
ExpectedMemberIDs — 크루 이동 전용: 미리보기가 배정한 전체 구성원
집합(data.members[].technician_id를 그대로 전달). 커밋의 재계획이
다른 집합을 배정하게 되면(미리보기된 대체자가 그 사이에 예약됨)
커밋은 SCHEDULE_MOVE_PLAN_DRIFTED로 거부됩니다 — 크루 교체는
확인되지 않은 채 절대 승인되지 않습니다. 사용하지 않으려면 생략하세요.
expected_move_idsarray<string>body선택
ExpectedMoveIDs — 미리보기가 반환한 밀려나는 작업 ID들(data.days[].moves[].job_id를
그대로 전달). 선택 사항이지만 권장됩니다: 일정이 바뀌어 커밋이 다른
집합을 밀어내게 되면(예: 미리보기 이후 대상 기사에게 예약된 작업)
커밋은 본 적 없는 작업을 조용히 밀어내는 대신
SCHEDULE_MOVE_PLAN_DRIFTED로 거부됩니다.
expected_versionintegerbody선택
ExpectedVersion — 미리보기에서 이동된 작업의 status_version
(0 = 새로 읽은 계획 값으로 펜싱; 음수는 거부됨).
modeenumbody필수
Cascade mode: overtime | next_day (must match the preview).
start_atstringbody필수
New start — business-local naive datetime, no offset. Must match the preview and be in the future.
technician_idstringbody필수
Target technician (must match the preview).
POST/v1/job-requests/{id}/move/commit
curl -X POST "https://api.crisphive.com/v1/job-requests/9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01/move/commit" \ -H "Authorization: Bearer chsk_test_4eC8xQ9mZ2pL7Ka0rT" \ -H "Content-Type: application/json" \ -d '{ "expected_member_ids": [ "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01" ], "expected_move_ids": [ "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01" ], "expected_version": 1, "mode": "overtime", "start_at": "2030-06-14T09:00:00", "technician_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01" }'
요청 본문
{
"expected_member_ids": [
],
"expected_move_ids": [
],
"expected_version": ,
"mode": ,
"start_at": ,
"technician_id":
}
Bearer