keiro-dsl-0.10.0.0: test/conformance-replay/Generated/ReplayDivergence/Note/Domain.hs
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TemplateHaskell #-}
-- @generated by keiro-dsl 0.9.0.0 (language keiro-dsl 4) from aggregate Note; do not edit.
module Generated.ReplayDivergence.Note.Domain where
import Data.Proxy (Proxy (..))
import Data.Text (Text)
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)
data NoteVertex = NoteEmpty | NoteRecorded
deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)
data WriteNoteData = WriteNoteData
{ noteText :: !Text
, echo :: !Text
}
deriving stock (Generic, Eq, Show)
data NoteCommand = WriteNote !WriteNoteData
deriving stock (Generic, Eq, Show)
data NoteWrittenData = NoteWrittenData
{ noteText :: !Text
, echo :: !Text
}
deriving stock (Generic, Eq, Show)
data NoteEvent = NoteWritten !NoteWrittenData
deriving stock (Generic, Eq, Show)
type NoteRegs =
'[ '("note", Text)
]
initialNoteRegs :: RegFile NoteRegs
initialNoteRegs =
RCons (Proxy @"note") "" RNil
$(deriveAggregateCtorsAll ''NoteCommand ''NoteRegs)
$(deriveWireCtorsAll ''NoteEvent)