module Clckwrks.Page.URL where
import Data.Data (Data, Typeable)
import Data.SafeCopy (SafeCopy(..), base, deriveSafeCopy)
import Clckwrks.Page.Acid (PageId(..))
import Clckwrks.Page.Types (Slug(..))
import Web.Routes.TH (derivePathInfo)
data PageAdminURL
= EditPage PageId
| PreviewPage PageId
| Pages
| NewPage
| NewPost
| EditFeedConfig
deriving (Eq, Ord, Data, Typeable, Read, Show)
$(deriveSafeCopy 0 'base ''PageAdminURL)
$(derivePathInfo ''PageAdminURL)
data PageURL
= ViewPage PageId
| ViewPageSlug PageId Slug
| Blog
| AtomFeed
| PageAdmin PageAdminURL
deriving (Eq, Ord, Data, Typeable, Read, Show)
$(deriveSafeCopy 0 'base ''PageURL)
$(derivePathInfo ''PageURL)