{-# LANGUAGE NoFieldSelectors #-} {-# LANGUAGE StrictData #-} -- | Internal data types for representing local data in the database. module Puppy.Types ( Channel (..), Post (..), User (..), ChannelSettings (..) ) where import Data.UUID (UUID) import Data.Text (Text) import qualified Crypto.PubKey.RSA as RSA data User = User { userId :: UUID, userName :: Text, mainChannel :: UUID } data Channel = Channel { channelId :: UUID, linkedActorId :: Text, privateKeyPem :: RSA.PrivateKey, settings :: ChannelSettings } data Post = Post { postId :: UUID, linkedDocumentId :: Text } data ChannelSettings = ChannelSettings { autoAcceptFollows :: Bool }