packages feed

keiro-dsl-0.9.0.0: test/conformance-process-full/Generated/SurgeDemo/Hospital/Domain.hs

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

import Data.Proxy (Proxy (..))
import Data.Text (Text)
import GHC.Generics (Generic)
import Keiki.Core (RegFile (..))
import Generated.SurgeDemo.Nominals (HospitalId, parseHospitalId)
import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)

data HospitalVertex = HospitalIdle | HospitalSurging
  deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)

data ActivateSurgeData = ActivateSurgeData
  { hospitalId :: !HospitalId
  }
  deriving stock (Generic, Eq, Show)

data HospitalCommand = ActivateSurge !ActivateSurgeData
  deriving stock (Generic, Eq, Show)

data SurgeActivatedData = SurgeActivatedData
  { hospitalId :: !HospitalId
  }
  deriving stock (Generic, Eq, Show)

data HospitalEvent = SurgeActivated !SurgeActivatedData
  deriving stock (Generic, Eq, Show)

type HospitalRegs =
  '[]

initialHospitalRegs :: RegFile HospitalRegs
initialHospitalRegs =
  RNil

$(deriveAggregateCtorsAll ''HospitalCommand ''HospitalRegs)



$(deriveWireCtorsAll ''HospitalEvent)