packages feed

keiro-dsl-0.12.0.0: test/conformance-projection-catalog/Generated/CatalogDemo/Shipments/Domain.hs

{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TemplateHaskell #-}
-- @generated by keiro-dsl 0.12.0.0 (language keiro-dsl 5) from aggregate Shipments; do not edit.
module Generated.CatalogDemo.Shipments.Domain where

import Data.Proxy (Proxy (..))
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
import CatalogDemo.MappedDomain (SharedReference)
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)

data ShipmentsVertex = ShipmentsEmpty | ShipmentsRecorded
  deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)

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

data ShipmentsCommand = RecordShipment !RecordShipmentData
  deriving stock (Generic, Eq, Show)

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

data ShipmentsEvent = ShipmentRecorded !ShipmentRecordedData
  deriving stock (Generic, Eq, Show)

type ShipmentsRegs =
  '[ '("accepted", Bool)
   ]

initialShipmentsRegs :: RegFile ShipmentsRegs
initialShipmentsRegs =
  RCons (Proxy @"accepted") False RNil

$(deriveAggregateCtorsAll ''ShipmentsCommand ''ShipmentsRegs)



$(deriveWireCtorsAll ''ShipmentsEvent)