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)