cqrs-0.7.0: src/Data/CQRS/Internal/PersistedEvent.hs
module Data.CQRS.Internal.PersistedEvent
( PersistedEvent(..)
, mapPersistedEvent
) where
import Data.CQRS.GUID (GUID)
-- | Persisted Event.
data PersistedEvent e =
PersistedEvent { peAggregateGUID :: !GUID -- ^ GUID of the aggregate.
, peEvent :: e -- ^ Event.
, peSequenceNumber :: !Int -- ^ Sequence number within the aggregate.
, peGlobalVer :: !Int -- ^ Global sequence number.
}
-- Transform the event data.
mapPersistedEvent :: (e -> e') -> PersistedEvent e -> PersistedEvent e'
mapPersistedEvent f (PersistedEvent g e v gv) = PersistedEvent g (f e) v gv