packages feed

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)