keiro-dsl-0.9.0.0: test/conformance-id-domain-migration/Generated/IdDomainMigration/OrderBook/Domain.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
-- @generated by keiro-dsl 0.8.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 Generated.IdDomainMigration.Nominals (OrderId, parseOrderId)
import Keiki.Core (RegFile (..))
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)
import Keiki.Shape (CanonicalStateShape, CanonicalTypeName)
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)