# ===============================================
# SYSTEM
# ===============================================

extend type Query {
  system: SystemQuery
}

# -----------------------------------------------
# QUERIES
# -----------------------------------------------

type SystemQuery {
  info: SystemInfo
}

# -----------------------------------------------
# MUTATIONS
# -----------------------------------------------

# -----------------------------------------------
# TYPES
# -----------------------------------------------

type SystemInfo {
  configFile: String @auth(requires: ["manage:system"])
  cpuCores: Int @auth(requires: ["manage:system"])
  currentVersion: String @auth(requires: ["manage:system"])
  dbHost: String @auth(requires: ["manage:system"])
  dbType: String @auth(requires: ["manage:system"])
  dbVersion: String @auth(requires: ["manage:system"])
  groupsTotal: Int @auth(requires: ["manage:system", "manage:navigation", "manage:groups", "write:groups", "manage:users", "write:users"])
  hostname: String @auth(requires: ["manage:system"])
  latestVersion: String @auth(requires: ["manage:system"])
  latestVersionReleaseDate: Date @auth(requires: ["manage:system"])
  nodeVersion: String @auth(requires: ["manage:system"])
  operatingSystem: String @auth(requires: ["manage:system"])
  pagesTotal: Int @auth(requires: ["manage:system", "manage:navigation", "manage:pages", "delete:pages"])
  platform: String @auth(requires: ["manage:system"])
  ramTotal: String @auth(requires: ["manage:system"])
  redisHost: String @auth(requires: ["manage:system"])
  redisTotalRAM: String @auth(requires: ["manage:system"])
  redisUsedRAM: String @auth(requires: ["manage:system"])
  redisVersion: String @auth(requires: ["manage:system"])
  usersTotal: Int @auth(requires: ["manage:system", "manage:navigation", "manage:groups", "write:groups", "manage:users", "write:users"])
  workingDirectory: String @auth(requires: ["manage:system"])
}