{-# LANGUAGE DeriveDataTypeable , DeriveGeneric , TemplateHaskell , TypeFamilies #-} module Type.Comment (Comment (..)) where import Data.Aeson import Data.JSON.Schema import Data.Text (Text) import Data.Time import Data.Typeable import GHC.Generics import Generics.Regular import Generics.Regular.XmlPickler import Text.XML.HXT.Arrow.Pickle import Type.Post () import qualified Type.User as User data Comment = Comment { author :: User.Name , createdTime :: UTCTime , content :: Text } deriving (Eq, Generic, Ord, Show, Typeable) deriveAll ''Comment "PFComment" type instance PF Comment = PFComment instance XmlPickler Comment where xpickle = gxpickle instance JSONSchema Comment where schema = gSchema instance FromJSON Comment instance ToJSON Comment