module Model.ServerObjectTypes where -- | These are objects to represent GraphQL query roots. type RootObjects = [RootObject] type RootObject = NestedObject -- | NestedObjects are the general object type. They are found as RootObjects or as object Subfields. data NestedObject = NestedObject Alias Name ServerObject SubSelection SubFields deriving Show type Alias = Maybe String type ServerObject = String type SubSelection = Maybe ScalarType type SubFields = [Field] type Field = Either ScalarType NestedObject -- | ScalarTypes are the other subfield type. They are also found at object attributes. data ScalarType = ScalarType Alias Name Transformation Argument deriving (Show,Eq) type Transformation = Maybe String type Argument = Maybe String type Name = String