ko
예약스케줄 보드 작업 이동 커밋

스케줄 보드 작업 이동 커밋

/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":
}

응답