keiro-dsl-0.17.0.0: test/conformance-process-timers/Generated/ProcessTimers/Incident/Domain.hs
{-# LANGUAGE TemplateHaskell #-}
-- @generated by keiro-dsl 0.17.0.0 (language keiro-dsl 6) from aggregate Incident; do not edit.
module Generated.ProcessTimers.Incident.Domain where
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
import Generated.ProcessTimers.Nominals (IncidentId)
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)
data IncidentVertex = IncidentOpen | IncidentEscalatedState
deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)
data EscalateIncidentData = EscalateIncidentData
{ incidentId :: !IncidentId
}
deriving stock (Generic, Eq, Show)
data RemindIncidentData = RemindIncidentData
{ incidentId :: !IncidentId
}
deriving stock (Generic, Eq, Show)
data IncidentCommand = EscalateIncident !EscalateIncidentData
| RemindIncident !RemindIncidentData
deriving stock (Generic, Eq, Show)
data IncidentEscalatedData = IncidentEscalatedData
{ incidentId :: !IncidentId
}
deriving stock (Generic, Eq, Show)
data IncidentRemindedData = IncidentRemindedData
{ incidentId :: !IncidentId
}
deriving stock (Generic, Eq, Show)
data IncidentEvent = IncidentEscalated !IncidentEscalatedData
| IncidentReminded !IncidentRemindedData
deriving stock (Generic, Eq, Show)
type IncidentRegs =
'[]
initialIncidentRegs :: RegFile IncidentRegs
initialIncidentRegs =
RNil
$(deriveAggregateCtorsAll ''IncidentCommand ''IncidentRegs)
$(deriveWireCtorsAll ''IncidentEvent)