keiro-dsl-0.2.0.0: test/conformance-newsurface/TransferRouting/Hospital_load/ReadModelHoles.hs
-- This is a HAND-OWNED hole module. keiro-dsl creates it once and never overwrites it.
module TransferRouting.Hospital_load.ReadModelHoles (
HospitalLoadQueryInput,
HospitalLoadQueryResult,
hospitalLoadQuery,
applyHospitalLoad,
) where
import Data.Text.Encoding qualified as Text
import Generated.TransferRouting.Hospital_load.ReadModelTable (hospitalLoadQualifiedTable)
import Hasql.Transaction qualified as Tx
import Kiroku.Store.Types (RecordedEvent)
-- HOLE: replace these aliases with the real query input and result types.
type HospitalLoadQueryInput = ()
type HospitalLoadQueryResult = ()
-- HOLE: query "hospital_transfer"."hospital_load" via hospitalLoadQualifiedTable; never rely on search_path.
-- Declared columns:
-- hospital_id text NOT NULL
-- region text NOT NULL
-- available_beds int NOT NULL
hospitalLoadQuery :: HospitalLoadQueryInput -> Tx.Transaction HospitalLoadQueryResult
hospitalLoadQuery _input =
Tx.sql
( Text.encodeUtf8
( "SELECT hospital_id FROM "
<> hospitalLoadQualifiedTable
<> " WHERE available_beds > 0 ORDER BY available_beds DESC, hospital_id LIMIT 1"
)
)
-- HOLE: apply one recorded event; runtime deduplication makes redelivery safe.
applyHospitalLoad :: RecordedEvent -> Tx.Transaction ()
applyHospitalLoad _recorded = pure ()