fuelSupplyRequestMachine
@mineflow/api-schemas / fuelSupplyRequestMachine
Variable: fuelSupplyRequestMachine
const fuelSupplyRequestMachine: StateMachine<FuelSupplyRequestCtx,
| {
type: "EDIT";
}
| {
type: "SUBMIT";
}
| {
type: "APPROVE";
}
| {
reason: string;
type: "REJECT";
}
| {
comment: string;
type: "RETURN_FOR_REVISION";
}
| {
type: "LINK_SUPPLY";
}, {
}, never, never, ToParameterizedObject<{
rejectReasonOk: unknown;
returnCommentOk: unknown;
}>, never, "draft" | "approved" | "sent" | "fulfilled" | "rejected", string, NonReducibleUnknown, NonReducibleUnknown, EventObject, MetaObject, ToStateSchema<{
context: {
requestId: "";
};
id: "fuelSupplyRequest";
initial: "draft";
states: {
approved: {
on: {
LINK_SUPPLY: {
target: "fulfilled";
};
};
};
draft: {
on: {
EDIT: {
target: "draft";
};
SUBMIT: {
target: "sent";
};
};
};
fulfilled: {
type: "final";
};
rejected: {
type: "final";
};
sent: {
on: {
APPROVE: {
target: "approved";
};
REJECT: {
guard: "rejectReasonOk";
target: "rejected";
};
RETURN_FOR_REVISION: {
guard: "returnCommentOk";
target: "draft";
};
};
};
};
}>>;
Defined in: scm/src/fuel/state-machine/fuel-supply-request.machine.ts:35
FSM заявки на поставку ГСМ (SCM FuelSupplyRequest).
Источник истины — entity (ADR-0022); машина — xstate v5 spec, re-export'ится
@mineflow/api-schemas для FSM-кнопок в UI.
Состояния и переходы:
draft(начальное) →EDIT→draft(self-loop) |SUBMIT→sentsent→APPROVE→approvedsent→REJECT→rejected(под guardrejectReasonOk)sent→RETURN_FOR_REVISION→draft(под guardreturnCommentOk)approved→LINK_SUPPLY→fulfilledfulfilled,rejected— терминальные состояния.