packages feed

keiro-dsl-0.10.0.0: test/conformance-import-planning/Generated/ImportPlanningCollisions/CollisionLedger/Domain.hs

{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TemplateHaskell #-}
-- @generated by keiro-dsl 0.9.0.0 (language keiro-dsl 4) from aggregate CollisionLedger; do not edit.
module Generated.ImportPlanningCollisions.CollisionLedger.Domain where

import Data.Proxy (Proxy (..))
import Data.Text (Text)
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
import ImportPlanning.Consumer.Domain qualified as Domain
import ImportPlanning.Consumer.Invoice.Types qualified as InvoiceTypes
import ImportPlanning.Consumer.Order.Types qualified as OrderTypes
import ImportPlanning.Consumer.Shared.Types (Details)
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)

data CollisionLedgerVertex = CollisionLedgerEmpty | CollisionLedgerRecorded
  deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)

data RecordData = RecordData
  { orderStatus :: !OrderTypes.Status
  , invoiceStatus :: !InvoiceTypes.Status
  , localCollision :: !Domain.CollisionLedgerCommand
  , details :: !Details
  }
  deriving stock (Generic, Eq, Show)

data CollisionLedgerCommand = Record !RecordData
  deriving stock (Generic, Eq, Show)

data RecordedValuesData = RecordedValuesData
  { orderStatus :: !OrderTypes.Status
  , invoiceStatus :: !InvoiceTypes.Status
  , localCollision :: !Domain.CollisionLedgerCommand
  , details :: !Details
  }
  deriving stock (Generic, Eq, Show)

data CollisionLedgerEvent = RecordedValues !RecordedValuesData
  deriving stock (Generic, Eq, Show)

type CollisionLedgerRegs =
  '[]

initialCollisionLedgerRegs :: RegFile CollisionLedgerRegs
initialCollisionLedgerRegs =
  RNil

$(deriveAggregateCtorsAll ''CollisionLedgerCommand ''CollisionLedgerRegs)



$(deriveWireCtorsAll ''CollisionLedgerEvent)