packages feed

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

{-# LANGUAGE OverloadedRecordDot #-}
{-# LANGUAGE OverloadedStrings #-}

-- @generated by keiro-dsl; do not edit. Regenerated from the .keiro spec.
module Generated.HospitalCapacity.Reservation.Projection (
    transfer_decisionsProjection,
    transfer_decisionsStatusFor,
) where

import Data.Text (Text)
import Generated.HospitalCapacity.Reservation.Domain
import HospitalCapacity.Reservation.Holes (applyTransfer_decisions)
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.
transfer_decisionsStatusFor :: ReservationEvent -> Maybe Text
transfer_decisionsStatusFor = \case
    TransferReservationCreated{} -> Just "held"
    TransferReservationConfirmed{} -> Just "confirmed"

transfer_decisionsProjection :: InlineProjection ReservationEvent
transfer_decisionsProjection =
    InlineProjection
        { name = "hospital-capacity-transfer_decisions-inline"
        , apply = applyTransfer_decisions
        }