1 {-# LANGUAGE OverloadedStrings, RecordWildCards, TemplateHaskell, TypeFamilies #-} 2 module Databrary.Model.Funding.Types 3 ( Funder(..) 4 , Funding(..) 5 ) where 6 7 import Data.Int (Int64) 8 import qualified Data.Text as T 9 10 -- import Databrary.Has (Has(..)) 11 import Databrary.Model.Kind 12 import Databrary.Model.Id.Types 13 14 type instance IdType Funder = Int64 15 16 data Funder = Funder 17 { funderId :: Id Funder 18 , funderName :: T.Text 19 } -- deriving (Eq, Show) 20 21 -- makeHasRec ''Funder ['funderId] 22 -- instance Has (Id Funder) Funder where 23 -- view = funderId 24 25 instance Kinded Funder where 26 kindOf _ = "funder" 27 28 data Funding = Funding 29 { fundingFunder :: Funder 30 , fundingAwards :: [T.Text] 31 } -- deriving (Eq, Show) 32 33 -- makeHasRec ''Funding ['fundingFunder] 34 -- instance Has Funder Funding where 35 -- view = fundingFunder 36 -- instance Has (Id Funder) Funding where 37 -- view = (view . fundingFunder)