'type Author {
  age: Int!
  id: Int!
  message: String!
  module: [Module]
  name: String
}

input AuthorCreateInput {
  age: Int!
  message: String!
  name: String
}

input AuthorIDInput {
  id: Int!
}

input AuthorSearchInput {
  age: Int
  message: String
  name: String
}

input AuthorUpdateInput {
  id: AuthorIDInput!
  payload: AuthorSearchInput!
}

type Module {
  author: Author
  author_id: Int
  id: Int!
  name: String
}

input ModuleCreateInput {
  author_id: Int
  name: String
}

input ModuleIDInput {
  id: Int!
}

input ModuleSearchInput {
  author_id: Int
  name: String
}

input ModuleUpdateInput {
  id: ModuleIDInput!
  payload: ModuleSearchInput!
}

type Mutation {
  createAuthor(input: [AuthorCreateInput!]!): [Author]
  createModule(input: [ModuleCreateInput!]!): [Module]
  deleteAuthor(input: [AuthorIDInput!]!): [Boolean]
  deleteModule(input: [ModuleIDInput!]!): [Boolean]
  updateAuthor(input: [AuthorUpdateInput!]!): [Author]
  updateModule(input: [ModuleUpdateInput!]!): [Module]
}

type Query {
  author(id: Int!): Author
  authors(id: [Int!]!): [Author]
  module(id: Int!): Module
  modules(id: [Int!]!): [Module]
  searchAuthor(input: AuthorSearchInput!): [Author]
  searchModule(input: ModuleSearchInput!): [Module]
}
'
