keiro-dsl-0.10.0.0: test/conformance-process-runtime/Generated/HospitalCapacity/Surge/Domain.hs
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TemplateHaskell #-}
-- @generated by keiro-dsl 0.9.0.0 (language keiro-dsl 4) from aggregate Surge; do not edit.
module Generated.HospitalCapacity.Surge.Domain where
import Data.Proxy (Proxy (..))
import Data.Text (Text)
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
import Generated.HospitalCapacity.Nominals (HospitalId, parseHospitalId)
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)
data SurgeVertex = SurgeIdle
deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)
data NoteSurgeThresholdData = NoteSurgeThresholdData
{ hospitalId :: !HospitalId
, availableIcuBeds :: !Int
, redDemand :: !Int
, timerId :: !Text
}
deriving stock (Generic, Eq, Show)
data MarkSurgeTimerFiredData = MarkSurgeTimerFiredData
{ hospitalId :: !HospitalId
, timerId :: !Text
}
deriving stock (Generic, Eq, Show)
data SurgeCommand = NoteSurgeThreshold !NoteSurgeThresholdData
| MarkSurgeTimerFired !MarkSurgeTimerFiredData
deriving stock (Generic, Eq, Show)
data SurgeThresholdNotedData = SurgeThresholdNotedData
{ hospitalId :: !HospitalId
, availableIcuBeds :: !Int
, redDemand :: !Int
, timerId :: !Text
}
deriving stock (Generic, Eq, Show)
data SurgeTimerMarkedData = SurgeTimerMarkedData
{ hospitalId :: !HospitalId
, timerId :: !Text
}
deriving stock (Generic, Eq, Show)
data SurgeEvent = SurgeThresholdNoted !SurgeThresholdNotedData
| SurgeTimerMarked !SurgeTimerMarkedData
deriving stock (Generic, Eq, Show)
type SurgeRegs =
'[]
initialSurgeRegs :: RegFile SurgeRegs
initialSurgeRegs =
RNil
$(deriveAggregateCtorsAll ''SurgeCommand ''SurgeRegs)
$(deriveWireCtorsAll ''SurgeEvent)