# ===============================================
# THEMES
# ===============================================

extend type Query {
  theming: ThemingQuery
}

extend type Mutation {
  theming: ThemingMutation
}

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

type ThemingQuery {
  themes: [ThemingTheme] @auth(requires: ["manage:theme", "manage:system"])
  config: ThemingConfig @auth(requires: ["manage:theme", "manage:system"])
}

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

type ThemingMutation {
  setConfig(
    theme: String!
    iconset: String!
    darkMode: Boolean!
    injectCSS: String
    injectHead: String
    injectBody: String
  ): DefaultResponse @auth(requires: ["manage:theme", "manage:system"])
}

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

type ThemingConfig {
  theme: String!
  iconset: String!
  darkMode: Boolean!
  injectCSS: String
  injectHead: String
  injectBody: String
}

type ThemingTheme {
  key: String
  title: String
  author: String
}