keiro-dsl-0.10.0.0: test/conformance-id-domain-migration/Generated/IdDomainMigration/OrderBook/Domain.hs
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TemplateHaskell #-}
-- @generated by keiro-dsl 0.9.0.0 (language keiro-dsl 3) from aggregate OrderBook; do not edit.
module Generated.IdDomainMigration.OrderBook.Domain where
import Data.Aeson (FromJSON, ToJSON)
import Data.Proxy (Proxy (..))
import Data.Text (Text)
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
import Keiki.Shape (CanonicalStateShape, CanonicalTypeName)
import Generated.IdDomainMigration.Nominals (OrderId, parseOrderId)
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)
data OrderBookVertex = OrderBookEmpty | OrderBookRecorded
deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)
deriving anyclass (ToJSON, FromJSON)
instance CanonicalStateShape OrderBookVertex
instance CanonicalTypeName OrderBookVertex
data RecordData = RecordData
{ orderId :: !OrderId
}
deriving stock (Generic, Eq, Show)
data OrderBookCommand = Record !RecordData
deriving stock (Generic, Eq, Show)
data OrderRecordedData = OrderRecordedData
{ orderId :: !OrderId
}
deriving stock (Generic, Eq, Show)
data OrderBookEvent = OrderRecorded !OrderRecordedData
deriving stock (Generic, Eq, Show)
type OrderBookRegs =
'[ '("orderId", OrderId)
]
initialOrderBookRegs :: RegFile OrderBookRegs
initialOrderBookRegs =
RCons (Proxy @"orderId") (case parseOrderId "ord_01h455vb4pex5vsknk084sn02q" of Right parsed -> parsed; Left _ -> error "generated valid ID sample failed to parse") RNil
$(deriveAggregateCtorsAll ''OrderBookCommand ''OrderBookRegs)
$(deriveWireCtorsAll ''OrderBookEvent)