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)