# ===============================================
# MAIL
# ===============================================

extend type Query {
  mail: MailQuery
}

extend type Mutation {
  mail: MailMutation
}

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

type MailQuery {
  config: MailConfig @auth(requires: ["manage:system"])
}

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

type MailMutation {
  sendTest(
    recipientEmail: String!
  ): DefaultResponse @auth(requires: ["manage:system"])

  updateConfig(
    senderName: String!
    senderEmail: String!
    host: String!
    port: Int!
    name: String!
    secure: Boolean!
    verifySSL: Boolean!
    user: String!
    pass: String!
    useDKIM: Boolean!
    dkimDomainName: String!
    dkimKeySelector: String!
    dkimPrivateKey: String!
  ): DefaultResponse @auth(requires: ["manage:system"])
}

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

type MailConfig {
  senderName: String
  senderEmail: String
  host: String
  port: Int
  name: String
  secure: Boolean
  verifySSL: Boolean
  user: String
  pass: String
  useDKIM: Boolean
  dkimDomainName: String
  dkimKeySelector: String
  dkimPrivateKey: String
}