blob: d7bac5dbf44d99f4a6d5dd633181f551df2a426e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
module Erebos.Conversation.Class (
ConversationType(..),
RefDigest,
) where
import Control.Monad.Except
import Data.Text (Text)
import Data.Time.LocalTime
import Data.Typeable
import Erebos.Error
import Erebos.Identity
import Erebos.Object
import Erebos.State
class (Typeable conv, Typeable msg) => ConversationType conv msg | conv -> msg, msg -> conv where
convMessageFrom :: msg -> ComposedIdentity
convMessageTime :: msg -> ZonedTime
convMessageText :: msg -> Maybe Text
convReference :: conv -> RefDigest
convMessageListSince
:: Maybe conv -- ^ Original state to diff from
-> conv -- ^ Current state
-> ( Int, [ ( msg, Bool ) ] ) -- ^ Number of removed, list of added messages
convMarkAllSeen :: (MonadHead LocalState m, MonadError e m, FromErebosError e) => conv -> m ()
|