keiro-dsl-0.7.0.0: test/conformance-skeletons/SkelProcess/Generated/MyService/Surge/Domain.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# OPTIONS_GHC -Wno-unused-top-binds #-}
-- @generated by keiro-dsl; do not edit. Regenerated from the .keiro spec.
module SkelProcess.Generated.MyService.Surge.Domain where
import Data.Proxy (Proxy (..))
import Data.Text (Text)
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
import SkelProcess.Generated.MyService.Nominals (HospitalId (..))
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)
data SurgeVertex = SurgeIdle | SurgeFired
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)