From ec7dd4ee7e7258da6b723b5aca52eaaba3ed4546 Mon Sep 17 00:00:00 2001 From: fr33domlover Date: Mon, 8 Aug 2016 19:17:25 +0000 Subject: [PATCH] Experimental typeclass for ident+name model entities --- src/Vervis/Model/Entity.hs | 31 +++++++++++++++++++++++++++++++ vervis.cabal | 1 + 2 files changed, 32 insertions(+) create mode 100644 src/Vervis/Model/Entity.hs diff --git a/src/Vervis/Model/Entity.hs b/src/Vervis/Model/Entity.hs new file mode 100644 index 0000000..0c65058 --- /dev/null +++ b/src/Vervis/Model/Entity.hs @@ -0,0 +1,31 @@ +{- This file is part of Vervis. + - + - Written in 2016 by fr33domlover . + - + - ♡ Copying is an act of love. Please copy, reuse and share. + - + - The author(s) have dedicated all copyright and related and neighboring + - rights to this software to the public domain worldwide. This software is + - distributed without any warranty. + - + - You should have received a copy of the CC0 Public Domain Dedication along + - with this software. If not, see + - . + -} + +-- | Experimental class which tries to capture a common pattern in the +-- persistent entity definitions. +module Vervis.Model.Entity + ( VervisEntity (..) + ) +where + +import Prelude + +import Data.Text (Text) +import Database.Persist.Class (PersistEntity) + +class PersistEntity r => VervisEntity r where + type VervisEntityIdent r + vervisEntityIdent :: r -> VervisEntityIdent r + vervisEntityName :: r -> Maybe Text diff --git a/vervis.cabal b/vervis.cabal index 1659524..eceb5de 100644 --- a/vervis.cabal +++ b/vervis.cabal @@ -143,6 +143,7 @@ library Vervis.Import.NoFoundation Vervis.MediaType Vervis.Model + Vervis.Model.Entity Vervis.Model.Group Vervis.Model.Ident Vervis.Model.Repo