packages feed

keiro-dsl-0.12.0.0: test/conformance-declarative-router/Generated/TransferRouting/Hospital/Domain.hs

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

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

data HospitalVertex = HospitalOpen | HospitalRouted
  deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)

data RouteAcceptedTransferNeedData = RouteAcceptedTransferNeedData
  { transferNeedId :: !Text
  , hospitalId :: !Text
  }
  deriving stock (Generic, Eq, Show)

data HospitalCommand = RouteAcceptedTransferNeed !RouteAcceptedTransferNeedData
  deriving stock (Generic, Eq, Show)

data TransferNeedRoutedData = TransferNeedRoutedData
  { transferNeedId :: !Text
  , hospitalId :: !Text
  }
  deriving stock (Generic, Eq, Show)

data HospitalEvent = TransferNeedRouted !TransferNeedRoutedData
  deriving stock (Generic, Eq, Show)

type HospitalRegs =
  '[ '("routed", Bool)
   ]

initialHospitalRegs :: RegFile HospitalRegs
initialHospitalRegs =
  RCons (Proxy @"routed") False RNil

$(deriveAggregateCtorsAll ''HospitalCommand ''HospitalRegs)



$(deriveWireCtorsAll ''HospitalEvent)