keiro-dsl-0.15.0.0: test/fixtures/compatibility-vector-old.keiro
language keiro-dsl 4
context hospital-capacity
id TransferReservationId prefix=rsv
id HospitalId prefix=hosp
id CommandId prefix=cmd
enum PatientAcuity { RedTag=red YellowTag=yellow GreenTag=green }
enum DivertStatus { Open=open PartialDivert=partial-divert TotalDivert=total-divert }
rule lifeCriticalOverride : PatientAcuity -> Bool
ex RedTag => true ; YellowTag => false ; GreenTag => false
aggregate Reservation
regs
reservationId TransferReservationId = placeholder
hospitalId HospitalId = placeholder
patientAcuity PatientAcuity = GreenTag
states Unrequested Held Confirmed!
command RequestTransferReservation { reservationId hospitalId commandId patientAcuity divertStatus lifeCriticalOverride:Bool }
command ConfirmReservation { reservationId hospitalId commandId }
event TransferReservationCreated {
reservationId hospitalId commandId
patientAcuity:PatientAcuity
divertStatus:DivertStatus
lifeCriticalOverride:Bool
}
event TransferReservationConfirmed { reservationId hospitalId commandId }
Unrequested -- RequestTransferReservation -->
guard cmd.divertStatus != DivertStatus.TotalDivert || cmd.lifeCriticalOverride
emit TransferReservationCreated
goto Held
Held -- ConfirmReservation --> emit TransferReservationConfirmed ; goto Confirmed
wire kind=ctorName fields=camelCase schemaVersion=1
projection transfer_decisions key=reservationId
status-map { TransferReservationCreated=>held TransferReservationConfirmed=>confirmed }
contract emergency {
schemaVersion 1
discriminator messageType
topic incidentEvents "emergency.incident.events"
event IncidentTransferNeedDeclared on incidentEvents {
incidentId: typeid "inc"
region: text
redCount: int
}
}