Move a plan one step along its lifecycle
Advances — or REVERTS — a plan by exactly one step of ITS family’s lifecycle. A restock runs DRAFT → VALIDATED → SENT → RECEIVED → CLOSED; a return has no validation step (sending the goods back IS the commitment); an exchange runs PROPOSED → AGREED, two states because the supplier has to answer. The revert path is a legitimate move and is accepted here (SENT → VALIDATED), but only to the ONE immediate predecessor, and never out of CLOSED, which is one-way on every family. A refused edge names both statuses. expectedVersion is required.
Authorizations
Authorization: Bearer <token>. Accepts EITHER a Keycloak access token (scopes-in-token) OR an opaque POS session token; both resolve to the same pos.* scope vocabulary the route guards enforce.
Path Parameters
The plan id, e.g. plan-restock-aigle-32.
1Body
Response
The plan in its new status, at its new version.
- Option 1
- Option 2
- Option 3
The plan in its new status, at its new version.
11 - 641 - 25510000DRAFT, VALIDATED, SENT, RECEIVED, PROPOSED, AGREED, IN_TRANSIT, SETTLED, CREDITED, CLOSED, CANCELLED 1^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$0 < x <= 9007199254740991restock, pre_season_order, supplier_return, supplier_exchange 11
