{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE TypeFamilies #-} module Feature.NamedResolvers.Realms where import Data.Morpheus.Server.CodeGen.Internal import Data.Morpheus.Server.Types import Feature.NamedResolvers.Scalars (Markdown) data Realm m = Realm { name :: m Text, owner :: m (Deity m), description :: m Markdown } deriving (Generic) instance (Typeable m) => GQLType (Realm m) where type KIND (Realm m) = TYPE newtype Deity m = Deity { realm :: m (Realm m) } deriving (Generic) instance (Typeable m) => GQLType (Deity m) where type KIND (Deity m) = TYPE data Query m = Query { realms :: m [Realm m], realm :: Arg "id" ID -> m (Maybe (Realm m)) } deriving (Generic) instance (Typeable m) => GQLType (Query m) where type KIND (Query m) = TYPE