diff options
Diffstat (limited to 'src/server/Job/Kind.hs')
-rw-r--r-- | src/server/Job/Kind.hs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/server/Job/Kind.hs b/src/server/Job/Kind.hs index 473b7c4..af5d4f8 100644 --- a/src/server/Job/Kind.hs +++ b/src/server/Job/Kind.hs @@ -1,14 +1,22 @@ -{-# LANGUAGE TemplateHaskell #-} - module Job.Kind ( Kind(..) ) where -import Database.Persist.TH +import Database.SQLite.Simple (SQLData(SQLText)) +import Database.SQLite.Simple.FromField (fieldData, FromField(fromField)) +import Database.SQLite.Simple.Ok (Ok(Ok, Errors)) +import Database.SQLite.Simple.ToField (ToField(toField)) +import qualified Data.Text as T data Kind = MonthlyPayment | WeeklyReport deriving (Eq, Show, Read) -derivePersistField "Kind" +instance FromField Kind where + fromField field = case fieldData field of + SQLText text -> Ok (read (T.unpack text) :: Kind) + _ -> Errors [error "SQLText field required for job kind"] + +instance ToField Kind where + toField kind = SQLText . T.pack . show $ kind |