keiro-dsl-0.18.0.0: test/conformance-bare-containers/Generated/BareContainers/BareStore/Domain.hs
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE TemplateHaskell #-}
-- @generated by keiro-dsl 0.18.0.0 (language keiro-dsl 6) from aggregate BareStore; do not edit.
module Generated.BareContainers.BareStore.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 Conformance.BareContainers.Bindings qualified as Bindings
import Conformance.BareContainers.Domain (BareEnvelope, MaybeText, TextList, TextMap)
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)
data BareStoreVertex = BareStoreEmpty | BareStoreStored
deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)
deriving anyclass (ToJSON, FromJSON)
instance CanonicalStateShape BareStoreVertex
instance CanonicalTypeName BareStoreVertex
data StoreData = StoreData
{ optionalLabel :: !MaybeText
, labels :: !TextList
, attributes :: !TextMap
, envelope :: !BareEnvelope
}
deriving stock (Generic, Eq, Show)
data BareStoreCommand = Store !StoreData
deriving stock (Generic, Eq, Show)
data StoredValueData = StoredValueData
{ optionalLabel :: !MaybeText
, labels :: !TextList
, attributes :: !TextMap
, envelope :: !BareEnvelope
}
deriving stock (Generic, Eq, Show)
data BareStoreEvent = StoredValue !StoredValueData
deriving stock (Generic, Eq, Show)
type BareStoreRegs =
'[ '("current", MaybeText)
]
initialBareStoreRegs :: RegFile BareStoreRegs
initialBareStoreRegs =
RCons (Proxy @"current") Bindings.initialMaybeText RNil
$(deriveAggregateCtorsAll ''BareStoreCommand ''BareStoreRegs)
$(deriveWireCtorsAll ''BareStoreEvent)