export interface BomUomLabel { uomId?: number | null; code?: string | null; udfudesc?: string | null; label?: string | null; } export interface BomUomQtyValue { qty?: number | string | null; uom?: BomUomLabel | null; } export interface BomMaterialUomOption { uomId: number; label: string; code?: string | null; } export interface BomHeaderUomAlignmentPreview { bomId: number; bomCode?: string | null; bomName?: string | null; itemId?: number | null; canApply: boolean; skipReason?: string | null; beforeOutputQty?: number | string | null; afterOutputQty?: number | string | null; beforeOutputQtyStock?: number | string | null; afterOutputQtyStock?: number | string | null; beforeUom?: BomUomLabel | null; afterUom?: BomUomLabel | null; beforeBaseUom?: BomUomLabel | null; afterBaseUom?: BomUomLabel | null; beforeStockUom?: BomUomLabel | null; afterStockUom?: BomUomLabel | null; } export interface BomMaterialUomAlignmentPreview { bomId: number; bomCode?: string | null; bomName?: string | null; bomMaterialId: number; itemId?: number | null; itemCode?: string | null; itemName?: string | null; canApply: boolean; skipReason?: string | null; warnings?: string[]; beforeSaleQty?: BomUomQtyValue | null; afterSaleQty?: BomUomQtyValue | null; beforeStockQty?: BomUomQtyValue | null; afterStockQty?: BomUomQtyValue | null; beforeBaseQty?: BomUomQtyValue | null; afterBaseQty?: BomUomQtyValue | null; beforeRecipeQty?: BomUomQtyValue | null; afterRecipeQty?: BomUomQtyValue | null; availableRecipeUoms?: BomMaterialUomOption[]; suggestedRecipeUomId?: number | null; } export interface BomUomAlignmentSkipped { bomId?: number | null; bomCode?: string | null; bomMaterialId?: number | null; itemCode?: string | null; reason: string; } export interface BomUomAlignmentPreviewResponse { headers: BomHeaderUomAlignmentPreview[]; materials: BomMaterialUomAlignmentPreview[]; skipped: BomUomAlignmentSkipped[]; } export type BomMaterialQtyAnchor = "SALE_QTY" | "STOCK_QTY" | "BASE_QTY" | "RECIPE_QTY"; export interface BomMaterialQtyRecalculateResponse { saleQty?: number | string | null; stockQty?: number | string | null; baseQty?: number | string | null; saleUom?: string | null; stockUom?: string | null; baseUom?: string | null; } export interface BomHeaderOutputQtyRecalculateResponse { stockQty?: number | string | null; baseQty?: number | string | null; baseUom?: string | null; baseUomId?: number | null; } export interface BomUomAlignmentApplyResponse { headersUpdated: number; materialsUpdated: number; message?: string | null; }