type Mutation {
  # Get a JWT Token for the given Email and password
  login(email: String!, password: String!): String!
  changePassword(oldPassword: String!, newPassword: String!): String!
  requestPasswordReset(email: String!): Boolean!
  resetPassword(email: String!, nonce: String!, newPassword: String!): Boolean!
  # Shout the given Type and ID
  shout(id: ID!, type: ShoutTypeEnum): Boolean!
  # Unshout the given Type and ID
  unshout(id: ID!, type: ShoutTypeEnum): Boolean!
  followUser(id: ID!): User
  unfollowUser(id: ID!): User
}

enum ShoutTypeEnum {
  Post
}

type Reward {
  id: ID!
  user: User @relation(name: "REWARDED", direction: "IN")
  rewarderId: ID
  createdAt: String
  badge: Badge @relation(name: "REWARDED", direction: "OUT")
}

type SharedInboxEndpoint {
  id: ID!
  uri: String
}
