Перейти к основному содержимому

tmcInventoryMachine

@mineflow/api-schemas


@mineflow/api-schemas / tmcInventoryMachine

Variable: tmcInventoryMachine

const tmcInventoryMachine: StateMachine<TmcInventoryContext,
| {
responsibleId: string;
type: "START";
warehouseId: string;
}
| {
allLinesAdjusted: boolean;
completedBy: string;
type: "COMPLETE";
}, {
}, never, never, {
}, never, "completed" | "draft" | "in_progress", string, NonReducibleUnknown, NonReducibleUnknown, EventObject, MetaObject, ToStateSchema<{
context: {
inventoryId: "";
};
id: "tmc-inventory";
initial: "draft";
states: {
completed: {
type: "final";
};
draft: {
on: {
START: {
target: "in_progress";
};
};
};
in_progress: {
on: {
COMPLETE: {
guard: "allLinesAdjusted";
target: "completed";
};
};
};
};
}>>;

Defined in: scm/src/tmc/state-machine/tmc-inventory.machine.ts:24

FSM инвентаризации ТМЦ (SCM TmcInventory).

Источник истины — entity (ADR-0022); машина — xstate v5 spec, re-export'ится @mineflow/api-schemas для FSM-кнопок в UI.

Состояния и переходы:

  • draft (начальное) → STARTin_progress
  • in_progressCOMPLETEcompleted (под guard allLinesAdjusted)
  • completed — терминальное состояние.

При завершении для каждой строки с variance != 0 создаётся TmcMovement(inventory_adjustment) — это делает use-case completeInventory, не FSM.