shoc-frontend-new/src/domain/work-orders/mappers/assign-wizard-schedule-fields.ts

28 lines
942 B
TypeScript
Raw Normal View History

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 day/week schedule fields (range mode has no schedule fields). */
export function assignWizardScheduleFields(
payload: WorkOrderBoardCreatePayload,
draft: WorkOrderWizardDraft,
): void {
if (draft.dueDate) {
payload.dueDate = draft.dueDate;
}
const isRange = draft.schedMode === "range";
if (!isRange && draft.scheduleWeekOnly) {
payload.scheduleWeekOnly = true;
const week = draft.targetWeek?.trim() || (draft.scheduledOn ? mondayOf(draft.scheduledOn) : "");
if (week) {
payload.targetWeek = week;
}
} else if (!isRange && draft.scheduledOn) {
payload.scheduledDate = draft.scheduledOn;
}
}