keiro-dsl-0.18.0.0: test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayLedger/Domain.hs
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE TemplateHaskell #-}
-- @generated by keiro-dsl 0.18.0.0 (language keiro-dsl 6) from aggregate ReplayLedger; do not edit.
module Generated.CheckedMappingReplay.ReplayLedger.Domain where
import Data.Aeson (FromJSON, ToJSON)
import Data.Proxy (Proxy (..))
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
import Keiki.Shape (CanonicalStateShape, CanonicalTypeName)
import Generated.CheckedMappingReplay.Nominals (RetainedId, parseRetainedId)
import Conformance.CheckedMappingReplay.Bindings qualified as Bindings
import Conformance.CheckedMappingReplay.Domain (ReplayEnvelope)
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)
data ReplayLedgerVertex = ReplayLedgerEmpty | ReplayLedgerRecorded
deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)
deriving anyclass (ToJSON, FromJSON)
instance CanonicalStateShape ReplayLedgerVertex
instance CanonicalTypeName ReplayLedgerVertex
data RecordData = RecordData
{ retainedId :: !RetainedId
, envelope :: !ReplayEnvelope
}
deriving stock (Generic, Eq, Show)
data ImportLegacyData = ImportLegacyData
{ retainedId :: !RetainedId
, envelope :: !ReplayEnvelope
}
deriving stock (Generic, Eq, Show)
data ReplayLedgerCommand = Record !RecordData
| ImportLegacy !ImportLegacyData
deriving stock (Generic, Eq, Show)
data MappingRecordedData = MappingRecordedData
{ retainedId :: !RetainedId
, envelope :: !ReplayEnvelope
}
deriving stock (Generic, Eq, Show)
data MappingAuditedData = MappingAuditedData
{ retainedId :: !RetainedId
, envelope :: !ReplayEnvelope
}
deriving stock (Generic, Eq, Show)
data LegacyMappingImportedData = LegacyMappingImportedData
{ retainedId :: !RetainedId
, envelope :: !ReplayEnvelope
}
deriving stock (Generic, Eq, Show)
data ReplayLedgerEvent = MappingRecorded !MappingRecordedData
| MappingAudited !MappingAuditedData
| LegacyMappingImported !LegacyMappingImportedData
deriving stock (Generic, Eq, Show)
type ReplayLedgerRegs =
'[ '("current", ReplayEnvelope)
, '("currentId", RetainedId)
]
initialReplayLedgerRegs :: RegFile ReplayLedgerRegs
initialReplayLedgerRegs =
RCons (Proxy @"current") Bindings.initialReplayEnvelope $
RCons (Proxy @"currentId") (case parseRetainedId "retained_01h455vb4pex5vsknk084sn02q" of Right parsed -> parsed; Left _ -> error "generated valid ID sample failed to parse") RNil
$(deriveAggregateCtorsAll ''ReplayLedgerCommand ''ReplayLedgerRegs)
$(deriveWireCtorsAll ''ReplayLedgerEvent)