packages feed

keiro-dsl-0.15.0.0: test/fixtures/workflow-stepadd.keiro

language keiro-dsl 4
context hospital-capacity

readmodel transferDecision {
  table = "transfer_decision"
  schema = "hospital_capacity"
  columns {
    reservation_id text required
  }
  version = 1
  shape = "fnv1a:a61bd2c21d54fa64"
  consistency = Strong
  feed = subscription
}

workflow HospitalTransferReservation
  name "hospital-transfer-reservation"
  in ReservationWorkflowInput { reservationId:Id hospitalId:Id }
  out ReservationWorkflowSummary
  id from input.reservationId via idText
  body
    step create-transfer-hold -> ReservationHold
    await reservation-confirmation -> ReservationConfirmation
    step release-or-retain-capacity -> CapacityRelease
    step summarize-reservation -> ReservationWorkflowSummary
    step notify-ops -> OpsNote

operation ConfirmReservation
  command on Reservation
    stream from reservationId via reservationStream
    project [ transferDecision ]

operation QueryTransferDecision
  query transferDecision
    input TransferReservationId
    result Maybe TransferDecision
    consistency Strong

operation SignalReservationConfirmation
  signal reservation-confirmation of HospitalTransferReservation
    key from reservationId via reservationWorkflowId
    value ReservationConfirmation

operation RunReservationWorkflow
  run HospitalTransferReservation
    input ReservationWorkflowInput
    outcome -> ReservationWorkflowRun