keiro-dsl-0.7.0.0: test/conformance-nominal-scalars/Generated/NominalScalars/NominalLedger/Domain.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# OPTIONS_GHC -Wno-unused-top-binds #-}
-- @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 Data.Text (Text)
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
import Keiki.Shape (CanonicalStateShape, CanonicalTypeName)
import NominalConformance.Bindings qualified
import NominalConformance.Domain qualified
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)
data NominalLedgerVertex = NominalLedgerEmpty | NominalLedgerRecorded
deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)
deriving anyclass (ToJSON, FromJSON)
instance CanonicalStateShape NominalLedgerVertex
instance CanonicalTypeName NominalLedgerVertex
data RecordNominalsData = RecordNominalsData
{ orderId :: !NominalConformance.Domain.OrderId
, status :: !NominalConformance.Domain.OrderStatus
, accountNumber :: !NominalConformance.Domain.AccountNumber
, riskScore :: !NominalConformance.Domain.RiskScore
, sequenceNumber :: !NominalConformance.Domain.SequenceNumber
, featureFlag :: !NominalConformance.Domain.FeatureFlag
, observedAt :: !NominalConformance.Domain.ObservedAt
}
deriving stock (Generic, Eq, Show)
data NominalLedgerCommand = RecordNominals !RecordNominalsData
deriving stock (Generic, Eq, Show)
data NominalsRecordedData = NominalsRecordedData
{ orderId :: !NominalConformance.Domain.OrderId
, status :: !NominalConformance.Domain.OrderStatus
, accountNumber :: !NominalConformance.Domain.AccountNumber
, riskScore :: !NominalConformance.Domain.RiskScore
, sequenceNumber :: !NominalConformance.Domain.SequenceNumber
, featureFlag :: !NominalConformance.Domain.FeatureFlag
, observedAt :: !NominalConformance.Domain.ObservedAt
}
deriving stock (Generic, Eq, Show)
data NominalLedgerEvent = NominalsRecorded !NominalsRecordedData
deriving stock (Generic, Eq, Show)
type NominalLedgerRegs =
'[ '("orderId", NominalConformance.Domain.OrderId)
, '("status", NominalConformance.Domain.OrderStatus)
, '("accountNumber", NominalConformance.Domain.AccountNumber)
, '("riskScore", NominalConformance.Domain.RiskScore)
, '("sequenceNumber", NominalConformance.Domain.SequenceNumber)
, '("featureFlag", NominalConformance.Domain.FeatureFlag)
, '("observedAt", NominalConformance.Domain.ObservedAt)
]
initialNominalLedgerRegs :: RegFile NominalLedgerRegs
initialNominalLedgerRegs =
RCons (Proxy @"orderId") NominalConformance.Bindings.initialOrderId $
RCons (Proxy @"status") NominalConformance.Bindings.initialOrderStatus $
RCons (Proxy @"accountNumber") NominalConformance.Bindings.initialAccountNumber $
RCons (Proxy @"riskScore") NominalConformance.Bindings.initialRiskScore $
RCons (Proxy @"sequenceNumber") NominalConformance.Bindings.initialSequenceNumber $
RCons (Proxy @"featureFlag") NominalConformance.Bindings.initialFeatureFlag $
RCons (Proxy @"observedAt") NominalConformance.Bindings.initialObservedAt RNil
$(deriveAggregateCtorsAll ''NominalLedgerCommand ''NominalLedgerRegs)
$(deriveWireCtorsAll ''NominalLedgerEvent)