keiro-dsl-0.6.0.0: test/conformance-nominal-scalars/Generated/NominalScalars/NominalLedger/Domain.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TypeApplications #-}
-- @generated by keiro-dsl; do not edit. Regenerated from the .keiro spec.
module Generated.NominalScalars.NominalLedger.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 qualified NominalConformance.Bindings as Bindings
import NominalConformance.Domain
data NominalLedgerVertex = NominalLedgerEmpty | NominalLedgerRecorded
deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)
deriving anyclass (FromJSON, ToJSON)
instance CanonicalStateShape NominalLedgerVertex
instance CanonicalTypeName NominalLedgerVertex
data RecordNominalsData = RecordNominalsData
{ orderId :: !OrderId
, status :: !OrderStatus
, accountNumber :: !AccountNumber
, riskScore :: !RiskScore
, sequenceNumber :: !SequenceNumber
, featureFlag :: !FeatureFlag
, observedAt :: !ObservedAt
}
deriving stock (Generic, Eq, Show)
data NominalLedgerCommand = RecordNominals !RecordNominalsData
deriving stock (Generic, Eq, Show)
data NominalsRecordedData = NominalsRecordedData
{ orderId :: !OrderId
, status :: !OrderStatus
, accountNumber :: !AccountNumber
, riskScore :: !RiskScore
, sequenceNumber :: !SequenceNumber
, featureFlag :: !FeatureFlag
, observedAt :: !ObservedAt
}
deriving stock (Generic, Eq, Show)
data NominalLedgerEvent = NominalsRecorded !NominalsRecordedData
deriving stock (Generic, Eq, Show)
type NominalLedgerRegs =
'[ '("orderId", OrderId)
, '("status", OrderStatus)
, '("accountNumber", AccountNumber)
, '("riskScore", RiskScore)
, '("sequenceNumber", SequenceNumber)
, '("featureFlag", FeatureFlag)
, '("observedAt", ObservedAt)
]
initialNominalLedgerRegs :: RegFile NominalLedgerRegs
initialNominalLedgerRegs =
RCons (Proxy @"orderId") Bindings.initialOrderId $
RCons (Proxy @"status") Bindings.initialOrderStatus $
RCons (Proxy @"accountNumber") Bindings.initialAccountNumber $
RCons (Proxy @"riskScore") Bindings.initialRiskScore $
RCons (Proxy @"sequenceNumber") Bindings.initialSequenceNumber $
RCons (Proxy @"featureFlag") Bindings.initialFeatureFlag $
RCons (Proxy @"observedAt") Bindings.initialObservedAt RNil