module Clckwrks.Types
( UUID
, Prefix(..)
, Trust(..)
, NamedLink(..)
) where
import Data.Aeson (ToJSON(..), (.=), object)
import Data.Data (Data, Typeable)
import Data.SafeCopy (SafeCopy, base, deriveSafeCopy)
import Data.Text (Text)
import Data.UUID (UUID)
import HSP.Google.Analytics (UACCT)
$(deriveSafeCopy 0 'base ''UACCT)
$(deriveSafeCopy 0 'base ''UUID)
newtype Prefix = Prefix { prefixText :: Text }
deriving (Eq, Ord, Read, Show, Data, Typeable, SafeCopy)
data Trust
= Trusted
| Untrusted
deriving (Eq, Ord, Read, Show, Data, Typeable)
$(deriveSafeCopy 0 'base ''Trust)
data NamedLink = NamedLink
{ namedLinkTitle :: Text
, namedLinkURL :: Text
}
deriving (Eq, Read, Show, Data, Typeable)
$(deriveSafeCopy 1 'base ''NamedLink)
instance ToJSON NamedLink where
toJSON (NamedLink{..}) =
object [ "navBarItemName" .= namedLinkTitle
, "navBarItemLink" .= namedLinkURL
]