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