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

fuelSupplyRequestMachine

@mineflow/api-schemas


@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 (начальное) → EDITdraft (self-loop) | SUBMITsent
  • sentAPPROVEapproved
  • sentREJECTrejected (под guard rejectReasonOk)
  • sentRETURN_FOR_REVISIONdraft (под guard returnCommentOk)
  • approvedLINK_SUPPLYfulfilled
  • fulfilled, rejected — терминальные состояния.