{-# LANGUAGE EmptyDataDecls #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} module Model where import ClassyPrelude.Yesod import Database.Persist.Quasi import Yesod.Auth.HashDB ( HashDBUser(..) ) import Text.Mustache ( (~>) ) import qualified Text.Mustache as M import Model.Category ( Category ) import Model.Entry.Kind ( EntryKind ) import Model.Markdown ( Markdown ) -- You can define all of your database entities in the entities file. -- You can find more information on persistent and how to declare entities -- at: -- http://www.yesodweb.com/book/persistent/ share [mkPersist sqlSettings, mkMigrate "migrateAll"] $(persistFileWith lowerCaseSettings "config/models") instance HashDBUser User where userPasswordHash = Just . userPassword setPasswordHash pw u = u { userPassword = pw } instance M.ToMustache Profile where toMustache p = M.object [ "username" ~> profileUsername p ]