# ===============================================
# SITE
# ===============================================

extend type Query {
  site: SiteQuery
}

extend type Mutation {
  site: SiteMutation
}

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

type SiteQuery {
  config: SiteConfig @auth(requires: ["manage:system"])
}

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

type SiteMutation {
  updateConfig(
    host: String!
    title: String!
    description: String!
    robots: [String]!
    analyticsService: String!
    analyticsId: String!
    company: String!
    contentLicense: String!
    logoUrl: String!
    featurePageRatings: Boolean!
    featurePageComments: Boolean!
    featurePersonalWikis: Boolean!
    securityIframe: Boolean!
    securityReferrerPolicy: Boolean!
    securityTrustProxy: Boolean!
    securitySRI: Boolean!
    securityHSTS: Boolean!
    securityHSTSDuration: Int!
    securityCSP: Boolean!
    securityCSPDirectives: String!
  ): DefaultResponse @auth(requires: ["manage:system"])
}

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

type SiteConfig {
  host: String!
  title: String!
  description: String!
  robots: [String]!
  analyticsService: String!
  analyticsId: String!
  company: String!
  contentLicense: String!
  logoUrl: String!
  featurePageRatings: Boolean!
  featurePageComments: Boolean!
  featurePersonalWikis: Boolean!
  securityIframe: Boolean!
  securityReferrerPolicy: Boolean!
  securityTrustProxy: Boolean!
  securitySRI: Boolean!
  securityHSTS: Boolean!
  securityHSTSDuration: Int!
  securityCSP: Boolean!
  securityCSPDirectives: String!
}