packages feed

keiro-dsl-0.2.0.0: test/conformance-readmodel-runtime/HospitalCapacity/Transfer_decisions/ReadModelHoles.hs

-- This is a HAND-OWNED hole module. keiro-dsl creates it once and never overwrites it.
module HospitalCapacity.Transfer_decisions.ReadModelHoles (
    TransferDecisionsQueryInput,
    TransferDecisionsQueryResult,
    transferDecisionsQuery,
    applyTransferDecisions,
) where

import Data.Text.Encoding qualified as Text
import Generated.HospitalCapacity.Transfer_decisions.ReadModelTable (transferDecisionsQualifiedTable)
import Hasql.Transaction qualified as Tx
import Kiroku.Store.Types (RecordedEvent)

-- HOLE: replace these aliases with the real query input and result types.
type TransferDecisionsQueryInput = ()
type TransferDecisionsQueryResult = ()

-- HOLE: query "hospital_capacity"."transfer_decisions" via transferDecisionsQualifiedTable; never rely on search_path.
-- Declared columns:
--   reservation_id text NOT NULL
--   hospital_id text NOT NULL
--   status text NOT NULL
--   decided_at timestamptz
transferDecisionsQuery :: TransferDecisionsQueryInput -> Tx.Transaction TransferDecisionsQueryResult
transferDecisionsQuery _input =
    Tx.sql (Text.encodeUtf8 ("SELECT count(*) FROM " <> transferDecisionsQualifiedTable))

-- HOLE: apply one recorded event; runtime deduplication makes redelivery safe.
applyTransferDecisions :: RecordedEvent -> Tx.Transaction ()
applyTransferDecisions _recorded = pure ()