# ===============================================
# LOCALIZATION
# ===============================================

extend type Query {
  localization: LocalizationQuery
}

extend type Mutation {
  localization: LocalizationMutation
}

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

type LocalizationQuery {
  locales: [LocalizationLocale]
  config: LocalizationConfig
}

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

type LocalizationMutation {
  downloadLocale(
    locale: String!
  ): DefaultResponse

  updateLocale(
    locale: String!
    autoUpdate: Boolean!
    namespacing: Boolean!
    namespaces: [String]!
  ): DefaultResponse
}

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

type LocalizationLocale {
  code: String!
  createdAt: Date!
  installDate: Date
  isInstalled: Boolean!
  isRTL: Boolean!
  name: String!
  nativeName: String!
  updatedAt: Date!
}

type LocalizationConfig {
  locale: String!
  autoUpdate: Boolean!
  namespacing: Boolean!
  namespaces: [String]!
}