packages feed

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)