import type { WorkOrderBoardCreatePayload } from "@/domain/work-orders/types/work-order-board"; import type { WorkOrderWizardDraft } from "@/domain/work-orders/types/work-order-wizard"; import { mondayOf } from "@/domain/work-orders/utils/wizard-date-utils"; /** * Mutates `payload` with `dueDate` and schedule fields. * Range mode lands on the board using the range start as `scheduledDate` * (prototype `hasScheduleDate`: a range start qualifies as scheduled). */ export function assignWizardScheduleFields( payload: WorkOrderBoardCreatePayload, draft: WorkOrderWizardDraft, ): void { if (draft.dueDate) { payload.dueDate = draft.dueDate; } const isRange = draft.schedMode === "range"; if (!isRange && draft.scheduleWeekOnly) { const week = draft.targetWeek?.trim() || (draft.scheduledOn ? mondayOf(draft.scheduledOn) : ""); // Only emit week-mode flags when a concrete week exists (SH-109: undated create). if (week) { payload.scheduleWeekOnly = true; payload.targetWeek = week; } } else if (draft.scheduledOn && (isRange || !draft.scheduleWeekOnly)) { payload.scheduledDate = draft.scheduledOn; } }