packages feed

keiro-dsl-0.2.0.0: test/conformance-skeletons/SkelProcess/Generated/MyService/Hospital/EventStream.hs

-- @generated by keiro-dsl; do not edit. Regenerated from the .keiro spec.
module SkelProcess.Generated.MyService.Hospital.EventStream (
    hospitalCategory,
    hospitalEventStream,
    hospitalEventStreamDef,
    HospitalEventStream,
    HospitalEventStreamDef,
) where

import Keiki.Core (HsPred)
import Keiro.EventStream (EventStream (..), SnapshotPolicy (..))
import Keiro.EventStream.Validate (ValidatedEventStream, mkEventStreamOrThrow)
import Keiro.Stream qualified as Stream
import SkelProcess.Generated.MyService.Hospital.Codec (hospitalCodec)
import SkelProcess.Generated.MyService.Hospital.Domain
import SkelProcess.MyService.Hospital.Holes (hospitalTransducer)

-- The validated aggregate stream category (hole-kind 5: referenced, never retyped).
-- Entity streams are '<category>-<id>' via Keiro.Stream.entityStream.
-- categoryUnsafe is safe here because this generated literal passed the DSL category proof.
hospitalCategory :: Stream.StreamCategory a
hospitalCategory = Stream.categoryUnsafe "hospital"

type HospitalEventStreamDef =
    EventStream (HsPred HospitalRegs HospitalCommand) HospitalRegs HospitalVertex HospitalCommand HospitalEvent

type HospitalEventStream =
    ValidatedEventStream (HsPred HospitalRegs HospitalCommand) HospitalRegs HospitalVertex HospitalCommand HospitalEvent

hospitalEventStreamDef :: HospitalEventStreamDef
hospitalEventStreamDef =
    EventStream
        { transducer = hospitalTransducer
        , initialState = HospitalOperational
        , initialRegisters = initialHospitalRegs
        , eventCodec = hospitalCodec
        , resolveStreamName = Stream.streamName
        , snapshotPolicy = Never
        , stateCodec = Nothing
        }

hospitalEventStream :: HospitalEventStream
hospitalEventStream =
    mkEventStreamOrThrow "Hospital" hospitalEventStreamDef