psb/app/Types.hs
2024-11-05 13:27:17 -05:00

34 lines
908 B
Haskell

module Types where
import Data.Text (Text)
import Deriving.Aeson
import Deriving.Aeson.Stock (PrefixedSnake)
data Page = Page {pageTitle :: Text, pageContent :: Text}
deriving (Show, Generic)
deriving (ToJSON) via PrefixedSnake "page" Page
data RenderedPost = RenderedPost
{ rPostTitle :: Text,
rPostAuthor :: Maybe Text,
rPostTags :: [Text],
rPostHasTags :: Bool,
rPostDate :: Maybe Text,
rPostIsoDate :: Maybe Text,
rPostContent :: Maybe Text,
rPostLink :: Maybe Text
}
deriving (Show, Generic)
deriving (FromJSON, ToJSON) via PrefixedSnake "rPost" RenderedPost
data Post = Post
{ postTitle :: Text,
postAuthor :: Maybe Text,
postTags :: [Text],
postDate :: Maybe Text,
postContent :: Maybe Text,
postLink :: Maybe Text,
postDraft :: Maybe Bool
}
deriving (Show, Generic)
deriving (FromJSON, ToJSON) via PrefixedSnake "post" Post