keiro-dsl-0.12.0.0: test/conformance-projection-catalog/Generated/CatalogDemo/Orders/Domain.hs
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TemplateHaskell #-}
-- @generated by keiro-dsl 0.12.0.0 (language keiro-dsl 5) from aggregate Orders; do not edit.
module Generated.CatalogDemo.Orders.Domain where
import Data.Proxy (Proxy (..))
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
import Numeric.Natural (Natural)
import CatalogDemo.MappedBindings qualified as MappedBindings
import CatalogDemo.MappedDomain (OrderPayload, RegisterState, SharedReference)
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)
data OrdersVertex = OrdersEmpty | OrdersRecorded
deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)
data RecordOrderData = RecordOrderData
{ amount :: !Natural
, orderPayload :: !OrderPayload
, sharedReference :: !SharedReference
}
deriving stock (Generic, Eq, Show)
data OrdersCommand = RecordOrder !RecordOrderData
deriving stock (Generic, Eq, Show)
data OrderRecordedData = OrderRecordedData
{ amount :: !Natural
, orderPayload :: !OrderPayload
, sharedReference :: !SharedReference
}
deriving stock (Generic, Eq, Show)
data OrdersEvent = OrderRecorded !OrderRecordedData
deriving stock (Generic, Eq, Show)
type OrdersRegs =
'[ '("total", Natural)
, '("qualificationState", RegisterState)
]
initialOrdersRegs :: RegFile OrdersRegs
initialOrdersRegs =
RCons (Proxy @"total") 0 $
RCons (Proxy @"qualificationState") MappedBindings.initialRegisterState RNil
$(deriveAggregateCtorsAll ''OrdersCommand ''OrdersRegs)
$(deriveWireCtorsAll ''OrdersEvent)