packages feed

keiro-dsl-0.7.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 SkelProcess.Generated.MyService.Hospital.Domain
import SkelProcess.Generated.MyService.Hospital.Codec (hospitalCodec)
import SkelProcess.MyService.Hospital.Holes (hospitalTransducer)
import Keiki.Core (HsPred)
import Keiro.EventStream (EventStream (..), SnapshotPolicy (..))
import Keiro.EventStream.Validate (ValidatedEventStream, mkEventStreamOrThrow)
import Keiro.Stream qualified as Stream

-- 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