import type { WorkOrderBoardCreatePayload } from "@/domain/work-orders/types/work-order-board"; import { typeNeedsSeverity } from "@/domain/work-orders/types/work-order-severity"; import type { WorkOrderWizardDraft } from "@/domain/work-orders/types/work-order-wizard"; import { normalizeAdditionalContacts } from "@/domain/work-orders/mappers/additional-contacts-mapper"; function trimOrUndefined(value: string | undefined): string | undefined { const trimmed = value?.trim(); return trimmed ? trimmed : undefined; } /** Mutates `payload` with primary service, service notes, POC, tech phone, and vendor notes. */ export function assignWizardServicePocFields( payload: WorkOrderBoardCreatePayload, draft: WorkOrderWizardDraft, ): void { const primaryService = trimOrUndefined(draft.pm); if (primaryService) { payload.primaryService = primaryService; } if (draft.serviceId != null) { payload.serviceId = draft.serviceId; } const serviceNotes = trimOrUndefined(draft.pmNote); if (serviceNotes) { payload.serviceNotes = serviceNotes; } const pocName = trimOrUndefined(draft.pocName); if (pocName) { payload.pocName = pocName; } const pocPhone = trimOrUndefined(draft.pocPhone); if (pocPhone) { payload.pocPhone = pocPhone; } const pocNotes = trimOrUndefined(draft.pocNotes); if (pocNotes) { payload.pocNotes = pocNotes; } const additionalContacts = normalizeAdditionalContacts(draft.additionalContacts); if (additionalContacts) { payload.additionalContacts = additionalContacts; } const techPhone = trimOrUndefined(draft.techPhone); if (techPhone) { payload.techPhone = techPhone; } const vendorNotes = trimOrUndefined(draft.vendorNotes); if (vendorNotes) { payload.vendorNotes = vendorNotes; } if (draft.severity != null && typeNeedsSeverity(draft.type)) { payload.severity = draft.severity; } if (draft.avetaRequired) { payload.avetaRequired = true; } }