import type { WorkOrderTableRow } from "@/domain/work-orders/types/work-order-table-row"; export class BoardPatchConflictError extends Error { readonly status = 409; readonly currentState: WorkOrderTableRow | null; constructor(message: string, currentState: WorkOrderTableRow | null) { super(message); this.name = "BoardPatchConflictError"; this.currentState = currentState; } } export class BoardPatchValidationError extends Error { readonly status = 422; readonly code: string; constructor(code: string, message: string) { super(message); this.name = "BoardPatchValidationError"; this.code = code; } } /** why: backend field names must never be exposed through user-facing board toasts. */ export function boardPatchValidationMessage(error: BoardPatchValidationError): string { if (error.code === "DispatchRequired") { return "Select a vendor company before saving."; } return error.message; }