packages feed

keiro-dsl-0.9.0.0: test/conformance-structural/Generated/StructuralConformance/ArtifactCatalog/Domain.hs

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
-- @generated by keiro-dsl 0.8.0.0 (language keiro-dsl 4) from aggregate ArtifactCatalog; do not edit.
module Generated.StructuralConformance.ArtifactCatalog.Domain where

import Data.Proxy (Proxy (..))
import Data.Text (Text)
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
import Conformance.Structural.Bindings qualified
import Conformance.Structural.Domain qualified
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)

data ArtifactCatalogVertex = ArtifactCatalogEmpty | ArtifactCatalogObserved
  deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)

data ObserveArtifactData = ObserveArtifactData
  { artifact :: !Conformance.Structural.Domain.ArtifactInfo
  , geometry :: !Conformance.Structural.Domain.Geometry
  , accepted :: !Bool
  }
  deriving stock (Generic, Eq, Show)

data ArtifactCatalogCommand = ObserveArtifact !ObserveArtifactData
  deriving stock (Generic, Eq, Show)

data ArtifactRecordedData = ArtifactRecordedData
  { artifact :: !Conformance.Structural.Domain.ArtifactInfo
  , geometry :: !Conformance.Structural.Domain.Geometry
  , accepted :: !Bool
  }
  deriving stock (Generic, Eq, Show)

data ArtifactAcceptedData = ArtifactAcceptedData
  { accepted :: !Bool
  }
  deriving stock (Generic, Eq, Show)

data ArtifactCatalogEvent = ArtifactRecorded !ArtifactRecordedData
  | ArtifactAccepted !ArtifactAcceptedData
  deriving stock (Generic, Eq, Show)

type ArtifactCatalogRegs =
  '[ '("currentArtifact", Conformance.Structural.Domain.ArtifactInfo)
   , '("currentGeometry", Conformance.Structural.Domain.Geometry)
   , '("acceptedCount", Int)
   ]

initialArtifactCatalogRegs :: RegFile ArtifactCatalogRegs
initialArtifactCatalogRegs =
  RCons (Proxy @"currentArtifact") Conformance.Structural.Bindings.emptyArtifactInfo $
  RCons (Proxy @"currentGeometry") Conformance.Structural.Bindings.emptyGeometry $
  RCons (Proxy @"acceptedCount") 0 RNil

$(deriveAggregateCtorsAll ''ArtifactCatalogCommand ''ArtifactCatalogRegs)



$(deriveWireCtorsAll ''ArtifactCatalogEvent)