packages feed

keiro-dsl-0.12.0.0: test/conformance-domain-outcomes/Generated/DomainOutcomes/Reservation/Domain.hs

{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE TemplateHaskell #-}
-- @generated by keiro-dsl 0.12.0.0 (language keiro-dsl 5) from aggregate Reservation; do not edit.
module Generated.DomainOutcomes.Reservation.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 ReservationVertex = ReservationEligible | ReservationCancelledState
  deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)

data CancelData = CancelData
  { requestId :: !Text
  }
  deriving stock (Generic, Eq, Show)

data ReservationCommand = Cancel !CancelData
  deriving stock (Generic, Eq, Show)

data CancelledData = CancelledData
  { requestId :: !Text
  }
  deriving stock (Generic, Eq, Show)

data ReservationEvent = Cancelled !CancelledData
  deriving stock (Generic, Eq, Show)

type ReservationRegs =
  '[ '("lastRequestId", Text)
   ]

initialReservationRegs :: RegFile ReservationRegs
initialReservationRegs =
  RCons (Proxy @"lastRequestId") "none" RNil

$(deriveAggregateCtorsAll ''ReservationCommand ''ReservationRegs)



$(deriveWireCtorsAll ''ReservationEvent)