packages feed

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

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# OPTIONS_GHC -Wno-unused-top-binds #-}

-- @generated by keiro-dsl; do not edit. Regenerated from the .keiro spec.
module Generated.StructuralConformance.ArtifactCatalog.Domain where

import Conformance.Structural.Bindings qualified
import Conformance.Structural.Domain qualified
import Data.Proxy (Proxy (..))
import Data.Text (Text)
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
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)