schema {
  query: PublicQuery
  mutation: PublicMutation
}

type PublicQuery {
  node(
    """The ID of the object"""
    id: ID!
  ): Node
  _debug: DjangoDebug
}

"""An object with an ID"""
interface Node {
  """The ID of the object"""
  id: ID!
}

"""Debugging information for the current query."""
type DjangoDebug {
  """Executed SQL queries for this API query."""
  sql: [DjangoDebugSQL]

  """Raise exceptions for this API query."""
  exceptions: [DjangoDebugException]
}

"""Represents a single database query made to a Django managed DB."""
type DjangoDebugSQL {
  """The type of database being used (e.g. postrgesql, mysql, sqlite)."""
  vendor: String!

  """The Django database alias (e.g. 'default')."""
  alias: String!

  """The actual SQL sent to this database."""
  sql: String

  """Duration of this database query in seconds."""
  duration: Float!

  """The raw SQL of this query, without params."""
  rawSql: String!

  """JSON encoded database query parameters."""
  params: String!

  """Start time of this database query."""
  startTime: Float!

  """Stop time of this database query."""
  stopTime: Float!

  """Whether this database query took more than 10 seconds."""
  isSlow: Boolean!

  """Whether this database query was a SELECT."""
  isSelect: Boolean!

  """Postgres transaction ID if available."""
  transId: String

  """Postgres transaction status if available."""
  transStatus: String

  """Postgres isolation level if available."""
  isoLevel: String

  """Postgres connection encoding if available."""
  encoding: String
}

"""Represents a single exception raised."""
type DjangoDebugException {
  """The class of the exception"""
  excType: String!

  """The message of the exception"""
  message: String!

  """The stack trace"""
  stack: String!
}

type PublicMutation {
  betaLogin(input: BetaLoginInput!): BetaLoginPayload
  _debug: DjangoDebug
}

type BetaLoginPayload {
  success: Boolean
  message: String
  clientMutationId: String
}

input BetaLoginInput {
  usernameInput: String
  passwordInput: String
  clientMutationId: String
}