packages feed

keiro-dsl-0.11.0.0: test/conformance/Generated/HospitalCapacity/Reservation/Projection.hs

-- @generated by keiro-dsl 0.11.0.0 (language keiro-dsl 4) from aggregate Reservation; do not edit.
module Generated.HospitalCapacity.Reservation.Projection
  ( transferDecisionsProjection
  , transferDecisionsStatusFor
  ) where

import Generated.HospitalCapacity.Reservation.Domain
import HospitalCapacity.Reservation.Holes (applyTransferDecisions)
import Data.Text (Text)
import Keiro.Projection (InlineProjection (..))

-- The deterministic event->status mapping (hole-kind 3, /mapping/), derived
-- from the spec's status-map. The read-model SQL that consumes it lives in
-- the hand-owned Holes module (a DB-coupled hole, delegated to codd).
-- WARNING: no readmodel node declares 'transfer_decisions'; unqualified SQL depends on search_path.
transferDecisionsStatusFor :: ReservationEvent -> Maybe Text
transferDecisionsStatusFor = \case
  TransferReservationCreated {} -> Just "held"
  TransferReservationConfirmed {} -> Just "confirmed"

transferDecisionsProjection :: InlineProjection ReservationEvent
transferDecisionsProjection =
  InlineProjection
    { name = "hospital-capacity-transfer_decisions-inline"
    , apply = applyTransferDecisions
    }