packages feed

keiro-dsl-0.15.0.0: test/fixtures/order.keiro

language keiro-dsl 4
context jitsurei

id OrderId    prefix=ord
id Sku        prefix=sku
id Quantity   prefix=qty
id PaymentRef prefix=pay
id Carrier    prefix=car
id TrackingId prefix=trk

aggregate Order
  regs
  states NotStarted Placed Paid Packed Shipped! Cancelled!

  command PlaceOrder     { orderId sku quantity }
  command ApprovePayment { orderId paymentRef }
  command CancelOrder    { orderId reason:Text }
  command MarkPacked     { orderId }
  command ShipOrder      { orderId carrier trackingId }

  event OrderPlaced     = fields(PlaceOrder)
  event PaymentApproved { orderId paymentRef }
  event OrderCancelled  { orderId reason:Text }
  event OrderPacked     { orderId }
  event OrderShipped    { orderId carrier trackingId }

  NotStarted -- PlaceOrder     --> emit OrderPlaced ; goto Placed
  Placed     -- ApprovePayment --> emit PaymentApproved ; goto Paid
  Placed     -- CancelOrder    --> emit OrderCancelled ; goto Cancelled
  Paid       -- MarkPacked     --> emit OrderPacked ; goto Packed
  Packed     -- ShipOrder      --> emit OrderShipped ; goto Shipped

  wire kind=ctorName fields=camelCase schemaVersion=2